Электронный цифровой вольтметр своими руками. Просто о сложном: как сделать автомобильный вольтметр своими руками? Преобразователь напряжения LT1308

При работе с различными электронными изделиями возникает потребность измерять режимы или распределение переменных напряжений на отдельных элементах схемы. Обычные мультиметры, включённые в режиме AC, могут фиксировать лишь большие значения этого параметра с высокой степенью погрешности. При необходимости снятия небольших по величине показаний желательно иметь милливольтметр переменного тока, позволяющий производить измерения с точностью до милливольта.

Для того чтобы изготовить цифровой вольтметр своими руками, нужен определённый опыт работы с электронными компонентами, а также умение хорошо управляться с электрическим паяльником. Лишь в этом случае можно быть уверенным в успехе сборочных операций, осуществляемых самостоятельно в домашних условиях.

Вольтметр на основе микропроцессора

Выбор деталей

Перед тем, как сделать вольтметр, специалисты рекомендуют тщательно проработать все предлагаемые в различных источниках варианты. Основное требование при таком отборе – предельная простота схемы и возможность измерять переменные напряжения с точностью до 0,1 Вольта.

Анализ множества схемных решений показал, что для самостоятельного изготовления цифрового вольтметра целесообразнее всего воспользоваться программируемым микропроцессором типа РІС16F676. Тем, кто плохо знаком с техникой перепрограммирования этих чипов, желательно приобретать микросхему с уже готовой прошивкой под самодельный вольтметр.

Особое внимание при закупке деталей следует уделить выбору подходящего индикаторного элемента на светодиодных сегментах (вариант типового стрелочного амперметра в этом случае полностью исключён). При этом предпочтение следует отдать прибору с общим катодом, поскольку число компонентов схемы в этом случае заметно сокращается..

Дополнительная информация. В качестве дискретных комплектующих изделий можно использовать обычные покупные радиоэлементы (резисторы, диоды и конденсаторы).

После приобретения всех необходимых деталей следует перейти к разводке схемы вольтметра (изготовлению его печатной платы).

Подготовка платы

Перед изготовлением печатной платы нужно внимательно изучить схему электронного измерителя, учтя все имеющиеся на ней компоненты и разместив их на удобном для распайки месте.

Важно! При наличии свободных средств можно заказать изготовление такой платы в специализированной мастерской. Качество её исполнения в этом случае будет, несомненно, выше.

После того, как плата готова, нужно «набить» её, то есть разместить на своих местах все электронные компоненты (включая микропроцессор), а затем запаять их низкотемпературным припоем. Тугоплавкие составы в этой ситуации не подойдут, поскольку для их разогрева потребуются высокие температуры. Так как в собираемом устройстве все элементы миниатюрные, то их перегрев крайне нежелателен.

Блок питания (БП)

Для того чтобы будущий вольтметр нормально функционировал, ему потребуется отдельный или встроенный блок питания постоянного тока. Этот модуль собирается по классической схеме и рассчитан на выходное напряжение 5 Вольт. Что касается токовой составляющей этого устройства, определяющей его расчетную мощность, то для питания вольтметра вполне достаточно половины ампера.

Исходя из этих данных, подготавливаем сами (или отдаём для изготовления в специализированную мастерскую) печатную плату под БП.

Обратите внимание! Рациональнее будет сразу подготовить обе платы (для самого вольтметра и для блока питания), не разнося эти процедуры по времени.

При самостоятельном изготовлении это позволит за один раз выполнять сразу несколько однотипных операций, а именно:

  • Вырезка из листов стеклотекстолита нужных по размеру заготовок и их зачистка;
  • Изготовление фотошаблона для каждой из них с его последующим нанесением;
  • Травление этих плат в растворе хлористого железа;
  • Набивка их радиодеталями;
  • Пайка всех размещённых компонентов.

В случае, когда платы отправляются для изготовления на фирменном оборудовании, их одновременная подготовка также позволит выгадать как по цене, так и по времени.

Сборка и настройка

При сборке вольтметра важно следить за правильностью установки самого микропроцессора (он должен быть уже запрограммирован). Для этого необходимо найти на корпусе маркировку его первой ножки и в соответствии с ней зафиксировать корпус изделия в посадочных отверстиях.

Важно! Лишь после того, как есть полная уверенность в правильности установки самой ответственной детали, можно переходить к её запаиванию («посадке на припой»).

