Бывают моменты, когда вы хотите проверить напряжение или какую-то точку в цепи, но у вас нет вольтметра или мультиметра под рукой? Бежать покупать? Это долго и дорого. Прежде чем вы это сделаете, как насчет того, чтобы создать вольтметр самому? На самом деле с помощью простых компонентов вы можете сделать его сами.
Перед подключением, давайте сначала разберем как это работает.
Используйте плату SunFounder Uno для основной части обработки данных вольтметра, LCD1602 в качестве экрана, потенциометр для регулировки контрастности ЖК-дисплея, а другой - для разделения напряжения.
Когда вы вращаете потенциометр, подключенный к плате Uno, резистор потенциометра изменяется, тем самым изменяя напряжение на нем. Сигнал напряжения будет отправлен на плату Uno через контакт A0, а Uno преобразует полученный аналоговый сигнал в цифровую форму и записывает на ЖК-дисплей. Таким образом, вы можете увидеть значение напряжения при текущем сопротивлении емкости.
LCD1602 имеет два режима работы: 4-битный и 8-битный. Когда IO MCU недостаточны, вы можете выбрать 4-битный режим, при котором используются только контакты D4 ~ D7.
Следуйте таблице, чтобы подключить их.
Подключите средний контакт потенциометра к контакту Vo на LCD1602, а любой из остальных контактов - к GND.
Подсоедините средний контакт потенциометра к контакту A0 от SunFounder Uno, а один из остальных - к 5V, когда другой - к GND.
Такой код:
#include /****************************************************/ const int analogIn = A0;//potentiometer attach to A0 LiquidCrystal lcd(4, 6, 10, 11, 12, 13);//lcd(RS,E,D4,D5,D6.D7) float val = 0;// define the variable as value=0 /****************************************************/ void setup() { Serial.begin(9600);//Initialize the serial lcd.begin(16, 2);// set the position of the characters on the LCD as Line 2, Column 16 lcd.print("Voltage Value:");//print "Voltage Value:" } /****************************************************/ void loop() { val = analogRead(A0);//Read the value of the potentiometer to val val = val/1024*5.0;// Convert the data to the corresponding voltage value in a math way Serial.print(val);//Print the number of val on the serial monitor Serial.print("V"); // print the unit as V, short for voltage on the serial monitor lcd.setCursor(6,1);//Place the cursor at Line 1, Column 6. From here the characters are to be displayed lcd.print(val);//Print the number of val on the LCD lcd.print("V");//Then print the unit as V, short for voltage on the LCD delay(200); //Wait for 200ms }
Вращайте потенциометр, чтобы проверить напряжение на LCD1602 в режиме реального времени.
Вот хитрая штука. После того, как я запустил код, на ЖК-дисплее отобразились символы. Затем я отрегулировал контрастность экрана (постепенное изменение от черного до белого), вращая потенциометр по часовой стрелке или против часовой стрелки, пока экран не отобразил символы четко.
Возьмите две батареи, чтобы измерить их напряжение: 1,5 В и 3,7 В. Отцепите соединение второго потенциометра с контактом A0 и GND, что означает удаление потенциометра из цепи. Зажмите конец провода A0 до анода батареи и цепь GND на катод. НЕ подключайте их обратно, иначе получите короткое замыкание на батарее. Значение 0V - это обратное соединение.
Итак, напряжение аккумулятора отображается на ЖК-дисплее. Может быть некоторая погрешность между значением и номинальным, поскольку батарея не полностью заряжена. И именно поэтому мне нужно измерить напряжение, чтобы понять могу я использовать аккумулятор или нет.
PS: Если у вас проблемы с отображением на дисплее - смотрите этот FAQ для ЖК-дисплеев - http://wiki.sunfounder.cc/index.php?title=LCD1602/I2C_LCD1602_FAQ.
Привет, Хабр! Сегодня хочу продолжить тему «скрещивания» arduino и android. В предыдущей публикации я рассказал про bluetooth машинку , а сегодня речь пойдет про DIY bluetooth вольтметр. Еще такой девайс можно назвать смарт вольтметр, «умный» вольтметр или просто умный вольтметр, без кавычек. Последнее название является неправильным с точки зрения грамматики русского языка, тем не менее частенько встречается в СМИ. Голосование на эту тему будет в конце статьи, а начать предлагаю с демонстрации работы устройства, чтобы понять о чем же пойдет речь в статье.
Скетч
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);
}
Представлена полезная схема для любителей поэкспериментировать с Ардуино. Это простой цифровой вольтметр, которым надежно можно измерять постоянное напряжение в диапазоне 0 – 30В. Плату Ардуино, как обычно, можно питать от 9В батареи.
Как вам вероятно известно, аналоговые входы Ардуино можно использовать для измерения постоянного напряжения в диапазоне 0 – 5В и этот диапазон можно увеличить,
используя два резистора в качестве делителя напряжения. Делитель уменьшит измеряемое напряжение до уровня аналоговых входов Ардуино. А затем программа вычислит реальную величину напряжения.
Аналоговый датчик на плате Ардуино определяет наличие напряжения на аналоговом входе и преобразует его в цифровую форму для дальнейшей обработки микроконтроллером. На рисунке напряжение подается на аналоговый вход (А0) через простой делитель напряжения, состоящий из резисторов R1 (100кОм) и R2 (10кОм).
При этих значениях делителя на плату Ардуино можно подавать напряжение от 0 до
55В. На входе А0 имеем измеряемое напряжение деленное на 11,т.е.55В / 11=5В. Иначе говоря, при измерении 55В на входе Ардуино имеем максимально допустимое значение 5В. На практике лучше на этом вольтметре написать диапазон “0 – 30В”, чтобы оставался
Запас по безопасности!
Примечания
Если показания дисплея не совпадают с показаниями промышленного (лабораторного) вольтметра, то необходимо точным прибором измерить величину сопротивлений R1 и R2 и вставить эти значения вместо R1=100000.0 и R2=10000.0 в коде программы. Затем следует измерить лабораторным вольтметром реальное напряжение между выводами 5В и “Земля” платы Ардуино. Получится значение меньшее, чем 5В, например, получилось 4.95В. Это реальное значение следует вставить в строке кода
vout = (value * 5.0) / 1024.0 вместо 5.0.
Кроме того, старайтесь применять прецизионные резисторы с допуском 1%.
Резисторы R1 и R2 обеспечивают некоторую защиту от повышенных входных напряжений.Однако следует помнить, что любые напряжения выше 55В могут вывести из строя плату Ардуино. Кроме того, в этой конструкции не предусмотрены другие виды защиты(от скачков напряжения, от переполюсовки или повышенного напряжения).
Программа цифрового вольтметра
/*
DC Voltmeter
An Arduino DVM based on voltage divider concept
T.K.Hareendran
*/
#include
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // resistance of R1 (100K) -see text!
float R2 = 10000.0; // resistance of R2 (10K) – see text!
int value = 0;
void setup(){
pinMode(analogInput, INPUT);
lcd.begin(16, 2);
lcd.print(“DC VOLTMETER”);
}
void loop(){
// read the value at analog input
value = analogRead(analogInput);
vout = (value * 5.0) / 1024.0; // see text
vin = vout / (R2/(R1+R2));
if (vin<0.09) {
vin=0.0;//statement to quash undesired reading !
}
lcd.setCursor(0, 1);
lcd.print(“INPUT V= “);
lcd.print(vin);
delay(500);
}
Принципиальная схема Ардуино-вольтметра
Перечень компонентов
Плата Arduino Uno
100 кОм резистор
10 кОм резистор
100 Ом резистор
10кОм Подстроечный резистор
LCD дисплей 16?2 (Hitachi HD44780)
nanbaby.ru - Здоровье и красота. Мода. Дети и родители. Досуг. Быт. Дом