Вольтметр на 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.

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-битPIC16F6881

Конденсатор0.1 мкФ1

Резистор10 кОм1

Подстроечный резистор5 кОм1

Резистор68 Ом1

LCD-дисплей2×16 LCD HD447801

Кнопка1
Схема делителя напряженияR1
Резистор1.3 кОм1
R2
Резистор3.9 кОм1

СтабилитронBZX55C5V11
5.1 ВольтДобавить все

Скачать список элементов (PDF)

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

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

Добавить комментарий

Ваш адрес email не будет опубликован.