Иногда для установки микросхемы рекомендуется впаивать в плату специальную панельку под неё, существенно упрощающую все рабочие и настроечные процедуры. Однако такой вариант выгоден лишь в том случае, если используемая панелька имеет качественное исполнение и обеспечивает надёжный контакт с ножками микросхемы.

После запайки микропроцессора можно набить и сразу же посадить на припой все остальные элементы электронной схемы. В процессе пайки следует руководствоваться следующими правилами:

  • Обязательно использовать активный флюс, способствующий хорошему растеканию жидкого припоя по всей посадочной площадке;
  • Стараться не задерживать жало на одном месте слишком долго, что исключает перегрев монтируемой детали;
  • По завершении пайки следует обязательно промыть печатную плату спиртом или любым другим растворителем.

В том случае, если при сборке платы не допущено никаких ошибок, схема должна заработать сразу после подключения к ней питания от внешнего источника стабилизированного напряжения 5 Вольт.

В заключение отметим, что собственный блок питания может быть подключен к готовому вольтметру по завершении его настройки и проверки, производимой по стандартной методике.

Видео

Рассмотрены не сложные схемы цифровых вольтметра и амперметра, построенных без использования микроконтроллеров на микросхемах СА3162, КР514ИД2. Обычно, у хорошего лабораторного блока питания есть встроенные приборы, - вольтметр и амперметр. Вольтметр позволяет точно установить выходное напряжение, а амперметр покажет ток через нагрузку.

В старых лабораторных блоках питания были стрелочные индикаторы, но сейчас должны быть цифровые. Сейчас радиолюбители чаще всего делают такие приборы на основе микроконтроллера или микросхем АЦП вроде КР572ПВ2, КР572ПВ5.

Микросхема СА3162Е

Но существуют и другие микросхемы аналогичного действия. Например, есть микросхема СА3162Е, которая предназначена для создания измерителя аналоговой величины с отображением результата на трехразрядном цифровом индикаторе.

Микросхема СА3162Е представляет собой АЦП с максимальным входным напряжением 999 mV (при этом показания «999») и логической схемой, которая выдает сведения о результате измерения в виде трех поочередно меняющихся двоично-десятичных четырехразрядных кодов на параллельном выходе и трех выходах для опроса разрядов схемы динамической индикации.

Чтобы получить законченный прибор нужно добавить дешифратор для работы на семисегментный индикатор и сборку из трех семисегментных индикаторов, включенных в матрицу для динамической индикации, а так же, трех управляющих ключей.

Тип индикаторов может быть любым, -светодиодные, люминесцентные, газоразрядные, жидкокристаллические, все зависит от схемы выходного узла на дешифраторе и ключах. Здесь используется светодиодная индикация на табло из трех семисегментных индикаторов с общими анодами.

Индикаторые включены по схеме динамической матрицы, то есть, все их сегментные (катодные) выводы включены параллельно. А для опроса, то есть, последовательного переключения, используются общие анодные выводы.

Принципиальная схема вольтметра

Теперь ближе к схеме. На рисунке 1 показана схема вольтметра, измеряющего напряжение от 0 до 100V (0...99,9V). Измеряемое напряжение поступает на выводы 11-10 (вход) микросхемы D1 через делитель на резисторах R1-R3.

Конденсатор СЗ исключает влияние помех на результат измерения. Резистором R4 устанавливают показания прибора на ноль, при отсутствии входного напряжения А резистором R5 выставляют предел измерения так чтобы результат измерения соответствовал реальному, то есть, можно сказать, им калибруют прибор.

Рис. 1. Принципиальная схема цифрового вольтметра до 100В на микросхемах СА3162, КР514ИД2.

Теперь о выходах микросхемы. Логическая часть СА3162Е построена по логике ТТЛ, а выходы еще и с открытыми коллекторами. На выходах «1-2-4-8» формируется двоичнодесятичный код, который периодически сменяется, обеспечивая последовательную передачу данных о трех разрядах результата измерения.

Если используется дешифратор ТТЛ, как, например, КР514ИД2, то его входы непосредственно подключаются к данным входам D1. Если же будет применен дешифратор логики КМОП или МОП, то его входы будет необходимо подтянуть к плюсу при помощи резисторов. Это нужно будет сделать, например, если вместо КР514ИД2 будет использован дешифратор К176ИД2 или CD4056.

