Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Вольтметр своими руками с использованием Arduino и смартфона

Компоненты и расходные материалы

Arduino UNO
× 1
PHPoC WiFi Shield для Arduino
× 1
Резистор 100 кОм
× 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; i  
Voltmeter.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; i  
voltmeter.php PHP
Этот файл представляет собой веб-интерфейс пользователя. Его необходимо загрузить в PHPoC Shield вместе с фоновым изображением voltmeter_body.jpg
     PHPoC Shield - VOLTMETER    <стиль> html {высота:100%;} тело {ширина:100%; высота:100%;; выравнивание текста:центр;}. контейнер {ширина:100%; минимальная высота:99%; максимальная высота:100%;} холст {фон:URL (voltmeter_body.jpg); размер фона:содержать; семейство шрифтов:'Segment7Standard'; font-weight:жирный; font-style:italic;}     

Схема

Его необходимо загрузить в PHPoC Shield.

Производственный процесс

  1. Консоль редактирования DIY Photoshop с использованием Arduino Nano RP 2040
  2. Система посещаемости с использованием Arduino и RFID с Python
  3. Универсальный пульт дистанционного управления с использованием Arduino, 1Sheeld и Android
  4. Инфракрасный датчик сердцебиения своими руками с использованием Arduino
  5. Измерение частоты и рабочего цикла с использованием Arduino
  6. DIY вольтметр с Arduino и дисплеем Nokia 5110
  7. Сонар с использованием Arduino и отображение при обработке IDE
  8. MobBob:самостоятельный робот Arduino, управляемый смартфоном Android
  9. Управление яркостью светодиода с помощью Bolt и Arduino
  10. Простая и умная роботизированная рука с использованием Arduino