Вольтметр на PIC мікроконтролері

Цей вольтметр зроблений на мікроконтролері PIC16F688. Діапазон вимірювання від 0 до 20 вольт, його можна розширити або зменшити в залежності від потреб. На один з восьми аналогових каналів мікроконтролера, надходить вимірюване напруга, далі вона перетворюється в 10-ть бітний сигнал внутрішнім АЦП. Виміряне напруження відображається на символьному ЖК дисплеї HD44780.

Схема дільника напруги

Мікроконтролер не можна живити 20-тьма вольтами, інакше він вийде з ладу, нам потрібен буде дільник напруги (він наведений нижче). За допомогою резисторів R1 і R2 напруга знижується до 5 вольт. Якщо ж напруга в 20 вольт буде перевищена, то на виході дільника буде більше 5 вольт і тоді мікроконтролер може згоріти. При підключенні стабілітрона на 5.1 вольта, вихідна напруга не може бути більше 5.1 вольта, це дозволить захистити мікроконтролер від всевозможних стрибків вхідної напруги. Напруга, знімається з точки Va, потрібно підключити до 11 ніжки мікроконтролера.

Схема вольтметра на мікроконтролері PIC16F688

ЖК дисплей працює в 4-х бітному режимі. Регулювання контрастності здійснюється змінним резистором  на 5 кОм між +5 вольтами і землею. Схема зібрана на макетній платі, також потрібно мати регульоване джерело живлення +5 вольт. Наприклад, на LM7805.

Вольтметр на макетній платі

Програмне забезпечення
Перед написанням прошивки я провів деякі математичні розрахунки. Будь-яке застосування, яке використовує АЦП, вимагає стабілізованого опорного живлення. В цьому проекті, опорна напруга для роботи АЦП вибирається Vdd (=+5 V). Резистори R1 = 1267 Ω і R2 = 3890 Ω.
0 - 5 аналогових I / P відображається в одному з 1024 рівнів (0-1023 цифрової графи)
=> Роздільна здатність = 5/1024 = 0,0049 V / граф
Крім того, Va = 1267 * Vin / (1267 +3890) = 0,2457 * Vin
=> I / P напруга = 4,07 * Va = 4,07 * Цифрова графа * 0,0049
= 0,01994 * Цифрова графа
= 0,02 * Цифрова графа(прибл.)

Щоб уникнути плаваючої точки, потрібно використовувати I / P напруга = 2 * Цифрова графа.
Як це працює?   
Припустимо, Vin = 4,6 В. Тоді,
Va = 0,2457 * Vin = 1.13V
=> Цифрові графи = 1.13/0.0049 = 231
=> Розрахункові I / P напруга = 2 * 231 = 0462

Виміряне напруження буде 04,62 V. Будуть відображатися тільки перші три цифри (04,6 В).
Прошивка розроблена на С і скомпільована з MikroC Pro для PIC, компілятор Мікроелектроніка. Мікроконтролер PIC16F688 використовує внутрішній тактовий генератор на 4,0 МГц. MCLR увімкнено і таймер увімкнення живлення. Вам потрібно визначити RA2/AN2 вхід, аналоговий, встановивши відповідний біт у регістрі ANSEL.  ADCON0 = 8 з'єднує AN2 вхідний канал для внутрішньої вибірки-утримуючої схеми. порти А і С компаратори, контакти також потрібно відключити (присвоєння CMCON0 = 7). Біти конфігурації для запобіжників наведені нижче. Ви можете встановити їх у MikroC через Project-> Project Edit.

Осцилятор -> Внутрішній RC, не годинник
Таймер спостереження -> вимкнено
Таймер живлення -> C
Master Clear Enable -> увімкнено
Захист коду -> вимкнено
Захист читання даних EE -> вимкнено
Виявлення Brown Out -> BOD Увімкнено, SBOREN увімкнено
Перемикання між внутрішнім та зовнішнім режимом -> увімкнено
Моніторинг годинникової безпеки -> увімкнено

Повна програма, написана на MikroC, наведена в архіві нижче

Перевірка цифрового вольтметра

Перевірка цифрового вольтметра

Змінний джерело живлення

Перевірка цифрового вольтметра

Список радіоелементів

Обозначення Тип Номінал Кількість Примітка
МК PIC 8-біт
PIC16F688
1
Конденсатор 0.1 мкФ 1
Резистор
10 кОм
1
Потенціометр 5 кОм 1
Резистор
68 Ом
1
LCD-дисплей 2x16 LCD HD44780 1
Кнопка 1
Схема дільника напруги
R1 Резистор
1.3 кОм
1
R2 Резистор
3.9 кОм
1
Стабілітрон
BZX55C5V1
1 5.1 Вольт
Додати всі

Оригінал статті

Прикриплені файли:

Top