Выходы дешифратора D2 через токоограничивающие резисторы R7-R13 подключены к сегментным выводам светодиодных индикаторов Н1-НЗ. Одноименные сегментные выводы всех трех индикаторов соединены вместе. Для опроса индикаторов используются транзисторные ключи VT1-VT3, на базы которых подаются команды с выходов Н1-НЗ микросхемы D1.

Эти выводы тоже сделаны по схеме с открытым коллектором. Активный ноль, поэтому используются транзисторы структуры р-п-р.

Принципиальная схема амперметра

Схема амперметра показана на рисунке 2. Схема практически такая же, за исключением входа. Здесь вместо делителя стоит шунт на пятиваттном резисторе R2 сопротивлением 0,1 От. При таком шунте прибор измеряет ток до 10А (0...9.99А). Установка на ноль и калибровка, как и в первой схеме, осуществляется резисторами R4 и R5.

Рис. 2. Принципиальная схема цифрового амперметра до 10А и более на микросхемах СА3162, КР514ИД2.

Выбрав другие делители и шунты можно задать другие пределы измерения, например, 0...9.99V, 0...999mA, 0...999V, 0...99.9А, это зависит от выходных параметров того лабораторного блока питания, в который будут установлены эти индикаторы. Так же, на основе данных схем можно сделать и самостоятельный измерительный прибор для измерения напряжения и тока (настольный мультиметр).

При этом нужно учесть, что даже используя жидкокристаллические индикаторы прибор будет потреблять существенный ток, так как логическая часть СА3162Е построена по ТТЛ-логике. Поэтому, хороший прибор с автономным питанием вряд ли получится. А вот автомобильный вольтметр (рис.4) выйдет неплохой.

Питаются приборы постоянным стабилизированным напряжением 5V. В источнике питания, в который будут они установлены, необходимо предусмотреть наличие такого напряжения при токе не ниже 150mA.

Подключение прибора

На рисунке 3 показана схема подключения измерителей в лабораторном источнике.

Рис. 3. Схема подключения измерителей в лабораторном источнике.

Рис.4. Самодельный автомобильный вольтметр на микросхемах.

Детали

Пожалуй, самое труднодоставаемое - это микросхемы СА3162Е. Из аналогов мне известна только NTE2054. Возможно есть и другие аналоги, о которых мне не известно.

С остальным значительно проще. Как уже сказано, выходную схему можно сделать на любом дешифраторе и соответствующих индикаторах. Например, если индикаторы будут с общим катодом, то нужно КР514ИД2 заменить на КР514ИД1 (цоколевка такая же), а транзисторы VТ1-VТЗ перетащить вниз, подсоединив их коллектора к минусу питания, а эмиттеры к общим катодам индикаторов. Можно использовать дешифраторы КМОП-логики, подтянув их входы к плюсу питания при помощи резисторов.

Налаживание

В общем-то оно совсем несложное. Начнем с вольтметра. Сначала замкнем между собой выводы 10 и 11 D1, и подстройкой R4 выставим нулевые показания. Затем, убираем перемычку, замыкающую выводы 11-10 и подключаем к клеммам «нагрузка» образцовый прибор, например, мультиметр.

Регулируя напряжение на выходе источника, резистором R5 настраиваем калибровку прибора так, чтобы его показания совпадали с показаниями мультиметра. Далее, налаживаем амперметр. Сначала, не подключая нагрузку, регулировкой резистора R5 устанавливаем его показания на ноль. Теперь потребуется постоянный резистор сопротивлением 20 От и мощностью не ниже 5W.

Устанавливаем на блоке питания напряжение 10V и подключаем этот резистор в качестве нагрузки. Подстраиваем R5 так чтобы амперметр показал 0,50 А.

Можно выполнить калибровку и по образцовому амперметру, но мне показалось удобнее с резистором, хотя конечно на качество калибровки очень влияет погрешность сопротивления резистора.

По этой же схеме можно сделать и автомобильный вольтметр. Схема такого прибора показана на рисунке 4. Схема от показанной на рисунке 1 отличается только входом и схемой питания. Этот прибор теперь питается от измеряемого напряжения, то есть, измеряет напряжение, поступающее на него как питающее.

Напряжение от бортовой сети автомобиля через делитель R1-R2-R3 поступает на вход микросхемы D1. Параметры этого делителя такие же как в схеме на рисунке 1, то есть для измерения в пределах 0...99.9V.

