Arduino aref пин: измеряем точное напряжение

Bluetooth вольтметр на базе arduino

Привет! Сегодня хочу продолжить тему «скрещивания» arduino и android. В предыдущей публикации я рассказал про bluetooth машинку, а сегодня речь пойдет про DIY bluetooth вольтметр. Еще такой девайс можно назвать смарт вольтметр, «умный» вольтметр или просто умный вольтметр, без кавычек.

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

Disclaimer: статья рассчитана на среднестатистического любителя arduino, который обычно не знаком с программированием под android, поэтому как и в прошлой статье, приложение для смартфона мы будем делать, используя среду визуальной разработки android-приложений App Inventor 2.

Чтобы сделать DIY bluetooth вольтметр нам нужно написать две относительно независимых друг от друга программы: скетч для ардуино и приложение для андроид.Пожалуй начнем со скетча.

Здесь достаточно одной-двух строк кода, а напряжение подается напрямую на пин А0: int value = analogRead(0);// читаем показания с А0 voltage = (value / 1023.0) * 5; // верно только если Vcc = 5.0 вольт Второй случай: для измерения напряжения более 5 вольт используется делитель напряжения. Схема очень простая, код тоже.

Скетчint analogInput = A0; float val = 0.0; float voltage = 0.0; float R1 = 100000.0; //Battery Vin-> 100K -> A0 float R2 = 10000.0; //Battery Gnd -> Arduino Gnd and Arduino Gnd -> 10K -> A0

int value = 0;

void setup() { Serial.begin(9600); pinMode(analogInput, INPUT);

}

void loop() { value = analogRead(analogInput); val = (value * 4.7) / 1024.0; voltage = val / (R2/(R1+R2)); Serial.println(voltage); delay(500);

}

Третий случай. Когда нужно получить более точные о напряжении в качестве опорного напряжения нужно использовать не напряжение питания, которое может немного меняться при питании от акб, например, а напряжение внутренного стабилизатора ардуино 1.1 вольт.Тут схема такая же, но код чуть длиннее.

Приложение будем делать прямо из браузера в среде визуальной разработки android-приложений App Inventor 2. Заходим на сайт appinventor.mit.

edu/explore/, авторизуемся с помощью гугл-аккаунта, нажимаем кнопку create, new project, и путем простого перетаскивания элементов создаем примерно такой дизайн:Я сделал графику очень простой, если кому-то захочется более интересной графики, напомню, что для этого нужно использовать вместо .jpeg файлов, файлы формата .png с прозрачным фоном. Теперь переходим во вкладку Blocks и создаем там логику работы приложения примерно так:

Регистрация аккаунта в AdaFruit

Здесь вам необходимо выполнить следующие шаги:

Шаг 1. Зарегистрировать аккаунт на Adafruit IO или войти в свой аккаунт если вы там уже зарегистрированы.

Шаг 2. Кликните на My account -> Dashboard.

Шаг 3. Кликните на Actions и создайте новую приборную доску (Dashboard).

Шаг 4. Введите имя и название для вашего проекта и нажмите Create (создать).

Шаг 5. Нажмите на Key button (кнопка с изображением ключа – см. рисунок) и запишите ключи, которые предоставит вам этот сервис (см. рисунок). Далее эти ключи будут использоваться в коде программы.

Шаг 6. Кликните на кнопку ‘+’ чтобы создать новый блок и кликните на Gauge (масштаб) чтобы отобразить уровень расходования электроэнергии. Вы можете использовать простое текстовое поле для отображения этой информации.

Шаг 7. Далее введите имя фида (Name of Feed) и нажмите на Create (создать). Затем выберите фид и кликните на Next step (следующий шаг).

Шаг 8. В настройках блока (block settings) введите минимальное (в нашем случае 0) и максимальное значения (в нашем случае 100). В дальнейшем вы можете изменить эти введенные значения.

Шаг 9. Ваш вид для учета электроэнергии (Power feed) успешно создан. Теперь создайте фид для отображения счёта (Bill), нажав на кнопку “+”.

Как заряжать NiMH AA аккумуляторы

