В статье описан вольтметр, с пределом измерения 50 вольт, сделанный на PIC16F676 или как использовать АЦП этого микроконтроллера.
Схема
На резисторах R1 и R2 собран делитель напряжения, многооборотный построечный резистор R3 служит для калибровки вольтметра. Конденсатор C1 защищает вольтметр от импульсной помехи и сглаживает входной сигнал. Стабилитрон VD1 служит для ограничения входного напряжения на входе микроконтроллера, что бы вход МК не сгорел при превышении напряжения по входу.
На транзисторе VT1 (КТ3102 или SMD вариант BC847) и резисторах R11, R12 и R13 собран инвертирующий элемент, который зажигает точку на индикаторе вместе со вторым разрядом.
В схеме применён индикатор с общим анодом BA56-12GWA, который через токоограничивающие резисторы подключен к МК. Этот индикатор отличается низким потреблением тока. При использование более мощных (крупнее сегменты или другого цвета) индикаторов рекомендуется поставить ключи на аноды
Настройка вольтметра производиться с помощью подстроечного резистора R3 (желательно применить многооборотник).
Скачать прошивку до 50В (R1=47кОм)
Скачать прошивку до 100В (R1=100кОм)
Скачать исходник и печатку
Печатка как на картинке по просьбе пользователя «xrust» — скачать
печатка от «xrust» под прибор ваз 2106 — скачать
печатка моя под прибор ваз
скачать — печатку
В статье описан вольтметр, с пределом измерения 50 вольт, сделанный на PIC16F676 или как использовать АЦП этого микроконтроллера.
Схема
На резисторах R1 и R2 собран делитель напряжения, многооборотный построечный резистор R3 служит для калибровки вольтметра. Конденсатор C1 защищает вольтметр от импульсной помехи и сглаживает входной сигнал. Стабилитрон VD1 служит для ограничения входного напряжения на входе микроконтроллера, что бы вход МК не сгорел при превышении напряжения по входу.
На транзисторе VT1 (КТ3102 или SMD вариант BC847) и резисторах R11, R12 и R13 собран инвертирующий элемент, который зажигает точку на индикаторе вместе со вторым разрядом.
В схеме применён индикатор с общим анодом BA56-12GWA, который через токоограничивающие резисторы подключен к МК. Этот индикатор отличается низким потреблением тока. При использование более мощных (крупнее сегменты или другого цвета) индикаторов рекомендуется поставить ключи на аноды.
В бесконечном цикле постоянно происходит получение данных с АЦП, их преобразование и вывод на 7-ми сегментный индикатор в режиме ШИМа.
Печатка
Настройка вольтметра производиться с помощью подстроечного резистора R3 (желательно применить многооборотник).
Скачать исходник и печатку.
Внимание
У некоторых программаторов была обнаружена проблема в порче микроконтроллеров. Это выражается в том, что они затирают заводскую калибровочную константу внутренней RC цепочки, после чего МК начинает работать некорректно или перестаёт работать вообще. Поэтому перед прошивкой микроконтроллера сначала прочитайте его память и выпишите последние слово (2 байта) из flash памяти контроллера. После прошивки проверьте, сохранилась ли значение, если нет, то прошейте контроллер, но уже с ранее выписанной калибровочной константой.
Прошивки
Представляю вам новые от 10 апреля 2012 года, версии прошивок вольтметра V3.2. Убран первый разряд, если он равен 0 и в 100В версии установлено максимальное значение индикатора 99,9В.
Общий анод:
Скачать прошивку до 50В (R1=47кОм) V3.2
Скачать прошивку до 100В (R1=100кОм) V3.2
Общий катод:
Скачать прошивку до 50В (R1=47кОм) V3.2 общий катод
Скачать прошивку до 100В (R1=100кОм) V3.2 общий катод
Проверенная версия прошивки V3.1 — убрано мерцание индикатора.
Общий анод:
Скачать прошивку до 50В (R1=47кОм) V3.1
Скачать прошивку до 100В (R1=100кОм) V3.1
Общий катод:
Скачать прошивку до 50В (R1=47кОм) V3.1 общий катод
Скачать прошивку до 100В (R1=100кОм) V3.1 общий катод
Старые версии прошивок (общий анод):
Скачать прошивку до 50В (R1=47кОм)
Скачать прошивку до 100В (R1=100кОм)
Добавлены новые прошивки 10.04.2012
А теперь немного практики, что можно сделать из этой схемы, вот один из вариантов….
В печатку включена подсветка пиктограмм согласно моего прибора.
Перенос дорожек для травления
На фотографии пример использования фотобумаги. Как видно тонер переносится весь и без размачивания. Бумага просто отлетает.
Дальше травление и лужение дорожек
готовая
Спустя часик плата была собрана. При разводке платы было принято решение сделать экран как и микроконтроллер разборным в гнезде а не впаивать.
Идея получилась очень удачной так как при обычном монтаже экран занимал 50% места на печатной плате. При монтаже в гнездо, экран разместился на высоте 8-10 мм над печатной платой что дало возможность разместить под ним полноценный стабилизатор напряжения и некоторые радиоэлементы. Это хорошо видно на следующих фотографиях.
Размещение радиодеталей
вид сверху с экраном
А вот именно в этот корпус нам и нужно вместить этот прибор.
корпус прибора ваз 2106
Лицевую панель изготовил тем же методом. коробка с диска и вырезанная в рекламном агентстве пленка с пиктограммами.
Лицевая панель
Позже я решил отказаться от крепления лицевой части к плате винтами и остановился на пленке. Надежность тут не нудна нужно чтобы просто панель не сместилась относительно экрана при сборке прибора.
Для фиксации платы в корпусе и предотвращению замыкания платы на корпус отрезал кусочек вибро- или шумоизоляции и проклеил им окружность низа корпуса.
Отрезок для поклейки
Поклейка
Вот вид собранной платы с лицевой панелью.
Вот так центрируется устройство в корпусе.
После сборки прибор выглядит и работает воз так
Включенное зажигание
Включенные габариты
Ну и все включено 🙂 габарит и зажигание.
Прибор получился 1 в 1 для замены штатного,особенно кто хочет заменить штатный прибор 2104-05
Ну и видео демонстрирующие работу данного устройства
Сейчас всё большую популярность получают измерительные приборы на основе микроконтроллеров со встроенным АЦП, тем более что доступность и возможности таких МК постоянно растут, схемотехника упрощается, а их сборка становиться под силу даже начинающим радиолюбителям. В качестве устройств отображения информации в цифровых измерительных приборах часто используются LCD модули с собственным контроллером. Такому решению присущи недостатки: необходимость дополнительной подсветки с большим током потребления, ограниченный выбор отображаемых символов, высокая стоимость. Поэтому проще и удобнее задействовать семисегментные трёхзнаковые LED индикаторы.
Электросхема вольтметра
Схема принципиальная вольтметра на МК
Схема принципиальная вольтметра на PIC16F676 — второй вариант
ПП вольтметра на PIC16F676
Это простой вольтметр до 30 вольт на основе PIC16F676 микроконтроллера с 10-разрядный АЦП и трех 7-ми сегментных светодиодных индикаторов. Вы можете использовать эту схему для того, чтобы измерить до 30 В постоянного тока. PIC16F676 — это основа этой схемы. Внутренний АЦП микроконтроллера с резисторами делителя напряжения используют для измерения входного напряжения. Затем 3 цифры comm анод 7-сегментный дисплей используется для отображения финальной преобразованное напряжение. Для уменьшения токопотребления в схеме задействована динамическая индикация. Скачать прошивки на различные индикаторы можно здесь.
Работа прибора
На резисторах R1 и R2 собран делитель напряжения, многооборотный построечный резистор R3 служит для калибровки вольтметра. Конденсатор C1 защищает вольтметр от импульсной помехи и сглаживает входной сигнал. Стабилитрон VD1 служит для ограничения входного напряжения на входе микроконтроллера, что бы вход контроллера не сгорел при превышении напряжения по входу.
Расчеты показаний
10-ти битная АЦП позволяет получить максимальное количество 1023. Значит с 5 вольт мы получаем 5/1023 = 0.0048878 В/Д, значит, если значение 188, то входное напряжение: 188 х 0.0048878 = 0.918 вольт. С делителем напряжения максимальное напряжение 30 В, поэтому все расчеты будут 30/1023 = 0.02932 вольт/деление. Так что если сейчас мы получаем 188, то 188 х 0.02932 = 5.5 Вольта. Ещё более упростить и удешевить схему можно заменив АЛС индикаторы на простую линейку светодиодов.
Originally posted 2018-11-10 12:19:11. Republished by Blog Post Promoter
Главная » На микроконтроллере
Автор admin На чтение 2 мин. Просмотров 13.7k. Опубликовано 05.07.2013
Устройство предназначено для измерения напряжения бортовой сети автомобиля и температуры. Термометр сделан так, что его можно использовать как термометр двигателя и как климатический (за бортом), причем точность измерения в 0,1 градус является условной, точность самого датчика DS18B20 – 0,5 градусов, а при температуре выше 80 градусов и того хуже, но даже точности в 1 градус – хватает.
В устройство введена система предупреждений о выходе за пределы напряжения и о перегреве и(или) о гололеде (переход через ноль). Основа микроконтроллер PIC16F676 и ЖК индикатор WH0802.
Контроль пределов напряжения сопровождается звуковым сигналом и индикацией на 3 секунды предупреждающего сообщения. Низкое напряжение – менее 9 вольт, высокое – более 16. Предупреждение однократное, т.е. донимать постоянным пищанием девайс не будет. Температура имеет предупреждение при температуре 100 и выше – перегрев. И предупреждение о гололеде – переход через 0. Ну и последнее, джампер JMP1 управляет выбором языка сообщений. Если снят – английский, установлен – русский.