Но в автомобиле напряжение редко бывает более 18V (больше 14,5V уже неисправность). И редко опускается ниже 6V, разве только падает до нуля при полном отключении. Поэтому прибор реально работает в интервале 7...16V. Питание 5V формируется из того же источника, с помощью стабилизатора А1.

Уже несколько лет занимаюсь радиоэлектроникой, но стыдно признаться, у меня все еще нет нормального блока питания. Запитываю собранные устройства тем, что попадется под руку. От всяких полудохлых батареек и трансформаторов с диодным мостом без какой либо стабилизации напряжения и ограничения выходного тока. Такие извращения довольно опасны для собранной конструкции. Наконец-то решился собрать нормальный блок питания. А начал сборку с . Надо конечно было начинать с другого, но как уже есть. Поскольку понемногу занимаюсь говнокодерством, то решил сам разработать показометр. В качестве экрана стоит дисплей от Nokia-1202. Наверно я уже всех задолбал с этим дисплеем, но он в 3 раза дешевле, чем 2x16 HD44780 (по крайней мере у нас). Вполне паябельный разъем и вообще неплохие характеристики. Короче - хороший вариант для измерителя напряжения и тока.

Электрическая схема цифрового ампервольтметра для БП

В первой и второй строчке отображается усредненное значение напряжения и тока из 300 замеров АЦП. Это сделано для большей точности измерения. В третьей строчке выводится сопротивление нагрузки, рассчитанное по закону Ома. Хотел сперва сделать, чтоб выводилась потребляемая мощность, но сделал сопротивление. Может позже переделаю на мощность. В четвертой строчке выводится температура измеряемая датчиком DS18B20 . Он запрограммирован измерять температуру от 0 до 99 градусов Цельсия. Его надо установить на радиатор выходного транзистора, или на какой нибудь другой элемент схемы, где есть сильный нагрев.


К микроконтроллеру можно так же подключить кулер для охлаждения радиатора транзистора. Он будет изменять свои обороты при изменении температуры измеряемой датчиком DS18B20 . На ножке PB3 присутствует ШИМ сигнал. Кулер подключается к этому выводу через силовой ключ. В качестве силового ключа лучше всего использовать MOSFET транзистор. При температуре в 90 градусов у вентилятора будут максимальные обороты. Датчик температуры можно и не устанавливать. В этом случае в четвертой строчке просто высветится надпись OFF . Кулер подключаем на прямую. На выходе PB3 будет 0.


В архиве есть два варианта прошивки. Одна на максимально измеряемый ток в 5 ампер, а вторая до 10 ампер. Максимально измеряемое напряжение – 30 вольт. Коэффициент усиления ОУ LM358 по расчетам выбран 10. Для разных прошивок нужно подобрать шунт. Не у всех есть возможность измерять сотые доли ома и прецизионные резисторы. Поэтому в схеме есть два подстроечных резистора. Ними можно подкорректировать показания измерений.

Там-же в архиве есть и печатная плата. Есть небольшие различия на фото - там она немножко подправленная. Удалена одна перемычка и размер меньше по высоте на 5 мм. Стабильность показаний ампервольтметра высокая. Иногда плавает только на сотые доли. Хотя сравнивал всего лишь с моим китайским тестером. Для меня этого вполне хватит.


Всем спасибо за внимание. Все вопросы задаем на форуме. Показометр сделал Бухарь .

Обсудить статью ЦИФРОВОЙ АМПЕРВОЛЬТМЕТР

В сегодняшнем занятии мы рассмотрим вариант изготовления самодельного цифрового вольтметра для измерения напряжения на одиночном элементе питания. Пределы измерения напряжения 1-4.5 Вольт. Внешнее дополнительное питание, кроме измеряемого, не требуется.

25 лет назад у меня был кассетный плеер. Питал я его Ni-Cd аккумуляторами НКГЦ-0.45 ёмкостью 450мА/ч. Чтобы в дороге определять какие аккумуляторы уже сели, а какие ещё поработают было сделано простое устройство.


Батарейно-аккумуляторный диагностическо-измерительный комплекс.


Он собран по схеме преобразователя напряжения на двух транзисторах. На выход включен светодиод. Параллельно входу, подключаемому к аккумулятору включен резистор, намотанный из нихрома. Таким образом, если аккумулятор способен отдавать около 200мА, то светодиод загорается.

Из недостатков - размеры контактов жестко выгнуты на длину АА элемента, все прочие типоразмеры подключать не удобно. Ну и напряжение не видно. Поэтому в век цифровых технологий захотелось сделать более высокотехнологичное устройство. И конечно на микроконтроллере, куда без него:)

