Вольтметр на PIC мікроконтролері
Цей вольтметр зроблений на мікроконтролері PIC16F688. Діапазон вимірювання від 0 до 20 вольт, його можна розширити або зменшити в залежності від потреб. На один з восьми аналогових каналів мікроконтролера, надходить вимірюване напруга, далі вона перетворюється в 10-ть бітний сигнал внутрішнім АЦП. Виміряне напруження відображається на символьному ЖК дисплеї HD44780.
Мікроконтролер не можна живити 20-тьма вольтами, інакше він вийде з ладу, нам потрібен буде дільник напруги (він наведений нижче). За допомогою резисторів R1 і R2 напруга знижується до 5 вольт. Якщо ж напруга в 20 вольт буде перевищена, то на виході дільника буде більше 5 вольт і тоді мікроконтролер може згоріти. При підключенні стабілітрона на 5.1 вольта, вихідна напруга не може бути більше 5.1 вольта, це дозволить захистити мікроконтролер від всевозможних стрибків вхідної напруги. Напруга, знімається з точки Va, потрібно підключити до 11 ніжки мікроконтролера.
ЖК дисплей працює в 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 Вольт | ||||
Прикриплені файли:
- pic_voltmeter.rar (2 Кб)