Существует много способов зарядки NiMH аккумуляторов. Выбор используемого вами метода главным образом зависит от того, как быстро вы хотите зарядить аккумулятор. Скорость заряда измеряется по отношению к емкости батареи. Если ваша батарея обладает емкостью 2500 мАч, и вы заряжаете ее током 2500 мА, то вы заряжаете ее со скоростью 1C. Если вы заряжаете этот же аккумулятор током 250 мА, то вы заряжаете его со скоростью C/10.

Во время быстрой зарядки аккумулятора (со скоростью выше C/10), вам необходимо тщательно контролировать напряжение на батарее и ее температуру, чтобы не перезарядить ее. Это может серьезно повредить аккумулятор. Тем не менее, когда вы заряжаете аккумулятор медленно (со скоростью ниже C/10), у вас гораздо меньше шансов повредить батарею, если случайно перезарядите ее. Поэтому медленные методы зарядки, как правило, считаются более безопасными и помогут вам увеличить срок службы батареи. Поэтому в нашем самодельном зарядном устройстве мы будем использовать скорость заряда C/10.

Как сделать двунаправленное подключение 3,3В и 5В?

К примеру, сигналы шины I2C могут передаваться в обоих направлениях. Это затрудняет дело с согласованием сигнала для обоих стандартов и требует более сложной схемы.

Схема состоит из MOSFET транзистора (BSS138) N-типа со встроенным диодом и 2 резисторов сопротивлением по 10 кОм.

D2 — это устройство с сигналом стандарта 3,3В, а D1 — это устройство с сигналом стандарта 5В.

Рассмотрим работу схемы:

Первый вариант – D2 отправляет сигнал, D1 принимает его. Когда на выходе D2 есть лог. 1, MOSFET закрыт, и вход D1 с помощью сопротивления R1 подтянут к плюсу источника питания. Когда на выходе D2 есть лог. 0, MOSFET открыт, и вход D1 соединяется с минусом питания.

Второй вариант – D1 отправляет сигнал, D2 принимает его. Когда на выходе D1 есть лог. 1, MOSFET закрыт, и вход D2 с помощью сопротивления R2 подтянут к плюсу источника питания. Когда на выходе D1 есть лог. 0, через имеющийся в MOSFET транзисторе диод начинает протекать ток и напряжение истока уменьшается относительно затвора. MOSFET открывается, и вход D2 соединяется с минусом питания.

Тестер транзисторов / ESR-метр / генератор
Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…

Подробнее

Онлайн журнал электрика

Приборы конкретной оценки и сопоставления

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

Более обширно для измерения характеристик конденсаторов и индуктивностей используют уравновешенные мосты переменного тока, дозволяющие получить малую погрешность измерения (до 1 %). Питание моста осуществляется от генераторов, работающих на фиксированной частоте 400—1000 Гц. В качестве индикаторов используют выпрямительные либо электрические милливольтметры, также осциллографические индикаторы.

Измерение создают балансированием моста в итоге попеременной подстройки 2-ух его плеч. Отсчет показаний берется по лимбам рукояток тех плеч, которыми сбалансирован мост.

В качестве примера разглядим измерительные мосты, являющиеся основой измерителя индуктивности ЕЗ-3 (рис. 1) и измерителя емкости Е8-3 (рис. 2).

Рис. 1. Схема моста для измерения индуктивности

Рис. 2. Схема моста для измерения емкости с малыми (а) и большенными (б) потерями

При балансе моста (рис. 1) индуктивность катушки и ее добротность определяют по формулам Lx = R1R2C2; Qx = wR1C1.

При балансе мостов (рис. 2) измеряемая емкость и сопротивление утрат определяют по формулам

Измерение емкости и индуктивности способом амперметра-вольметра

Для измерения малых емкостей (менее 0,01 — 0,05 мкФ) и высокочастотных катушек индуктивности в спектре их рабочих частот обширно употребляют резонансные способы Резонансная схема обычно содержит в себе генератор высочайшей частоты, индуктивно либо через емкость связанный с измерительным LС-контуром. В качестве индикаторов резонанса используют чувствительные высокочастотные приборы, реагирующие на ток либо напряжение.

Способом амперметра-вольтметра определяют сравнимо огромные емкости и индуктивности при питании измерительной схемы от источника низкой частоты 50 — 1000 Гц. Для измерения можно пользоваться схемами рис. 3.

Набросок 3. Схемы измерения огромных (а) и малых (б) сопротивлений переменному току

По свидетельствам устройств полное сопротивление