Итак, схема проектируемого устройства.

Используемые детали:
1. OLED дисплей с диагональю 0.91 дюйм и разрешением 128x32 (около $3)
2. Микроконтроллер ATtiny85 в корпусе SOIC (около $1)
3. Boost DC/DC Converter LT1308 от компании Linear Technology. ($2.74 за 5 штук)
4. Конденсаторы керамические, выпаяны из неисправной видеокарты.
5. Индуктивность COILTRONICS CTX5-1 или COILCRAFT DO3316-472.
6. Диод Шоттки, я использовал MBR0520 (0.5A, 20V)

Преобразователь напряжения LT1308

Характеристики из описания LT1308:

Обещают 300мА 3.3В с одного элемента NiCd, нам подходит. Выходное напряжение устанавливается делителем, резисторы 330кОм и 120кОм, при указанных номиналах выходное напряжение преобразователя получается около 4.5В. Выходное напряжение выбиралось достаточным для питания контроллера и дисплея, чуть выше максимального измеряемого напряжения на литиевом аккумуляторе.

Для раскрытия всего потенциала преобразователя напряжения нужна индуктивность, которой у меня нет (см. пункт 5 выше), поэтому собираемый мной преобразователь имеет заведомо худшие параметры. Но и нагрузка у меня совсем небольшая. При подключении реальной нагрузки из микроконтроллера и OLED дисплея получается такая нагрузочная таблица.

Прекрасно, идём дальше.

Особенности измерения напряжения микроконтроллером

Микроконтроллер ATtiny85 имеет АЦП разрядностью 10 бит. Поэтому считываемый уровень лежит в диапазоне 0-1023 (2^10). Для перевода в напряжение используется код:
float Vcc = 5.0; int value = analogRead(4); / читаем показания с А2 float volt = (value / 1023.0) * Vcc;
Т.е. предполагается, что напряжение питания строго 5В. Если напряжение питания микроконтроллера изменится, то измеренное напряжение тоже изменится. Поэтому нам нужно узнать точное значение напряжения питания!
Многие чипы AVR включая серию ATmega и ATtiny обеспечивают средства для измерения внутреннего опорного напряжения. Путем измерения внутреннего опорного напряжения, мы можем определить значение Vcc. Вот как:
  • Установить источник опорного напряжения analogReference(INTERNAL).
  • Снять показания АЦП для внутреннего источника 1.1 В.
  • Расчитать значение Vcc основываясь на измерении 1.1 В по формуле:
Vcc * (Показания АЦП) / 1023 = 1.1 В
Из чего следует:
Vcc = 1.1 В * 1023 / (Показания АЦП)
На просторах интернета была найдена функция для измерения напряжения питания контроллера:

Функция readVcc()

