Цифровой амперметр на основе Arduino Uno


Амперметр используется для измерения протекающего тока через нагрузку или устройство. В этой статье мы рассмотрим создание простого цифрового амперметра на основе платы Arduino Uno, а вместе с этим повторим и основные положения закона Ома, которые нам потребуются для измерения силы тока.

Внешний вид цифрового амперметра на основе платы Arduino Uno

Основные положения закона Ома

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

V = IR

V - напряжение на проводнике в вольтах (В),
I - ток, проходящий через проводник в амперах (А),
R – сопротивление проводника в омах (Ω).

Для того чтобы найти ток, протекающий через устройство, необходимо преобразовать приведенную формулу закона Ома к виду:

I = V / R

То есть для нахождения значения тока нам нужно знать всего 2 величины: напряжение и сопротивление.

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

Рисунок, поясняющий принцип измерения тока

Согласно приведенной схемы мы будем находить 2 значения напряжения. Разница между напряжениями (V1-V2) на двух концах резистора даст нам падение напряжения на резисторе (R), и когда мы разделим падение напряжения на сопротивление резистора, мы получим силу тока (I) через устройство.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Резистор 22 Ом (купить на AliExpress).
  4. Светодиод (купить на AliExpress).
  5. Потенциометр 10 кОм (купить на AliExpress).
  6. Мультиметр.
  7. Макетная плата.
  8. Соединительные провода.

Внешний вид необходимых компонентов для сборки нашего амперметра

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

Схема устройства представлена на следующем рисунке.

Схема цифрового амперметра на основе платы Arduino UnoОт платы Arduino Uno осуществляется питание всех остальных компонентов схемы. Выход датчика измерения силы тока подключен к одному из аналоговых контактов платы Arduino. ЖК дисплей подключен к цифровым контактам Arduino (7,8,9,10,11,12).

ЖК дисплей содержит 16 контактов, первые два контакта (VSS,VDD) и последние два контакта (анод и катод) подключены к земле и 5v. Контакты сброса (RS) и доступности (E) подключены к цифровым контактам Arduino 7 и 8. Контакты данных D4-D7 подключены к цифровым контактам Arduino (9,10,11,12). Контакт V0 подключен к средней точке потенциометра. Красный и черный провода – соответственно 5v и gnd (земля).

Внешний вид собранного амперметра

Измерение тока

Схема нашего амперметра содержит резистор и светодиод в качестве нагрузки. Резистор соединен последовательно со светодиодом, поэтому ток через него можно определить измеряя падение напряжения на резисторе. Точки V1, V2, в которых измеряется напряжение, подсоединены к аналоговым входам платы Arduino.

На этих аналоговых входах стоят АЦП (аналогово-цифровые преобразователи) с разрешением 10 бит, которые конвертируют входное напряжение в число от 0 до 1023. Параметры этого конвертирования мы можем изменить в программе. Также нам необходимо знать, какое минимальное напряжение способны обрабатывать АЦП на аналоговых входах платы Arduino – оно составляет 4.88mV. Таким образом, мы можем просто умножить значение с выхода АЦП на 4.88mV и получить, соответственно, значение напряжения на входе АЦП (на входе аналогового контакта платы). Более подробно про АЦП в Arduino можно прочитать в этой статье.

Тестирование работы нашего амперметра с помощью мультметра

Расчеты

Итак, значение на выходах АЦП платы Arduino лежит в диапазоне 0-1023, а опорное напряжение – в диапазоне 0-5v.

Рассмотрим пример. Допустим, V1= 710, V2= 474 и R=22Ω, разница между напряжениями (точнее их конвертированными значениями на выходах АЦП) составляет 236. Умножив 236 на 0.00488 мы получим значение напряжения 1.15v – это и есть нужное нам значение падения напряжения. Разделив это значение напряжения на 22 (сопротивление) мы получим текущее значение тока 0.005A. Таким образом, с помощью платы Arduino мы можем достаточно просто измерять силу тока, проходящего через нагрузку.

Исходный код программы

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

Сначала в программе нам необходимо подключить все используемые библиотеки (в нашем случае мы будем использовать только одну библиотеку – для работы с ЖК дисплеем). Затем мы будем считывать значения напряжения в двух точках с помощью функции analogread.

Затем мы объявим временную переменную (value), в которой будем хранить разницу значений voltage_value0 и voltage_value1. Затем значение этой переменной мы будем умножать на 0.00488 чтобы получить действительную величину падения напряжения на резисторе, а затем получившуюся величину мы будем делить на 22 (сопротивление) чтобы получить значение силы тока.

Далее представлен полный текст программы.

Видео, демонстрирующее работу амперметра

(Проголосуй первым!)
Загрузка...
9 300 просмотров

Комментарии

Цифровой амперметр на основе Arduino Uno — 6 комментариев

  1. А какое напряжение может пропускать через себя этот амперметр? Только до 5 вольт?

    • Да почти любое если вместо одного резистора используете делитель напряжения из двух резисторов, а напряжение на вход Ардуино подаете со среднего отвода этого делителя. Разумеется, в код программы нужно будет внести небольшие поправки чтобы ток правильно измерялся. Здесь с одним резистором ограничение только из-за того что на контакты платы Ардуино нельзя больше 5 В подавать.

  2. Подойдет для измерения постоянного тока после диодного моста, включенного в сеть 220В без трансформатора на порядок 10-20А ?

    • Подойдет практически для любого тока лишь бы резистор такой ток выдержал, а падение напряжения на резисторе при максимальном токе не превышало бы 5 В, иначе плата Ардуино может сгореть. Ну и номинал резистора вместе с коэффициентами для расчета тока в программе нужно будет рассчитать под ваши значения тока, но это несложно.

      • Здравствуйте, а для чего нужен потенциометр и какая библиотека используется для работы с дисплеем?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *