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

Вольтметр на 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 приведена в архиве ниже

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

Переменный источник питания

Скачать исходник и прошивку

Оригинал статьи на английском языке (перевод: Василий Сергеевич для сайта cxem.net)


Категория: Измерительная техника
Метки:

Написать коментарий

*
= 4 + 2

Добавить изображение

Последние статьи