где

из этих выражений можно найти

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

Рис. 4. Схемы измерения огромных (а) и малых (б) сопротивлений способом амперметра — вольтметра

Измерение обоюдной индуктивности 2-ух катушек

Измерение обоюдной индуктивности 2-ух катушек можно произвести по способу амперметра-вольтметра (рис. 5) и способу поочередно соединенных катушек.

Рис. 5. Измерение обоюдной индуктивности по способу амперметра-вольтметра

Значение обоюдной индуктивности при измерении по способу амперметра-вольтметра

При измерении по второму способу замеряют индуктивности 2-ух поочередно соединенных катушек при согласном LI и встречном LII включении катушек. Взаимоиндуктивность рассчитывается по формуле

Измерение индуктивности может быть произведено одним из обрисованных ранее способов.

4-канальный вольтметр с ЖК-индикатором на базе Arduino

Четырехканальный “Arduino-вольтметр” может измерять четыре независимых напряжения постоянного тока в диапазоне от 0 до 50В. Аналоговые каналы с A2 по A5 на Arduino Uno используются для измерения четырех различных напряжений. Измеренные значения напряжений отображаются на 16-символьном, двухстрочном ЖК-индикаторе.

Напряжения отображаются в виде значения с одной цифрой после запятой, напр., 5.3В, 12.8В и т.д.

На видео ниже показана работа вольтметра на базе Arduino, который измеряет напряжение четырех батарей с различным уровнем напряжения.

Принцип работы вольтметра

Электрическая схема вольтметра на базе Arduino

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

В данном учебном материале Arduino LCD показано, как подключить ЖК-дисплей к плате Arduino Uno. 

Напряжение измеряется между точками A, B, C или D и землей или 0В. Не забудьте отрегулировать уровень контрастности с помощью потенциометра, чтобы показания на ЖК-дисплее были видимыми.

Скетч вольтметра на базе Arduino

Переменные sum и voltage объединяются в массив, что позволяет сохранять значения показаний от четырех аналоговых каналов. 

Калибровка

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

Значения калибровки могут быть легко изменены в верхней части кода:

// voltage divider calibration values
#define DIV_1 11.1346
#define DIV_2 11.1969
#define DIV_3 11.0718
#define DIV_4 11.0718
// ADC reference voltage / calibration value
#define V_REF 4.991

Калибровка опорного напряжения

Измерьте напряжение 5В и измените значения константы V_REF в соответствии с измеренным значением.

Измерьте напряжение в схеме с подключенным ЖК-дисплеем и при запущенном скетче, поскольку напряжение может измениться при подключении ЖК-дисплея.

Например, при подключенной схеме, значение напряжения с величины 5.015В при отключенном ЖК-дисплее может упасть до 4.991В при подключенном ЖК-дисплее на том же «железе».

Измените значения делителя напряжения для каждого делителя напряжения от DIV_1 до DIV_4 в верхней части скетча. DIV_1 – DIV_4 соответствуют аналоговым выводам A2 – A5.

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

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

Arduino Uno

Arduino Uno – это открытая микроконтроллерная плата на базе микроконтроллера ATmega328p. Она имеет 14 цифровых выводов (из которых 6 выводов можно использовать в качестве выходов ШИМ), 6 аналоговых входов, встроенные стабилизаторы напряжения и так далее. Arduino Uno имеет 32 КБ флэш-памяти, 2 КБ SRAM и 1 КБ EEPROM. Она работает с тактовой частотой 16 МГц. Для связи с другими устройствами Arduino Uno поддерживает последовательный интерфейс, I2C, SPI. В таблице ниже приведены технические характеристики Arduino Uno (более подробное техническое описание можно посмотреть здесь).

Микроконтроллер ATmega328P
Рабочее напряжение 5 В
Входное напряжение (рекомендуемое) 7-12 В
Цифровые входные/выходные выводы 14
Аналоговые входные выводы 6
Флэш-память 32 Кбайт, из которых 0,5 Кбайт используются загрузчиком
Оперативная память SRAM 2 Кбайт
Энергонезависимая память EEPROM 1 Кбайт
Тактовая частота 16 МГц

Обзор

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

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

