Вольтметр своими руками с использованием Arduino и смартфона
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Об этом проекте
Демонстрация
Если вы новичок в Arduino, вы можете начать работу с Arduino Tutorials для новичков.
Как это работает
Мы можем использовать аналоговый входной вывод Arduino для измерения напряжения. Однако максимальное измеряемое напряжение составляет 5 В.
Чтобы увеличить измеряемое напряжение, нам нужно использовать делитель напряжения
InTheory
У нас есть:
V_measure =(R1 + R2) / R2 * V_in
соотношение = (R1 + R2) / R2
=> V_measure =ratio * V_in
Если мы выберем R1 =10 * R2, мы получим:
V_measure =11 * V_in
Поскольку максимальное допустимое напряжение V_in равно 5 В => Максимальное измеряемое напряжение составляет 55 В
Чтобы ограничить ток, проходящий через вывод Arduino, что может вызвать повреждение Arduino, нам нужно выбрать номинал резистора как можно больше.
Я выбираю R1 =1 МОм, R2 =100 кОм
На практике
Там есть проблемы на практике
- Значение R1 и R2 содержит ошибки. Ошибки вызывают ошибку V_measure
- Источник питания Arduino может быть нестабильным. Это делает V_REF аналогового входа нестабильным. Следовательно, это вызывает ошибку при вычислении V_in. => вызывает ошибку при вычислении V_measure
Эти проблемы решаются в разделе "Калибровка"
Калибровка
1. Измерьте реальную стоимость (R1 + R2) / R2
Это нужно сделать только один раз, чтобы получить соотношение
Схема подключения, как показано ниже:
ratio =(R1 + R2) / R2 =V_measure / V_in =A1_read_value / A0_read_value
ratio =A1_read_value / A0_read_value
Код для этой калибровки => см. ResisterCalibration.ino в части кода
2. Нестабильность электроснабжения
Нестабильность источника питания вызывает нестабильность опорного напряжения аналогового вывода. Это приводит к неправильной оценке напряжения.
Чтобы решить эту проблему, нам нужно часто измерять опорное напряжение.
Как измерить опорное напряжение?
Подключите 3,3 В к контакту A1
Опорное напряжение измеряется косвенно на основе значения в A1:
V_reference =1023 * 3,3 / A1_value
Как рассчитать V_measure:
V_in =mapFloat (A0_value, 0, 1023, 0, V_reference); V_measure =ratio * V_in;
Основная проводка:
Как сделать
- Электропроводка как схема "проводки калибровки резистора"
- Загрузить ResistorCalibration.ino
- Открыть серийный плоттер
- Скопируйте значение коэффициента.
- Замените это значение в строке 5 Voltmeter.ino
- Замена проводки на «главную проводку»
- Загрузить Voltmeter.ino
- Загрузить пользовательский веб-интерфейс ( voltmeter.php и voltmeter_body.jpg ) в PHPoC Shield
- Зайдите на веб-страницу http://phpoc_shield_ip_address/voltmeter.php, чтобы увидеть напряжение.
Вы можете просмотреть напряжение на смартфоне следующим образом:
Советы по подключению:
Лучший стартовый комплект Arduino для начинающих
См. «Лучший комплект Arduino для начинающих»
Код
- ResistorCalibration.ino
- Voltmeter.ino
- voltmeter.php
ResistorCalibration.ino Arduino
- Электропроводка, как описано в части калибровки.- Выполните этот код один раз
- Открытый серийный плоттер
- Скопируйте значение коэффициента
- Замените это значение в строке 5 Voltmeter.ino
double ratio; int analogReadAverage (int pin, int read_time) {unsigned long read_value =0; // считываем аналог в значении read_time times:for (int i =0; iVoltmeter.ino Arduino
Это основной код. Перед загрузкой этого кода нам необходимо:
- загрузить ResistorCalibration.ino
- открыть Serial Monitor
- скопировать значение коэффициента и заменить значение в строке 5 этого кодаdouble V_measure; double V_in; double V_reference; double ratio =11,59; double mapFloat (double x, double in_min, double in_max, double out_min, double out_max) {return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;} int analogReadAverage (int pin, int read_time) {беззнаковое длинное read_value =0; for (int i =0; ivoltmeter.php PHP
Этот файл представляет собой веб-интерфейс пользователя. Его необходимо загрузить в PHPoC Shield вместе с фоновым изображением voltmeter_body.jpgPHPoC Shield - VOLTMETER <стиль> html {высота:100%;} тело {ширина:100%; высота:100%;; выравнивание текста:центр;}. контейнер {ширина:100%; минимальная высота:99%; максимальная высота:100%;} холст {фон:URL (voltmeter_body.jpg); размер фона:содержать; семейство шрифтов:'Segment7Standard'; font-weight:жирный; font-style:italic;}
Схема
Его необходимо загрузить в PHPoC Shield.Производственный процесс
- Консоль редактирования DIY Photoshop с использованием Arduino Nano RP 2040
- Система посещаемости с использованием Arduino и RFID с Python
- Универсальный пульт дистанционного управления с использованием Arduino, 1Sheeld и Android
- Инфракрасный датчик сердцебиения своими руками с использованием Arduino
- Измерение частоты и рабочего цикла с использованием Arduino
- DIY вольтметр с Arduino и дисплеем Nokia 5110
- Сонар с использованием Arduino и отображение при обработке IDE
- MobBob:самостоятельный робот Arduino, управляемый смартфоном Android
- Управление яркостью светодиода с помощью Bolt и Arduino
- Простая и умная роботизированная рука с использованием Arduino