Этот вольтметр собран на микроконтроллере 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.
Oscillator -> Внутренний RC, не часы
Watchdog Timer -> выключено
Power Up Timer -> С
Master Clear Enable -> включено
Code Protect -> выключено
Data EE Read Protect -> выключено
Brown Out Detect -> BOD Enabled, SBOREN включено
Internal External Switch Over Mode -> включено
Monitor Clock Fail-Safe -> включено
Полная программа, написанная на MikroC приведена в архиве ниже
Проверка цифрового вольтметра
Переменный источник питания
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот | |
---|---|---|---|---|---|---|---|
МК PIC 8-бит | PIC16F688 | 1 | |||||
Конденсатор | 0.1 мкФ | 1 | |||||
Резистор | 10 кОм | 1 | |||||
Подстроечный резистор | 5 кОм | 1 | |||||
Резистор | 68 Ом | 1 | |||||
LCD-дисплей | 2×16 LCD HD44780 | 1 | |||||
Кнопка | 1 | ||||||
Схема делителя напряжения | |||||||
R1 | Резистор | 1.3 кОм | 1 | ||||
R2 | Резистор | 3.9 кОм | 1 | ||||
Стабилитрон | BZX55C5V1 | 1 | 5.1 Вольт | ||||