Подключение датчика напряжение к Arduino


В этом примере покажу как подключить простой датчика напряжения постоянного тока 0-25 В к Arduino для измерения постоянного напряжения. Датчика напряжения, основан на схеме делителя напряжения на резисторах. Он уменьшает сигнал входного напряжения в 5 раз и генерирует соответствующее аналоговое выходное напряжение. Именно по этой причине вы можете измерить напряжение до 25 В, используя аналоговый вывод 5 В любого микроконтроллера.
Технические параметры
► Входное напряжение: 0 – 25 В;
► Диапазон допустимых напряжений: 0,02445 – 25 В;
► Шаг измерения напряжения: 0,005 В;
► Габариты: 27 × 14 × 14 мм;
► Вес: 4 грам.
Общие сведенья о датчике напряжения
Датчик напряжения представляет собой делитель напряжения, состоящий из двух резисторов с сопротивлениями 30 кОм и 7.5 кОм. Для подключения к микроконтроллеру и измеряемого устройству, на модуле установлено 5 контактов, 2 на передней стороне и 3 на задней стороне. Принципиальная схема модуля показана на рисунке ниже.

Назначение контактов:
► VCC и GND — выводы измеряемого источника напряжения (0-25 В);
► S — аналоговый вывод, подключенный к аналоговому выводу микроконтроллера;
► + — не подключен;
► — — контакт заземления, подключенный к GND микроконтроллер
Подключение датчика напряжения к Arduino UNO
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Датчик напряжения, вольтметр, до 25В x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Описание:
В первом примере сначала подключим датчик напряжения к Arduino UNO и замерим напряжение с литий ионного аккумулятора.
Подключение:
Подключение очень простое, подключаем вывод S с модуля к аналоговому выводу А0 на Arduino, затем соединяем выводы GND. Осталось подключить только выводы аккумулятора.

Программа:
Далее, загружаем данный скетч в контроллер Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#define analog_pin A0 // Вывод которому подключен датчик float adc_voltage = 0.0; // Создаем переменную adc_voltage float in_voltage = 0.0; // Создаем переменную in_voltage float R1 = 30000.0; // Задаем номинал резистора R1 float R2 = 7500.0; // Задаем номинал резистора R2 float ref_voltage = 5.0; // Задаем опорное напряжение int adc_value = 0; // Создаем переменную для хранения показаний void setup() { Serial.begin(9600); // Открываем последовательную связь на скорости 9600 Serial.println("DC Voltage Test"); // Отправляем текст } void loop() { adc_value = analogRead(analog_pin); // Считываем показания с аналогово вывода adc_voltage = (adc_value * ref_voltage) / 1024.0; // Определение на входе АЦП in_voltage = adc_voltage / (R2/(R1+R2)) ; // Расчет напряжения Serial.print("Input Voltage = "); // Отправка текста Serial.println(in_voltage, 2); // Отправка показаний, в сотых delay(500); // Пауза 0,5 секунды. } |
Открываем «Мониторинг порта«, где можем увидеть показания с датчика.

Отображение показаний с датчика напряжения на OLED дисплеи
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Датчик напряжения, вольтметр, до 25В x 1 шт.
► OLED-дисплей 0.96 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Описание:
Теперь давайте сделаем портативный вольтметр постоянного тока, который может измерять напряжение от 0 В до 25 В.
Подключение:
Схема почти такая же, как в первом примере, только добавлен OLED дисплей, подключаем его выводам Arduino UNO согласно рисунку ниже.

Установка библиотек:
Для следующего примера, необходимо установить две библиотеки «Adafruit GFX» и «Adafruit SSD1306«, которая позволит нам упростить работу с датчиком. Для этого, переходим в Скетч —> Подключить библиотеку —> Управление библиотеками.

В строке поиска введите «Adafruit GFX», находим и устанавливаем библиотеку.

Далее, в строке введите «Adafruit SSD1306», находим и устанавливаем библиотеку.

Программа:
Далее, загружаем данный скетч в контроллер Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#include <Adafruit_GFX.h> // Подключаем библиотеку Adafruit_GFX #include <Adafruit_SSD1306.h> // Подключаем библиотеку Adafruit_GFX #define SCREEN_WIDTH 128 // Указываем ширину OLED-дисплея, в пикселях #define SCREEN_HEIGHT 64 // Указываем высоту OLED-дисплея, в пикселях #define OLED_RESET 4 #define SCREEN_ADDRESS 0x3C // Указываем адрес OLED дисплея Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); #define analog_pin A0 // Вывод которому подключен датчик float adc_voltage = 0.0; float in_voltage = 0.0; float R1 = 30000.0; // Задаем номинал резистора R1 float R2 = 7500.0; // Задаем номинал резистора R2 float ref_voltage = 5.0; // Задаем опорное напряжение int adc_value = 0; // Создаем переменную для хранения показаний void setup() { Serial.begin(9600); // Открываем последовательную связь на скорости 9600 Serial.println("DC Voltage Test"); // Отправляем текст display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS); } void loop() { adc_value = analogRead(analog_pin); // Считываем показания с аналового вывода adc_voltage = (adc_value * ref_voltage) / 1024.0; // Определение на входе АЦП in_voltage = adc_voltage / (R2/(R1+R2)) ; // Расчет напряжения Serial.print("Input Voltage = "); // Отправка текста Serial.println(in_voltage, 2); // Отправка показаний, в сотых display.setCursor(20, 10); display.setTextSize(1); display.setTextColor(WHITE); display.println("Battery Voltage"); display.setCursor(25, 30); //oled display display.setTextSize(2); display.setTextColor(WHITE); display.print(in_voltage, 2); display.println(" V"); display.display(); delay(500); display.clearDisplay(); } |
Вот как можно использовать датчик напряжения 0-25 В с Arduino и создать собственный вольтметр.

Ссылки Библиотека Adafruit GFX
Библиотека Adafruit SSD1306
Купить на Aliexpress Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
OLED-дисплей 0.96,128х64, белый, DC 3.3-5B, SPI, IIC
Купить в Самаре и области Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
OLED-дисплей 0.96,128х64, 3.3-5B, SPI, IIC
Датчик напряжения, вольтметр, до 25В
Точность измерения для 25в те же 0.024в, а не 0.005
Для 5 в — это да.