long readVcc() { // Read 1.1V reference against AVcc // set the reference to Vcc and the measurement to the internal 1.1V reference #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) ADMUX = _BV(MUX5) | _BV(MUX0); #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) ADMUX = _BV(MUX3) | _BV(MUX2); #else ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #endif delay(75); // Wait for Vref to settle ADCSRA |= _BV(ADSC); // Start conversion while (bit_is_set(ADCSRA,ADSC)); // measuring uint8_t low = ADCL; // must read ADCL first - it then locks ADCH uint8_t high = ADCH; // unlocks both long result = (high<<8) | low; result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000 return result; // Vcc in millivolts }


Для вывода на экран используется библиотека Tiny4kOLED с включенным шрифтом 16х32. Из шрифта, для уменьшения размера библиотеки, удалены 2 не используемых символа (, и -) и нарисована отсутствующая буква «В». Код библиотеки соответственно изменен.
Так-же для стабилизации выводимых измерений использована функция с , спасибо автору dimax , работает хорошо.

Код я отлаживал на платке Digispark в среде arduino IDE. После чего ATtiny85 была выпаяна и припаяна на макетку. Собираем макетную плату, подстроечным резистором выставляем напряжение на выходе преобразователя (сначала я выставлял на выходе 5В, при этом ток на входе преобразователя был под 170мА, уменьшил напряжение до 4.5В, ток снизился до 100мА). Когда ATtiny85 припаяна на макетку код приходится заливать с помощью программатора, у меня обычный USBash ISP.


Код программы

// НАСТРОЙКА /* * Ставим #define NASTROYKA 1 * Компилируем, заливаем код, запускаем, запоминаем значение на дисплее, например 5741 * Измеряем мультиметром реальное напряжение на выходе преобразователя, например 4979 (это в мВ) * Считаем (4979/5741)*1.1=0.953997 * Считаем 0.953997*1023*1000 = 975939 * Записываем результат в строку 100 в виде result = 975939L * Ставим #define NASTROYKA 0 * Компилируем, заливаем код, запускаем, готово. */ #define NASTROYKA 0 #include #include long Vcc; float Vbat; // тонкая настройка алгоритма сглаживания shumodav() #define ts 5 // *table size* количество строк массива для хранения данных, для девиации ± 2 отсчёта оптимально 4 строки и одна в запас. #define ns 25 // *number samples*, от 10..до 50 максимальное количество выборок для анализа 1й части алгоритма #define ain A2 // какой аналоговый вход читать (А2 это P4) #define mw 50 // *max wait* от 15..до 200 ms ожидать повтора отсчёта для 2 части алгоритма unsigned int myArray, aread, firstsample, oldfirstsample, numbersamples, rezult; unsigned long prevmillis = 0; boolean waitbegin = false; //флаг включённого счётчика ожидания повтора отсчёта void setup() { oled.begin(); oled.clear(); oled.on(); oled.setFont(FONT16X32_sega); } void loop() { for (byte i = 0; i < 5; i++) { Vcc += readVcc(); } Vcc /= 5; shumodav(); Vbat = ((rezult / 1023.0) * Vcc) / 1000; if (Vbat >= 0.95) { oled.setCursor(16, 0);#if NASTROYKA oled.print(rezult); #else oled.print(Vbat, 2); oled.print("/"); #endif } Vcc = 0; } long readVcc() { // чтение реального напряжения питания // Read 1.1V reference against AVcc // set the reference to Vcc and the measurement to the internal 1.1V reference #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) ADMUX = _BV(MUX5) | _BV(MUX0); #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) ADMUX = _BV(MUX3) | _BV(MUX2); #else ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #endif delay(75); // Wait for Vref to settle ADCSRA |= _BV(ADSC); // Start conversion while (bit_is_set(ADCSRA, ADSC)); // measuring uint8_t low = ADCL; // must read ADCL first - it then locks ADCH uint8_t high = ADCH; // unlocks both long result = (high << 8) | low; // result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000 // индикатор показывал 4990, вольтметр 4576мВ (4576/4990)*1.1=1.008737 result = 1031938L / result; // Calculate Vcc (in mV); 1031938 = 1.008737*1023*1000 return result; // Vcc in millivolts } void shumodav() { // главная функция //заполнить таблицу нолями в начале цикла for (int s = 0; s < ts; s++) { for (int e = 0; e < 2; e++) { myArray[s][e] = 0; } } // основной цикл накопления данных for (numbersamples = 0; numbersamples < ns; numbersamples++) { #if NASTROYKA aread = readVcc(); #else aread = analogRead(ain); #endif // уходим работать с таблицей//// tablework(); } // заполнен массив, вычисляем максимально повторяющееся значение int max1 = 0; // временная переменная для хранения максимумов for (byte n = 0; n < ts ; n++) { if (myArray[n] > max1) { //перебор 2-х элементов строк max1 = myArray[n]; // запомним куда больше всего попало firstsample = myArray[n]; // его 1 элемент = промежуточный результат. } } //*****вторая фаза алгоритма *********///// // если старый отсчёт не равен новому, //и флага включения счёта времени небыло, то if (oldfirstsample != firstsample && waitbegin == false) { prevmillis = millis(); // скидываем счётчик времени на начало waitbegin = true; } // активируем флаг ожидания // если до истечения лимита времени отсчёт сравнялся //со старым, то снимаем флаг if (waitbegin == true && oldfirstsample == firstsample) { waitbegin = false; rezult = firstsample; } // если всё таки отсчёт не сравнялся, а время ожидания вышло if (waitbegin == true && millis() - prevmillis >= mw) { oldfirstsample = firstsample; waitbegin = false; rezult = firstsample; } //то признаём новый отсчёт конечным результатом функции. } // конец главной функции void tablework() { // функция внесения данных в таблицу // если в таблице совпадает отсчёт, то инкрименировать //его счётчик во втором элементе for (byte n = 0; n < ts; n++) { if (myArray[n] == aread) { myArray[n] ++; return; } } // перебираем ячейки что б записать значение aread в таблицу for (byte n = 0; n < ts; n++) { if (myArray[n] == 0) { //если есть пустая строка myArray[n] = aread; return; } } // если вдруг вся таблица заполнена раньше чем кончился цикл, numbersamples = ns; } // то счётчик циклов на максимум


Как упоминалось выше, в контроллерах есть внутренний источник опорного напряжения 1.1В. Он стабильный, но не точный. Поэтому его реальное напряжение скорее всего отличается от 1.1В. Чтобы узнать, сколько на самом деле, необходимо провести калибровку:

* Ставим #define NASTROYKA 1
* Компилируем, заливаем код, запускаем, запоминаем значение на дисплее, например 5741
* Измеряем мультиметром реальное напряжение на выходе преобразователя, например 4979 (это в мВ)
* Считаем (4979/5741)*1.1=0.953997 - это реальное напряжение источника опорного напряжения
* Считаем 0.953997*1023*1000 = 975939
* Записываем результат в строку 100 в виде result = 975939L;
* Ставим #define NASTROYKA 0
* Компилируем, заливаем код, запускаем, готово.

В программе DipTrace разводим плату, размером с OLED дисплей 37х12мм


Полчаса нелюбимого занятия ЛУТом.


Найдите 10 отличий

Первый раз я облажался и протравил зеркальную плату, причем заметил это только когда начал паять элементы.



Припаиваем. SMD индуктивность 4,7мкГн была мне любезно предоставлена , большое спасибо, Сергей.


Собираем бутерброд из платы и экрана. На концах проводов я припаял небольшие магниты, вольтметр сам прищелкивается к измеряемому аккумулятору. Неодимовые магниты при нагреве выше 80 градусов теряют магнитные свойства, поэтому паять нужно легкоплавким сплавом Вуда или Розе очень быстро. Еще раз проводим калибровку и проверяем точность измерения:






Обзор понравился +126 +189

Целью этого дела было собрать очень точный вольтметр, с 3 цифрами после запятой. Нужен был вольтметр постоянного напряжения показывающий значения напряжения в диапазоне 0-10 В. не подходили. Поэтому после принятия решения о самостоятельном исполнении выбор пал на микросхему ICL7135.

Схема точного цифрового вольтметра

Генератор сделан на микросхеме 4047, он должен также питать преобразователь отрицательного напряжения. Вольтметр имеет три диапазона измерений: 2 V, 20 V, 200 V.

В делителе применены резисторы 0,1%. При запуске системы возникла проблема её калибровки. Не имея доступа к эталонному прибору с точностью не менее 5 цифр, решено было купить готовый источник стабильных напряжений для калибровки. Основан он на AD584KH обеспечивает четыре уровня: 2,5 V и 5,0 V, 7,5 V и 10,0 V.

На прилагаемых фотографиях видно измеренные значения. Корпус вольтметра была изготовлен из листовой стали, выдранной из корпуса старого компьютера. Питание идёт постоянным напряжением от БП на 15 В.

Точность действительно сверх высокая. Показания реально стабильны, даже на открытых (не экранированных) измерительных проводах последняя цифра не «прыгает».

 
Статьи по теме:
Проверка рабочей тормозной системы
Нормативы эффективности торможения рабочей и аварийной тормозных систем, соответствующие СТБ 1641-2006, приведены в таблице: Таблица. Нормативы эффективности торможения транспортных средств рабочей и аварийной тормозных систем при проверках на стендах
Транспондеры: какой выгоднее?
9 января 2018 года по некоторым маршрутам платной дороги М-11 Москва-Санкт-Петербург на участке 15-58 км, строительство и эксплуатация которого осуществляется в рамках концессионного соглашения, меняется стоимость проезда. Для легкового транспорта основны
Микросхема MC34063 схема включения
Для питания портативной электронной аппаратуры в домашних условиях зачастую используют сетевые источники питания. Но это не всегда бывает удобно, поскольку не всегда по месту использования имеется свободная электрическая розетка. А если необходимо иметь н
Как своими руками сделать педаль джимми хендрикса
Всем привет! Сегодняшняя статья посвящена примочкостроительству целиком и полностью. После её прочтения, ты сможешь с закрытыми глазами левой пяткой правой ноги собрать свой первый рабочий девайс. Ну или почти.У вопроса «Что заставляет гитариста взять