И когда мы говорим, рабочее напряжение — это напряжение, доступное Arduino после схемы питания. Например, если у вас есть типичная плата Arduino Uno и вы запускаете ее через разъем USB (для платы есть доступные 5 В через разъем USB на вашем компьютере), то напряжение немного уменьшается, поскольку ток идет через всю схему к микроконтроллеру или USB-источник может не давать абсолютное значение.

Это можно легко продемонстрировать, подключив Arduino Uno к USB и установив мультиметр для измерения напряжения на контактах 5В и GND. Некоторые платы возвращают напряжение до 4,8 В, некоторые показывают значения выше 4,8 В, ниже 5 В. Поэтому, если вы стремитесь к точности, питайте вашу плату от внешнего источника питания через разъем постоянного тока или Vin-контакт, например, 9 В постоянного тока. Затем, после этого, пройдя через цепь регулятора мощности, вы получите хорошее напряжение 5 В.

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

Например, если ваше напряжение равно 4,8 В — диапазон analogRead() от 0 до 1023 будет относиться к 0 ~ 4,8 В, а не к 0 ~ 5 В. Это может звучать тривиально, однако, если вы используете датчик, который возвращает значение в виде напряжения (например, датчик температуры TMP36) — рассчитанное значение будет неверным. Поэтому в интересах точности используйте внешний источник питания.

Общие сведения об OLED дисплеях

OLED означает “Organic Light emitting diode“, что переводится как органический светоизлучающий диод, или, более коротко – органический светодиод. OLED дисплеи для радиолюбителей изготавливаются по той же самой технологии, что и большинство современных телевизоров, но имеют гораздо меньше пикселов по сравнению с ними. Но устройства на их основе (в том числе и с использованием Arduino) смотрятся потрясающе.

В нашем проекте мы будем использовать монохромный 7-пиновый SSD1306 0.96” OLED дисплей. Причина, по которой мы выбрали данный дисплей, заключается в том, что он может работать с тремя разными протоколами связи, трехпроводный SPI (Serial Peripheral Interface — последовательный интерфейс) режим, четырехпроводный SPI режим и режим IIC. В данной статье мы рассмотрим его подключение по четырехпроводному SPI режиму как самому скоростному из приведенных.

Контакты дисплея и выполняемые ими функции описаны в следующей таблице.

Номер контакта Название контакта Альтернативное название контакта Назначение контакта
1 Gnd Ground земля
2 Vdd Vcc, 5V напряжение питания (в диапазоне 3-5 В)
3 SCK D0, SCL, CLK контакт синхронизации (clock pin). Применяется в интерфейсах I2C и SPI
4 SDA D1, MOSI контакт данных. Применяется в интерфейсах I2C и SPI
5 RES RST, RESET контакт сброса модуля. Применяется в интерфейсе SPI
6 DC A0 контакт команд (Data Command pin). Применяется в интерфейсе SPI
7 CS Chip Select (выбор чипа) используется когда несколько устройств взаимодействуют по интерфейсу SPI

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

ССЫЛКИ НА ИНТЕРНЕТ-РЕСУРСЫ

Электронные компоненты, используемые в проекте:

· Микроконтроллер Arduino Nano — https://store.arduino.cc/arduino-nano (англ.)

· Плата Data Logging Board фирмы Deek-Robot — http://draeger-it.blog/arduino-lektion-27-datenloggen-mit-dem-logging-shield/ (нем.) (Сайт производителя платы на дату написания статьи находится в нерабочем состоянии, поэтому приведена ссылка на сторонний ресурс). Документация микросхемы часов реального времени DS1307 фирмы Dallas Semiconductor — https://www.sparkfun.com/datasheets/Components/DS1307.pdf (англ.).

· Модуль АЦП ADS1115 — https://learn.adafruit.com/adafruit-4-channel-adc-breakouts/ (англ.).

Документация микросхемы ADS1115 — http://www.ti.com/lit/ds/symlink/ads1115.pdf (англ.).

· Модуль датчика тока на базе микросхемы ACS712 — https://www.elecrow.com/wiki/index.php?title=ACS712_Current_Sensor-_5A (англ.).

Описание принципа работы микросхемы ACS712 — http://embedded-lab.com/blog/a-brief-overview-of-allegro-acs712-current-sensor-part-1/ (англ.).

Документация микросхемы ACS712 — https://www.allegromicro.com/~/media/Files/Datasheets/ACS712-Datasheet.ashx (англ.).

