Суббота, 20.04.2024, 05:28Главная | Регистрация | Вход

Меню сайта

Форма входа

Категории раздела

Поиск

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0
Каталог статей
Главная » Статьи » Мои статьи

GygroSensor-Arduino

   В данной версии датчика, так же как и в предыдущих, используем измерение емкости погруженного в землю конденсатора в виде изолированных электродов. 
   Nick Gammon в своей версии измерителя емкости конденсаторов  предложил измерять постоянную времени заряда конденсатора.  

 T = R * C

 

Вот такая картинка получается при  возбуждении выше показанной цепи:


Из  википедии видим, что за время  время Т конденсатор С зарядится на 63,2%

Ну и смотрим полученную постоянную заряда:

       

        Рассмотрим данный метод для использования с контроллером Arduino.


          Для примера я взял Arduino Nano v.5.  У этой платы процессор Atmega 328 тактируемая  16 мГц кварцем.

 
Еще нам потребуется, для вывода результата на планшет, Bluetooth Module типа HC-5, HC-6 или HC-7. 
 Так как датчики у нас имеют довольно маленькую емкость  порядка нескольких пикофарад для отсчета T будем использовать  16ти разрядный счетчик таймер и внутренний аналоговый компаратор. 


Опорное напряжение подаем на вход  AIN1 компаратора.
Делитель напряжения выбираем из расчета 63,2% от подаваемого.

К входу  AIN0 компаратора подключаем зарядную цепь измеряемого конденсатора.
Зарядные импульсы будем подавать на цифровой выход D5

Настраиваем прерывание компаратора по нарастающему фронту. 
Таймер настраиваем без предделителя, чтобы повысить разрешение измерения.
     Для еще большего расширения пределов измерений настроим прерывание на переполнение таймера счетчика в котором будем считать количество переполнений.
Теперь остается перевести D5 в состояние 1 и дождаться прерывания компаратора.
После  D5 переводим в 0 и подсчитываем значение емкости и влажности. 
   

Вычисленные значения пошлем на стандартный UART и на программный настроенный на выводы порта (D2,D3) к которым подключим Bluetooth Module для связи со смартфоном.

На смартфон установим бесплатную версию приложения  RemoteXY

Это приложение в бесплатной версии поддерживает 5 элементов.

 

Вот такая простенькая конструкция 

у нее паразитная емкость входа Arduino получилась 38пФ (62тика таймера), что нам по большому счету безразлично, так как эти тики можно просто вычесть из полученого значения - зависимость то линейная.

T = R*(C сенсора + С входа);


С тем же успехом можно вычитать паразитную емкость проводов если сенсор удален от контроллера. Но увлекаться длинными проводами не следует так как на них будут наводиться наводки изменяющие зарядный ток да и состояние окружающей среды будет тоже влиять на емкость провода.

     Для проверки я взял 2 сенсора:
Первый: на пластине 0.5 мм фольгированного стеклотекстолита вытравлены 2 электрода 6 х 25мм сверху термоклеем приклеена пластина 0.5 мм стеклотекстолита (емкость в воздухе 1пФ в воде 15пФ)

Второй: на пластине 1мм фольгированного стеклотекстолита вытравлены электроды примерно 65х8мм и заклеены сверху писчей бумагой на эпоксидной смоле. (емкость в воздухе 5пФ в воде 127пФ)

    Для первого сенсора (при R заряда =  100к) получилась разница показаний между воздухом и водой dT = 90 - 69 = 21 тик. Разрешающая способность сенсора явно маловата.
   Для второго dT = 240 - 71 = 169 тик. Разрешающая способность  уже меньше 1% - вполне прилично.
Правда у второго сенсора заметна нестабильность показаний 3-4 тика и это в воде.  

В земле, естественно, нестабильность показаний увеличится.

В программе обработки результатов для получения приемлемого результата реализован кольцевой буфер и НЧ фильтр. 
Перед прошивкой скетч надо настроить на используемый датчик.
занести показания сенсора в воздухе ( Сmin) и погруженого в воду (Cmax).

После запуска на планшете приложения RemoteXY выводится экран выбора  Bluetooth модуля.

Кликаем по модулю и начинается соединение и загрузка из контроллера параметров интерфейса.

 

После загрузки появляется картинка интерфейса

 

Выводы:
Даже при такой простой схемотехнике можно добиться приемлемого результата. 


Для улучшения результата надо повышать рабочую частоту контроллера, на вход AIN1 надо подать напряжение со стабилизированного источника опорного напряжения, вместо зарядного резистора использовать источник тока

.
Использовать сенсоры с большой площадью электродов.


Метод измерения пригоден для использования в датчиках с батарейным питанием при использовании низкопотребляемого микроконтроллера и радиомодуля с протоколом Bluetooth 4.0 и выше.
 

Категория: Мои статьи | Добавил: nikr (27.02.2017) | Автор: Николай E W
Просмотров: 4201 | Рейтинг: 4.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:
Copyright MyCorp © 2024 | Бесплатный хостинг uCoz