Am reluat testele deoarece am primit un mesaj ca apar erori pe ecran...
In mare modul de conectare al lui Arduino la la un alimentator este prezentat in figura urmatoare:
Modulul are schema:
Conectarea am lasat-o ca in articolul original, cand am inceput testele cu Arduino, vedeti Arduino si un afisaj LCD clasic (16 caractere si 2 randuri)
Sketch-ul este cel prezentat in ultimul articol
/*
LiquidCrystal Library
The circuit
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe
This example code is in the public domain.
http://www.tehnic.go.ro
http://www.niqro.3x.ro
http://nicuflorica.blogspot.ro
amper & voltmeter by niq_ro, 02.2013, Craiova, Romania
vers. 1.3 - see http://nicuflorica.blogspot.ro/2013/02/arduino-ca-multimetru-2.html
*/
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int Pintensiune = A3; // divizorul rezistiv pentru tensiune e legat la intrarea A3
int Pincurent = A5; // rezistenta inseriata este conectata la A5
void setup() {
analogReference(INTERNAL); // punem referinta interna de 1,1V;
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("www.tehnic.go.ro");
lcd.setCursor(0, 1);
lcd.print("creat de niq_ro");
delay(2500);
lcd.clear();
lcd.print("indicator panou");
lcd.setCursor(0, 1);
lcd.print("tensiune-curent");
delay (2500);
lcd.clear();
lcd.print(" sketch ver.2.1");
lcd.setCursor(0, 1);
lcd.print("Umax=30V&Imax=5A");
delay (2500);
lcd.clear();
}
void loop() {
float sumatens =0;
float sumacurent = 0;
for (int i=1; i <= 20; i++){
// citire valoare pe intrarea analogica
float tensiune = analogRead(Pintensiune);
tensiune = 27.27 * 1.1 * tensiune / 1023.0 ;
sumatens = sumatens + tensiune;
float curent = analogRead(Pincurent);
curent = 1.1 / 0.22 * curent / 1023.0 ;
sumacurent = sumacurent + curent;
delay (20);
}
float tensiune = sumatens / 20.0 ;
float curent = sumacurent /20.0 ;
float putere = tensiune * curent ;
float rezistenta = tensiune / curent;
// partea de afisare
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(tensiune);
lcd.print(" V");
lcd.setCursor(9, 0);
lcd.print(curent);
lcd.print(" A");
if (curent > 0.01)
{
// calculeaza, apoi afiseaza puterea si curentul
lcd.setCursor(0, 1);
lcd.print(putere);
lcd.print(" W");
lcd.setCursor(8, 1);
lcd.print(rezistenta);
lcd.print(" ");
lcd.write(0b11110100);;
}
else
{
// daca curentul e mai mic de 10mA considera ca sursa e in gol
if (tensiune < 0.1)
{
// scurtcircuit
lcd.setCursor(1, 1);
lcd.print("sursa oprita ");
}
else
if (tensiune < 0.8)
{
// scurtcircuit
lcd.setCursor(1, 1);
lcd.print(" scurtcircuit ");
}
else
//
lcd.setCursor(1, 1);
lcd.print("sursa e in gol ");
}
// se odihneste si el 1,5 secunde
delay(1500);
}
Practic, montajul arata asa:Am facut si 3 filmulete:
- Arduino ca multimetru de panou pentru un alimentator (5)
In ultimul filmulet apare si un modul voltmetru de panou pe care l-am achizitionat de pe ebay, pentru a vedea cum se comporta si pare ok...
Descriere:
1. domeniul de masura: 0-100V (fir alb sau galben)
2. afisaj LED cu 7 segmente, cifre de 14mm
3. consum propriu redus
4. masuratori la fiecare: 500ms (0,5s)
5. montare usoara pe panou
6. culoare LED-uri: rosie
7.tensiune alimentare: 3..30V (fir rosu la +, fir negru la masa)
8. temperatura de functionare: -10℃..+65 ℃.
18.03.2014 27.04.2021
Amdesenat toata corectat schema:
1. domeniul de masura: 0-100V (fir alb sau galben)
2. afisaj LED cu 7 segmente, cifre de 14mm
3. consum propriu redus
4. masuratori la fiecare: 500ms (0,5s)
5. montare usoara pe panou
6. culoare LED-uri: rosie
7.tensiune alimentare: 3..30V (fir rosu la +, fir negru la masa)
8. temperatura de functionare: -10℃..+65 ℃.
Am
PS: Daca curentul indicat este mereu zero, verificati cu un aparat de masura pe voltmetru, ca avand borna neagra la GND si cea rosie la A5 tensiunea este pozitiva., daca nu este, inversati bornele de la ramura negativa, astfel incat pe sunt sa fie o tensiune pozitiva fata de GND-ul placii Arduino.