· LCD дисплей — http://www.winstar.com.tw/products/character-lcd-display-module/16×2-lcd.html (англ.), модуль интерфейса I2C для дисплея — http://modtronix.com/mod-lcdi2c-bb1.html (англ.)

Библиотеки, используемые в проекте:

· Wire (встроенная библиотека Arduino IDE) — https://www.arduino.cc/en/Reference/Wire

· Adafruit_ADS1015 — https://github.com/adafruit/Adafruit_ADS1X15

· LiquidCrystal_I2C — https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library

· RTCLib — https://github.com/adafruit/RTClib

· SPI (встроенная библиотека Arduino IDE) — https://www.arduino.cc/en/Reference/SPI

· SD — https://github.com/arduino-libraries/SD

Текст публикуется в соответствии с условиями лицензии CREATIVE COMMONS Attribution-NonCommercial-ShareAlike 3.0

2018 Александр Бутовский

г. Санкт-Петербург

11 января 2018

3

Работа схемы

Схема рассматриваемого нами цифрового вольтметра на основе платы Arduino представлена на следующем рисунке.

В схеме необходимо сделать следующие соединения:

  1. Соедините высоковольтную часть трансформатора (220V) с источником напряжения, а его низковольтную часть (12v) — с делителем напряжения в схеме.
  2. Соедините резистор 10 кОм последовательно с резистором 4,7 кОм. Убедитесь в том, что на вход схемы напряжение будет поступать с именно с резистора 4,7 кОм (не перепутайте резисторы).
  3. Соедините диод как показано на схеме.
  4. Подсоедините конденсатор и стабилитрон как показано на схеме.
  5. Соедините отрицательный вывод диода с контактом A0 платы Arduino.

Примечание: обязательно соедините землю Arduino с точкой, показанной на рисунке, иначе схема не будет работать.

Зачем нужен делитель напряжения

Поскольку мы используем трансформатор 220/12 это значит что на его низковольтной стороне будет напряжение 12 В, которое не подходит для питания платы Arduino (не подходит в качестве ее входного напряжения). Поэтому мы и используем делитель напряжения чтобы получить подходящее напряжение для платы Arduino.

Зачем нужны диод и конденсатор

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

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

Назначение стабилитрона

Можно повредить плату Arduino если на ее контакт подать напряжение более 5 В. Поэтому, чтобы напряжение на контакте Arduino не превысило 5 В, в схеме и используется стабилитрон.

Измерение Vcc для опорного напряжения

Вы также можете использовать её, чтобы получить правильное значение Vcc для использования с analogRead (), когда вы используете опорное напряжение (Vcc). Пока Вы не используете стабилизированный источник питания, Вы не можете быть уверенны, что Vcc = 5.0 вольт. Эта функция позволяет получить правильное значение. Хотя есть один нюанс….

В одной из статей я сделал заявление, что эта функция может использоваться, чтобы улучшить точность аналоговых измерений в тех случаях, когда Vcc было не совсем 5.0 вольт. К сожалению, эта процедура не будет давать точный результат. Почему? Это зависит от точности внутреннего источника опорного напряжения. Спецификация дает номинальное напряжение 1.1 вольт, но говорится, что оно может отличаться до 10%. Такие измерения могут быть менее точными, чем наш источник питания Arduino!

Как работают телевизоры OLED

Между тем, OLED-экраны — это принципиально иная технология, если сравнивать их с традиционными светодиодными ЖК-телевизорами. OLED означает органический светодиод (organic light-emitting diode). В OLED-телевизоре пиксели излучают свой собственный свет, а не подсвечиваются. Это означает, что необходимость в ЖК-экране для отображения картинки отпадает. В каждом OLED-пикселе есть три так называемых «микропикселя», соответствующих красной / зеленой / синей цветовой матрице, используемой для получения цветов. Такие дисплеи получаются ультратонкими, потому что состоят из нескольких органических пленок.

https://youtube.com/watch?v=t_aa1HT0ppE

Разница в качестве изображения

На данный момент OLED-экраны имеют лучшее качество изображения и контраст

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