.
Прибор собран на печатной плате и особенностей монтажа не имеет. Важно только, не подключать общий провод датчика в случайные точки кузова. Масса датчика должна приходить строго к плате и нигде больше не контактировать с общим проводом автомобиля. При прошивке микроконтроллера нужно обязательно сохранить заводскую калибровочную константу! Подстроечным резистором нужно установить правильные показания вольтметра сравнивая их с показаниями мультиметра.
Рисунок печатной платы (LAY) и HEX Файл прошивки.–СКАЧАТЬ…
Источник; http://avtoelectro.radioliga.com/
| Теги статьи: | Добавить тег |
Простой миниатюрный встраиваемый цифровой вольтметр для БП (0…19,99В/0…39,99В)
Автор: SSMix
Опубликовано 17.09.2013
Создано при помощи КотоРед.
В статье описывается простой встраиваемый 4-х разрядный цифровой вольтметр, разработанный для установки в домашний лабораторный БП с выходным напряжением 0…15В, как более дешевая и миниатюрная альтернатива китайским 3-х разрядным поделкам. Вольтметр может быть также использован для контроля напряжения в бортовой сети автомобиля.
Изменением номиналов резисторов делителя и варианта программы прошивки можно выбрать предел измерения 0…19,99 В или 0…39,99 В . Для универсальности предусмотрены прошивки для установки светодиодных индикаторов с ОА и ОК .
Вот фото вольтметра в работе:
Диапазон измерения, В……………. 0…19,99 (0…39,99);
Дискретность измерения, мВ………. 10;
Точность во всём диапазоне, мВ…. ±10;
Напряжение питания, В……………. 7…20*;
Потребляемый ток, мА……………. ≤40**;
Габаритные размеры, мм…………. 43х20х11.
Индикация…………………………. 4-х разрядный 7-сегментный с ОА или ОК.
* – при использовании DA1 78L05A
** – зависит от сопротивлений R4…R11
Схема электрическая вольтметра:
Входное измеряемое напряжение поступает на делитель R1, R2, R3, R13 с коэффициентом деления 1:8, а с него на вход PC4 АЦП микроконтроллера DD1. Конденсатор C2 – помехоподавляющий.
Микроконтроллер выбран широко распространённый ATmega8A в малогабаритном корпусе TQFP-32.
В качестве источника опорного напряжения (ИОН) для АЦП использован внутренний напряжением Vref=2.56В. При этом максимальное измеряемое напряжение на входе делителя составляет 2,56•8=20,48В.
Если применить входной делитель с коэффициентом деления 1:16, максимальное измеряемое напряжение можно увеличить до 2,56•16=40,96В.
В программе МК предусмотрены оба варианта делителя. Максимальный предел измерения программно ограничивается величиной 19,99В (39,99В). При превышении предела на индикатор выводится “ 1 -. – – “ (как в старой доброй КР572ПВ2) или “ 3 -. – – ”.
При 10-ти разрядном АЦП его диапазон измерения составляет 0…1023, что дает дискретность измерения непосредственно на входе АЦП: 2560мВ/1024=2,5мВ. С учётом входного делителя напряжения получается дискретность измерения 2,5мВ•8=20мВ (для предела 0…20В) или 2,5мВ•16=40мВ (для предела 0…40В). Для получения необходимой дискретности 10 мВ использован приём многократных выборок АЦП с усреднением результата. На официальном сайте Atmel есть интересный pdf-документ под названием “AVR121. Enhancing ADC resolution by oversampling” (Расширение разрешающей способности АЦП, используя передескритезацию).
На 8-й странице этого документа в таблице 3-1 (правда для Vref=5В) показано, как растёт разрешающая способность 10-разрядного АЦП при увеличении числа выборок. При 4-х выборках с усреднением результата наш АЦП “превращается” в 11-разрядный (0…2047), при 16-ти выборках – в 12-разрядный (0…4095), при 64-х выборках – в 13-разрядный (0…8191) и т.д.
Общая формула для вычисления необходимого количества выборок для прибавки к разрешению АЦП дополнительных n бит: sf = 2 n .
В данном случае для полного использования переменной накопления результата АЦП типа unsigned int (0…65535) оказалось удобным применить 64 выборки. При этом даже при максимальном коде АЦП 1023 переменная накопления результата никогда не переполнится (1023•64=65472), а разрешающая способность вольтметра для случая (0…40В) улучшится в 8 раз и составит 5 мВ, что вполне подходит.
Для компенсации разброса сопротивлений резистивного делителя и начального напряжения ИОН служит подстроечный резистор R3. Подбором сопротивления резистора R13 можно подстроить точность показаний вольтметра более грубо.
Для варианта (0…19,99)В соотношение сопротивлений верхнего плеча делителя к нижнему должно быть 7:1 , а для варианта (0…39,99)В – 15:1 , т.е. во втором случае сопротивление резистора R1 нужно будет увеличить до 510кОм, и возможно подобрать R13.
Светодиодный 4-х разрядный индикатор HL1 KW4-361AGB (с общим анодом) подключен к МК без дополнительных ключевых транзисторов, учитывая небольшой ток потребления. Резисторы R4…R11 определяют яркость свечения индикатора. Можно применить также индикатор с общим катодом, зашив МК соответствующим вариантом hex-файла прошивки. Схема включения при этом остаётся прежней.
Питание микроконтроллера производится через линейный стабилизатор DA1 78L05A, для которого по DataSheet типовая разность между входом и выходом составляет не менее 1,7 В. Практически минимальное напряжение питания схемы составляет около 7 В. Максимальное – не более 30 В. Если необходимо запитать схему от меньшего напряжения, то следует заменить стабилизатор DA1 на другой тип. Выходное напряжение стабилизатора может находиться в пределах от 3 до 5 В. При питании схемы от большего напряжения, чем 20В, последовательно с цепью питания желательно включить стабилитрон для гашения избыточного напряжения с целью снижения мощности рассеивания на DA1.
Программа для микроконтроллера написана на языке Си в хорошо зарекомендовавшей себя среде WinAVR-20060125. Вот вкраце рабочий вариант программы для индикатора с ОА и пределом измерения 19.99В.
Начинается программа традиционно, с подключения библиотек:
#include //Подключение библиотеки задержек
Определяем константы в flash-памяти микроконтроллера::
//Знакогенератор сегментов светодиодного индикатора с ОА:
static unsigned char __attribute__ ((progmem)) SEGMENTE[] =
Это байты, которые будут выводиться в порт D микроконтроллера для получения различных символов в разряде индикатора. Сегменты индикатора a, b, c, d, e, f, g, h, соответствуют линиям порта D следующим образом:
Так оказалось проще разводить печатную плату.
Для коммутации разрядов для порта B также используется табличный массив в flash-памяти:
//Таблица динамической коммутации разрядов индикатора
static unsigned char __attribute__ ((progmem)) RAZR[] =
//4 разр. 3 разр. 2 разр. 1 разр.
Далее определяем глобальные переменные:
volatile unsigned char segcounter = 0 ; //Счётчик разрядов индикатора (0-младший справа, 3-старший слева)
volatile unsigned char mass_ind[]=< 12, 12, 12, 12 >; //Массив выводимых чисел для каждого индикатора (0-младший справа, 3-старший слева), при включении вывод «–.–»
volatile unsigned char p_count= 0 ; //Счётчик прерываний (каждые 0,256мс)
Буфер mass_ind[] будет использоваться для хранения индицируемых цифр каждого разряда. Заноситься информация в него будет после каждого суммарного замера АЦП и преобразования результата в формат ХХ.ХХ В. Считывание информации будет производиться в прерывании по переполнению таймера-счётчика 2 (каждые 0,256мс) для динамической индикации. Первоначально в mass_ind[] заносим данные для вывода на индикатор при включении питания значков “– -. – –«.
В прерывании выставляем лог.1 на аноде текущего разряда в соответствии с состоянием счётчика segcounter, выводим в порт D байт данных из массива mass_ind[] и увеличиваем на 1 переменную segcounter (с проверкой на переполнение и ограничением до 3). Также инкрементируем счетчик прерываний p_count для отсчёта интервалов времени в 0,256мс. Т.о. в каждом прерывании выводится цифра одного из разрядов через каждые 0,256мс. Для 2-го разряда дополнительно добавляется разделительная точка.
//Прерывание по переполнению T2 (), динамическая индикация
PORTB = (PORTB & 0b11110000 ) | pgm_read_byte(RAZR+segcounter); //Активация текущего разряда индикатора
PORTD = pgm_read_byte(SEGMENTE+mass_ind[segcounter]); //Вывод сегментов текущего разряда
if (segcounter== 2 ) //Если 2-й разряд с точкой
PORTD = PIND & pgm_read_byte(SEGMENTE+ 10 ); //Добавка десятичной точки
segcounter++; //Инкремент разрядов индикатора
if (segcounter> 3 ) segcounter= 0 ; //Ограничение счетчика
p_count++; //Инкремент счётчика прерываний
Никаких сложных вычислений в прерывании специально не делается, чтобы обеспечить минимальное время выполнения. Благодаря этому скорость переключения разрядов индикатора составляет 1/0,256мс=3906,25 Гц, а каждый из четырёх разрядов мигает с частотой 3906,25 Гц/4=976,5625 Гц. Частота довольно высокая, так что никакого мерцания индикатора не заметно.
Далее следует основная функция программы, начинающаяся с конфигурации портов, таймера-счетчика 2 и АЦП:
unsigned char adc_counter= 0 ; //Счётчик замеров АЦП
unsigned int display = 0 ; //Выводимое напряжение ХХХХ В
TCCR2 |= ( 1 0 0 //Предделитель на N=1, прерывания каждые 0,256мс (1000000 Гц / 256 = 3906,25 Гц), Fинд=3906,25 Гц/4 = 976,5625 Гц
TIMSK |= ( 1 //Разрешение прерывания по переполнению таймера 2
ADMUX = ( 1 1 //Внутренний ИОН 2,56V
|( 0 //Правое выравнивание результата
|( 0 1 0 0 //Вход АЦП – PC4
_delay_ms( 50 ); //Задержка времени на 50 мс
sei(); //Глобальное разрешение прерываний
В следующем бесконечном цикле при помощи счетчика p_count отсчитываем 15 прерываний по 0,256мс, в результате чего получаем интервал 3,84мс и запускаем одиночное преобразование АЦП. Одновременно увеличиваем на 1 счетчик замеров adc_counter. Результат накапливаем в переменной value.
< if (p_count>= 15 ) //Если прошло 15*0,256мс=3.84мс; общее время замеров 64*3.84=245.76мс (4 замера в сек)
ADCSRA= 0b11000011 ; //Пуск АЦП (Кдел=8, f=125 кГц, однократн.)
while (bit_is_set(ADCSRA, ADSC)); //Ожидание завершения преобразования
value = value + ADC; //Чтение и накопление результата преобразования
adc_counter++; //Инкремент счётчика замеров
После 64 замеров вычисляем напряжение в мВ*10:
Измеренное напряжение для N замеров:
Для отображения 4-х разрядов в формате ХX.ХХ В результат делится на 10 с округлением (прибавляется 5 перед делением)
mVolt=(value+5)/32 (N=64, Кдел=8)
if (adc_counter >= 64 ) //Если прошло 64 замера АЦП
При общем количестве замеров 64 получается суммарное время измерения 3,84мс*64=245,76 мс, т.е. примерно 4 измерения в секунду. Чаще делать нет смысла, иначе показания индикатора будут меняться слишком быстро.
Ну и наконец, заполняем буфер mass_ind[4] для вывода из него информации в прерывании.
//Заполнение массива mass_ind[4] для вывода индикации
if (display > 1999 ) //Если напряжение больше 19,99В
mass_ind[ 1 ] = 12 ; //Вывод «-» в 1-м разряде
mass_ind[ 2 ] = 12 ; //Вывод «-» во 2-м разряде
mass_ind[ 3 ] = 1 ; //Вывод «1» в старший разряд (слева)
mass_ind[ 1 ] = (display/ 10 )% 10 ; //1-й разряд
mass_ind[ 2 ] = (display/ 100 )% 10 ; //2-й разряд
mass_ind[ 3 ] = display/ 1000 ; //Старший разряд (слева)
if (mass_ind[ 3 ]== 0 ) mass_ind[ 3 ]= 11 ; //Если в старшем разряде «0» – гашение старшего разряда
Скриншот симуляции работы программы в Протеусе:
Схема вольтметра собрана на плате из одностороннего фольгированного стеклотекстолита размерами 43х20 мм по лазерно-утюжной технологии:
C1 = 10,0х20В (Танталовый, корпус B)
C2, С4…C6 = 0,47 (0603)
C3 = 22,0х6,3В (Танталовый, корпус A)
DA1 = MC78L05A (SOIC-8)
DD1 = ATmega8A-AU (TQFP-32) или ATmega8
HL1 = KW4-361AGB (4 сегмента, общий анод)
L1, L2 = 22uH (0805)
R1 = 240к или 510к (0805)
R3 = 1к (Подстроечный SMD CV-035, EVM (3×3мм))
R4, R5, R7…R12 = 270* (0603)
Для подключения программатора на плате предусмотрены соответствующие контактные площадки MOSI, MISO, SCK, RESET, GND, +Vcc:
После прошивки программы следует запрограммировать следующие фьюзы («0»-галочки установлены):
CKSEL3…0=0001 (Внутр.RC-генератор 1 МГц),
CKOPT=1 ,
BODEN=1 (схема BOD выключена),
SUT10=10 (16 CK, 65 ms, Slowly rising power),
Подключение вольтметра производится тремя проводниками: +Uизмер. , +Uпит. и Общий . Если измеряемое напряжение не опускается ниже минимального входного напряжения питания стабилизатора DA1, цепи +Uизмер. и +Uпит. соединяются вместе.
В первый момент после включения на индикаторе высветится “ – -. – – “, т.к. измерения и обработка результата ещё не проведены. Это корректнее, чем выводить первоначально нулевое напряжение, как сделано во всех встраиваемых вольтметрах. После завершения первой серии замеров на индикатор будет выведено напряжение в вольтах.
Подключив параллельно измеряемой цепи образцовый цифровой вольтметр, подстроечным резистором R3 необходимо выставить одинаковые с ним показания. Для повышения точности настройки желательно использовать напряжение ближе к верхнему пределу измерения. Регулировка получается довольно плавная. Возможно придётся дополнительно подобрать сопротивление резистора R13 для “попадания” в нужный диапазон подстройки.
Испытания вольтметра совместно с образцовым мультиметром показали, что погрешность измерения не превышает единицы младшего разряда (±10 мВ) во всём диапазоне 0…19.99 В.
Вольтметр на микроконтроллере Atmega8 и на светодиодном индикаторе FYT-3031-BSR-21 с общим анодом, применяют в измерениях напряжений блоков питания, при контроле зарядки аккумуляторов и в других устройствах.
Технические характеристики вольтметра
- количество сегментов индикатора – 3;
- измеряемый диапазон напряжения: 0 – 50 В;
- измерительный шаг – 0.1 В;
- расчетная погрешность – 0.3%;
- U напряжение питания от 6 до 14 В.
Схема вольтметра представлена на рисунке ниже.
Схема работы вольтметра на микроконтроллере
Питающее входное напряжение ограничивает и стабилизирует микросхема DA1 – 7805. Диод VD1 является своего рода гарантом того что полярность не перепутана. Конденсаторы С1 и С2 стабилизируют работу микросхемы. Измеряемое напряжение подается на вход микроконтроллера через делитель напряжения, R1 и R2 которые расширяют диапазон измерения. Напряжение получаемое на входе в АЦП преобразуется в цифровое значение. Резистор R3 номиналом 10 кОм необходим для защиты микроконтроллера от случайного сброса.
Полученное таким образом цифровое значение раскладывается на разряды. Вывод значения каждого разряда производится последовательно при помощи динамической индикации. Набор резисторов R4 – R11 ограничивает ток в сегментах индикатора до приемлемых значений. На выводах A1 – A3 появляется положительное напряжение последовательно.
Детали и настройка схемы
Резистор R1 лучше применить прецизионный, как пример, типа С2-36 (допуск 0.5%) или С2-29В-0,125 ( допуск 0.25-0.5%). Сопротивление R2 для подстройки многооборотное, как пример, тип его 3296W. Сопротивления R3 – R11 мощностью 0,125-0,5 ватт (допуск +10%) , как пример, тип С2-33; CF1/4 и т. д. Конденсаторы С1, С2 подойдут электролитический любые с пределом Т* = 105*С, емкостью – 22-47 мкФ. Конденсатор С3 с керамики, как пример, К10-17Б. Диод VD1 лучше заменить бы на 1N4148 или даже более мощный КД247; 1N4001; и т. д. Стабилизатор U до 5 В DA1 любой, но в корпусе TO220, как пример, КР142ЕН5А и т. д.
При настройке прибора на вход дают образец напряжения – под 50 В, но не больше, и регулировкой R2 достигают того, чтобы совпали показания вольтметра и образец напряжения. Потом ось резистора подстройки контрят нитрокраской или цапонлаком, которые быстро сохнут.
Сборка вольтметра
При динамичном управлении индикаторами светодиодными необходимо учитывать эффект от накопившихся зарядов в светодиодах. Если просто снимается U с сегмента, то накопленный заряд в диффузионной емкости p-n-p перехода будет еще какое-то время засвечивать индикатор, пока p-n-p-переходная емкость полностью не потеряет заряд. Это называется паразитной подсветкой индикатора. Чтобы быстро рассеять данный заряд и четко гасить индикатор, необходимо подать на сегменты U с обратной полярностью (как пример, для индикатора с 1-общим анодом на сегмент-катод надо подать уровень до 5 В, а на анод – уровень 0 В.)
Точность вольтметра на микроконтроллере с АЦП 10 – ти разрядными не очень высокая, составляет всего лишь примерно 0.3 %. Ее вычисляют следующим образом: ошибка дискретности 1LSB + нелинейная ошибка (по Даташиту – это 2LSB). Суммарная ошибка будет равна 3LSB. Соответственно погрешность относительная 3/1024
0,3%. Погрешность абсолютная для показаний близких к 50 В 0.3% = ±0,15 В.
Следовательно, разница при этом между завышенными показаниями и заниженными вдвое больше и равняется она – 0.3 В. Говоря другими словами, прибор настраивается так, чтобы отклонения показаний получались не односторонними, а симметричными по отношению к заданной характеристики.
Сейчас всё большую популярность получают измерительные приборы на основе микроконтроллеров со встроенным АЦП, тем более что доступность и возможности таких МК постоянно растут, схемотехника упрощается, а их сборка становиться под силу даже начинающим радиолюбителям. В качестве устройств отображения информации в цифровых измерительных приборах часто используются LCD модули с собственным контроллером. Такому решению присущи недостатки: необходимость дополнительной подсветки с большим током потребления, ограниченный выбор отображаемых символов, высокая стоимость. Поэтому проще и удобнее задействовать семисегментные трёхзнаковые LED индикаторы.
Электросхема вольтметра
Схема принципиальная вольтметра на PIC16F676 — второй вариант
Это простой вольтметр до 30 вольт на основе PIC16F676 микроконтроллера с 10-разрядный АЦП и трех 7-ми сегментных светодиодных индикаторов. Вы можете использовать эту схему для того, чтобы измерить до 30 В постоянного тока. PIC16F676 — это основа этой схемы. Внутренний АЦП микроконтроллера с резисторами делителя напряжения используют для измерения входного напряжения. Затем 3 цифры comm анод 7-сегментный дисплей используется для отображения финальной преобразованное напряжение. Для уменьшения токопотребления в схеме задействована динамическая индикация. Скачать прошивки на различные индикаторы можно здесь.
Работа прибора
На резисторах R1 и R2 собран делитель напряжения, многооборотный построечный резистор R3 служит для калибровки вольтметра. Конденсатор C1 защищает вольтметр от импульсной помехи и сглаживает входной сигнал. Стабилитрон VD1 служит для ограничения входного напряжения на входе микроконтроллера, что бы вход контроллера не сгорел при превышении напряжения по входу.
Расчеты показаний
10-ти битная АЦП позволяет получить максимальное количество 1023. Значит с 5 вольт мы получаем 5/1023 = 0.0048878 В/Д, значит, если значение 188, то входное напряжение: 188 х 0.0048878 = 0.918 вольт. С делителем напряжения максимальное напряжение 30 В, поэтому все расчеты будут 30/1023 = 0.02932 вольт/деление. Так что если сейчас мы получаем 188, то 188 х 0.02932 = 5.5 Вольта. Ещё более упростить и удешевить схему можно заменив АЛС индикаторы на простую линейку светодиодов.

