В обычном телевизоре светодиоды никогда не выключаются полностью, поэтому они используют темные или серые тона для имитации черного. Разницу можно заметить просматриваю ночные сцены. Например, многие поклонники Game of Thrones жаловались, что не смогли разобрать эпическое сражение в эпизоде «Длинная ночь» (все действия происходили ночью) из финального сезона, но у зрителей с OLED-экранами таких проблем не возникло.

Поскольку OLED-пиксели управляются индивидуально, они также быстро меняют цвет

Это важно для таких вещей, как игры, просмотр спортивных соревнований или боевиков. Кроме того, OLED-дисплеи предлагают более широкий диапазон углов обзора, и, поскольку ЖК-экран отсутствует, сами телевизоры тоньше

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

Как сделать выбор между QLED и OLED

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

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

Если в приоритете стоит размер экрана и яркость изображения — лучше всего подойдет телевизор с QLED. Если бюджет не ограничен и хочется более естественной картинки, OLED-телевизоры — это правильный выбор.

Вольтметр

Я реализую простой вольтметр с одним диапазоном примерно 0 — 20в

Это замечанием важно, тк АЦП нашего контроллера имеет разрядность 10 бит (1024 дискретных значения), поэтому погрешность составит не менее 0.02 в (20 / 1024). Для реализации железно нам нужен аналоговый вход контроллера, делитель из пары резисторов и какой-нибудь вывод (дисплей в законченном варианте, для отладки можно последовательный порт)

Принцип измерения АЦП состоит в сравнении напряжения на аналоговом входе с опорным VRef. Выход АЦП всегда целый — 0 соответствует 0в, 1023 соответствует напряжению VRef. Измерение реализовано путем серии последовательных чтений напряжения и усреднения по периоду между обновлениями значения на экране. Выбор опорного напряжения важен, поскольку по умолчанию оно равно напряжению питания, которое может быть не стабильно. Это нам совершенно не подходит — за основу мы будем брать стабильный внутренний опорный источник напряжением 1.1в, инициализируя его вызовом analogReference(INTERNAL). Затем мы откалибруем его значение по показаниям мультиметра.

На схеме слева — вариант с прямым управлением дисплея (он просто управляется — смотрите стандартный скетч LiquidCrystal\HelloWorld). Справа — вариант с I2C, который я и буду использовать дальше. I2C позволяет сэкономить на проводах (коих в обычном варианте — 10, не считая подсветки). Но при этом необходим дополнительный модуль и более сложная инициализация. В любом случае, отображение символов на модуле надо сначала проверить и настроить контрастность — для этого надо просто вывести после инициализации любой текст. Контрастность настраивается резистором R1, либо аналогичным резистором I2C модуля.

Вход представляет собой делитель 1:19, который позволяет при Vref = 1.1 получить максимальное напряжение около 20в (обычно параллельно входу ставят конденсатор + стабилитрон для защиты, но нам пока это не важно). Резисторы имеют разброс, да и опорное Vref контроллера тоже, поэтому после сборки надо измерить напряжение (хотя бы питания) параллельно нашим устройством и эталонным мультиметром и подобрать Vref в коде до совпадения показания

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

Также важным будет разделение питающей и измерительной «земли». Наш АЦП имеет разрешение чуть хуже 1мВ, что может создавать проблемы при неправильной разводке, особенно на макете. Поскольку разводка платы модуля уже сделана и нам остается только выбор пинов. «Земляных» пинов у модуля несколько, поэтому мы должны сделать так, чтобы питание в модуль заходило по одной «земле», а измерения по другой. Фактически для изменений я всегда использую «земляной» пин ближайший к аналоговым входам.

Для управление I2C используется вариант библиотеки LiquidCrystal_I2C — в моем случае указывается специфическая распиновка модуля I2C (китайцы производят модули с отличающимся управлением). Так же отмечу, что I2C в Arduino предполагает использование именно пинов A4, A5 — на плате Pro Mini они находятся не с краю, что неудобно для макетирования на BreadBoard.

[46] Десульфатирующая зарядка своими руками на Arduino — бортжурнал Mitsubishi Lancer 1.5 MT ★ Silver Shark ★ 2009 года на DRIVE2

Вернувшись недавно из отпуска, первым делом я, конечно же, отправился проверять свою любимицу, шутка ли, машина простояла во дворе без движения почти три недели. Аккумулятор у меня стоит до сих пор «родной» а ему между тем исполнилось уже девять лет! Захотелось мне, проверить на нем напряжение после долго простоя. Картина была прямо таки удручающая, 11.

85 вольт, для современного акб это почти полный разряд. Более того, категорически не рекомендуется допускать падение напряжения ниже 12 вольт, так как после этого кальциевый аккумулятор очень быстро приходит в негодность. В общем, я тут же отправился сделать круг по КАДу что-бы подзарядить АКБ и в процессе обдумать, как продлить жизнь моего дедушки аккумулятора.

Полный размер

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

Таблица заряда аккумулятора

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

5 ампера2) DC-CC понижающий преобразователь до 9 ампер3) Цифровой Вольтметр/Амперметр4) Ардуино УНО совместимая плата Wemos D15) Пару ардуиновских реле6) LED дисплей, лампа на 5 ватт, резисторы и куча проводов.Подключил я всё это следующим образом.

Полный размер

Схема десульфирующего зарядника своими руками на Arduino

Суть предельно проста: напряжение с блока питания пускаем через преобразователь, настраиваем на выходе 14.4 вольта и до 4 ампер тока, для наглядности пропускаем всё это через вольтметр/амперметр и подключаем к аккумулятору через реле. Через второе реле вешаем на аккум лампочку. Плата Wemos управляет включением и выключением реле, так же к ней подключен LCD дисплей, кнопка включения, а к аналоговому пину A0 через делитель напряжения подведены провода напрямую с клемм акб для постоянного мониторинга напряжения во время зарядки.В скетче изначально я задал два режима:

1) Десульфикация – 3 секунды заряда током до 4 ампер, 3 секунды разряда током 0.4 ампера. Этот цикл заряда длится до повышения напряжения на клеммах до 14.4 вольт, далее автоматически переходит во второй режим.

2) В этом режиме зарядка происходит трёх секундными импульсами с паузами.

Перед зарядкой я так же промерил плотность электролита. В пяти банках она оказалась в пределах 1.20, а в первой к моему великому огорчению всего 1.175. А напряжение составило 12.3 вольта, что соответствует примерно 60% заряда.

Плотность в первой банке

Полный размер

Десульфирующая зарядка своими руками на Arduino

Первый цикл прошел достаточно быстро, всего около 8 часов, в начале заряда ток был около 4 ампер, а к концу цикла составлял всего чуть больше одного ампера. Во втором режиме зарядка проработала еще около двух часов, пока ток не упал до 0.4 ампера. Итого по грубым подсчетам за 10 часов в АКБ было влито всего около 10 ампер тока, явно маловато для 100% заряда, должно было влезть еще минимум 10!Зарядка в действииК этому я был готов заранее. Дело в том, что специфика современных кальциевых АКБ не позволяет зарядить их полностью привычным напряжением 14.4 вольта, им требуется от 15.8 до 16.1 вольта для 100% зарядки. Поэтому я тут же отрегулировал преобразователь на 15.8 вольт с максимальным током в 3 ампера. И поправил скетч в режим 2 секунды заряда, 4 секунды паузы.

Полный размер

Десульфирующая зарядка своими руками на Arduino

По итогу после ночного отстаивания АКБ показал напряжение 12.7 вольт. А вот с плотностью дела обстоят хуже, в пяти банках она поднялась до 1.25, а в первой составила всего 1.20.

Наверное, придётся в ближайшем будущем погонять акум в режиме заряд/разряд.

Всем добра!

Принцип работы вольтметра переменного тока на основе Arduino

Принцип работы нашего проекта составляют следующие действия:

  1. Входное высоковольтное напряжение понижается до напряжения примерно 12 В, приемлемого для работы низковольтных схем.
  2. С выхода делителя напряжения на резисторах мы получаем напряжение, пригодное (по номиналу) для подачи на контакт платы Arduino. Максимальное измеряемое схемой напряжение мы получим с помощью ее симуляции (см. ниже).
  3. Поступающее напряжение (аналоговое) поступает на аналоговый контакт A0 платы Arduino. С помощью аналогово-цифрового преобразования (АЦП), доступного на контакте A0, это входное напряжение преобразуется в число от 0 до 1023. 0 В будет соответствовать 0, а 5 В – 1023.
  4. Плата Arduino конвертирует это значение с выхода АЦП в соответствующее значение напряжения на входе схемы (формула приведена ниже в статье).