Primele experimente le-am facut cu partea de ampermetru, folosind o rezistenta de 0,22 ohmi si 2-3W, pe care am gasit-o prin cutiile mele cu piese... valoare e mai mare decat cea indicata anterior, dar tinand cont ca fac doar experimente urmarind si revazand articolul de la http://electronics-diy.com/70v_pic_voltmeter_amperemeter.php unde folosita o rezistente de 0,47 ohmi, cea folosita de mine, pana la 2,5-3A e acceptabila (maxim 0.66V pe ea la 3A).
Am folosit sursa de tensiune cu LM317 si 2 tranzistori, pe care am prezentat-o in articolul de la http://www.arduinotehniq.com/old/LM317/LM317.htm si 2 aparate de masura, unul pentru a masura curentul consumat de un ventilator (cooler) de sursa de calculator, altul pentru a masura caderea de tensiune pe rezistenta inseriata in circuit.
Am centralizat datele, facand si niste calcule:
Daca pot considera considera ca aparatele de masura au eroare mica (etalon), rezulta ca rezistenta de 0,22 ohmi este mai mare cu 2,2% decat valoarea standard, ceea ce acceptabil avand in vedere ca tipul acesta de rezistenta poate avea toleranta din fabricatie de +10%.
Multimetrul folosit ca voltmetru pe domeniul de 200mV este EDISON model DM383 (despre care nu am gasit prea multe informatii legate de eroare de masurare, dar pot miza pe sub 1% fiind vorba de tensiune continua), dupa cum apare la http://www.cromwell.co.uk/EDI5162900K
iar cel folosit ca ampermetru pe domeniul de 200mA este un "John Doe" model DT2905A (eroare de masura pe acest demeniu de 1,5%), dupa cum este prezentat la http://oldradio.tesla.hu/szetszedtem/016multimeter-dt9205a/multimeter.htm.
Am realizat pe o bucatica de cablaj de test montajul adaptor si am reglat din semireglabil sa am raportul de tensiune corect (30:1,1=27,27:1) si am conectat firele la intrarile analogice (tensiunea se masoara la AN3, respectiv "curentul" la AN5) si la masa (GND), folosindu-ma de "interfetele macanice" de le-am utilizat si la termometru si pentru afisajul LCD.
Schema folosita este:
Am conectat placuta si la alimentator si la cooler, masurand tensiunea si cu un aparat digital, apoi am pus si pe celalalt in circuit, mutand pe al "mic" pe tensiune, iar celalalt pe curent:
Am realizat un mic filmulet:
iar sketch-ul folosit a fost:
/*
LiquidCrystal Library
The circuit for LCD
* 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.
*/
// 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("Umax = 30V");
lcd.setCursor(0, 1);
lcd.print("Imax = 5A");
delay (1500);
lcd.clear();
}
void loop() {
// citire valoare pe intrarea analogica
float tensiune = analogRead(Pintensiune);
tensiune = 27.27 * 1.1 * tensiune / 1023.0 ;
float curent = analogRead(Pincurent);
curent = 1.1 / 0.22 * curent / 1023.0 ;
// partea de afisare
lcd.setCursor(0, 0);
lcd.print("U =");
lcd.print(tensiune);
lcd.print(" V");
lcd.setCursor(0, 1);
lcd.print("I = ");
lcd.print(curent);
lcd.print(" A");
// se odihneste si el 1,5 secunde
delay(1500);
// sterge cu buretele tabla :-D
lcd.clear();
}
O a doua varianta de sketch pentru a afisa si puterea consumata si rezistenta echivalenta a consumatorului este:
/*
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
*/
// 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("Umax = 30V");
lcd.setCursor(0, 1);
lcd.print("Imax = 5A");
delay (1500);
lcd.clear();
}
void loop() {
// citire valoare pe intrarea analogica
float tensiune = analogRead(Pintensiune);
tensiune = 27.27 * 1.1 * tensiune / 1023.0 ;
float curent = analogRead(Pincurent);
curent = 1.1 / 0.22 * curent / 1023.0 ;
float putere = tensiune * curent ;
float rezistenta = tensiune / curent;
// partea de afisare
lcd.setCursor(0, 0);
lcd.print(tensiune);
lcd.print(" V");
lcd.setCursor(9, 0);
lcd.print(curent);
lcd.print(" A");
lcd.setCursor(0, 1);
lcd.print(putere);
lcd.print(" W");
lcd.setCursor(8, 1);
lcd.print(rezistenta);
lcd.print(" ");
lcd.write(0b11110100);;
// se odihneste si el 1,5 secunde
delay(1500);
// sterge cu buretele tabla :-D
lcd.clear();
}
iar afisajul arata asa:
Pentru a elimina erorile de citire, vom face o medie a 10 masuratori la 200ms fiecare, apoi vom calcula mediile tensiunii si curentului consumat, sketsh-ul va fi:
/*
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.
*/
// 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("Umax = 30V");
lcd.setCursor(0, 1);
lcd.print("Imax = 5A");
delay (1500);
lcd.clear();
}
void loop() {
float sumatens =0;
float sumacurent = 0;
for (int i=1; i <= 10; 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 (200);
}
float tensiune = sumatens / 10.0 ;
float curent = sumacurent /10.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");
lcd.setCursor(0, 1);
lcd.print(putere);
lcd.print(" W");
lcd.setCursor(8, 1);
lcd.print(rezistenta);
lcd.print(" ");
lcd.write(0b11110100);;
// se odihneste si el 1,5 secunde
delay(1500);
}
iar varianta cu 100 de citiri la 20ms cu mediere:
/*
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.
amper & voltmeter by niq_ro, 02.2013, Craiova, Romania
*/
// 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("Umax = 30V");
lcd.setCursor(0, 1);
lcd.print("Imax = 5A");
delay (1500);
lcd.clear();
}
void loop() {
float sumatens =0;
float sumacurent = 0;
for (int i=1; i <= 100; 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 / 100.0 ;
float curent = sumacurent /100.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");
lcd.setCursor(0, 1);
lcd.print(putere);
lcd.print(" W");
lcd.setCursor(8, 1);
lcd.print(rezistenta);
lcd.print(" ");
lcd.write(0b11110100);;
// se odihneste si el 1,5 secunde
delay(1500);
}
Filmuletul cu noua prezentare:
Deoarece atunci cand sursa este oprita apar mesaje ciudate, care alterneaza, de genul:
m-am gandit ca atunci cand curentul e foarte mic sa afiseze un mesaj ca sursa e in gol.
Sketch-ul numit versiunea 2 este:
/*
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.
amper & voltmeter by niq_ro, 02.2013, Craiova, Romania
vers. 2 - 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");
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.001)
{
// 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 1mA considera ca sursa e in gol
lcd.setCursor(1, 1);
lcd.print("sursa e in gol");
}
// se odihneste si el 1,5 secunde
delay(1500);
}
Am realizat un nou filmulet:
24.02.2013
Am realizat ca mai situatiile, care s eintalnesc in practica sunt:
- functionare normala:
- sursa oprita:
- scurtcircuit la iesirea din sursa:
- scurtcircuit la iesirea modulului de masura, adica la intrarea in consumator (la scurt-circuit apara rezistenta de masura de 0,22 ohmi)
Sketch-ul actualizat (versiune 2.1) este:
/*
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);
}
Am realizat si un film cu functionarea (fara partea de introducere) se numeste Arduino as digital multimeter for homemade power supply (4):
am realizat ca multimetrul meu Edison DM383 este de fapt un Mastech MAS830 (am gasit dayasheet-ul lui la http://www.mastech.com.cn/down/MAS830L%20MAS830.pdf ) si am constatat ca e bunicel :))
RăspundețiȘtergereSalut. Cum poti sa faci ca in loc sa ai iesirea pe LCD cu datele, sa iti inregistreze pe un Flash stik USB? E posibil pe placa asta de dezvoltare?
RăspundețiȘtergeredin pacate nu am lucrat, inca, cu memorarea datelorpe SD sau stick...
ȘtergereSalut.Ma intereseaza si pe mine 2 module care sa afiseze V, A, W si temperatura.
RăspundețiȘtergereV(0-110), A(0-20), Temperatura(0-100)
Am 2 module FET800 si vreau sa stiu in permanenta acesti parametrii.
La temperatura vreau sa imi arate permanent temperatura radiatorului fara sa comande ventilatorul.
Multumesc!!!
contacteaza-ma pe mail... sau pe mess...
ȘtergereSalut , cand incerc sa-l incarc imi apare o eroare
RăspundețiȘtergereArduino: 1.5.5 (Windows 7), Board: "Arduino Uno"
C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\Adafruit_MCP23008.cpp: In member function 'void Adafruit_MCP23008::begin(uint8_t)':
C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\Adafruit_MCP23008.cpp:32: error: 'Wire' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\Adafruit_MCP23008.cpp: In member function 'uint8_t Adafruit_MCP23008::read8(uint8_t)':
C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\Adafruit_MCP23008.cpp:149: error: 'Wire' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\Adafruit_MCP23008.cpp: In member function 'void Adafruit_MCP23008::write8(uint8_t, uint8_t)':
C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\Adafruit_MCP23008.cpp:167: error: 'Wire' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Am doar display-ul conectata dar nu si senzorii . Ma gandeam ca o sa mearga si o sa imi arate 0 peste tot .
ar merge daca ai avea si libraria "LiquidCrystal" pusa in directorul "libraries" unde ai softul pentru Arduino.. descarca-l de pe net si instaleaza-l acolo si o sa mearga.. citeste si un pic ce e scris la http://arduino.cc/en/Tutorial/LiquidCrystal
RăspundețiȘtergereBuna ziua, urmaresc de cativa ani activitatea dvs. tin sa va felicit, de fiecare data am gasit informatii foarte utile. Eu nu sunt electronist, o fac de placere, mai mult joaca, incerc sa-l conving pe baiatul meu sa se apropie de electronica. De cateva luni am inceput sa ma joc cu arduino, am incercat sa fac acest voltampermetru dar am o problema.
RăspundețiȘtergerein momentul in care potentiometrele sunt pe 0(inchise) pe Lcd se afiseaza 30,00 V 5.00 A 149.99 W 6.00 o, nu stiu unde am gresit. Te rog da-mi un sfat. Iti multumesc Alexandru
am reluat experimentele si am constatat ca am acest mesaj cand nu am conectate intrarile analogice la Arduino... am descoperit si o greseala in desenul facut in Eagle si l-am corectat... ideea e ca acel potentiometru se regleaza punanad in paralel un voltmetru si facand etalonarea dupa el...
ȘtergereBuna ziua.
ȘtergereAm reusit in cele din urma sa duc la bun sfarsit acest proiect, cu modificarea ca am utilizat un afisaj LCD 20X4 I2C.Vreau sa fac cateva observatii :
1. Montajul este bun...circuitul este defect...ma refer la circuitul cablat...trebuie inversate intrarea cu iesirea si GND-ul de la Arduino trebuie adus la intrare minus.Lipseste o conexiune.
2. Codul este foarte bun, am utilizat un semireglabil normal, nu neaparat multitura, si a mers perfect reglajul.
am corectat in "pictura" conexiunea...
ȘtergereBuna ziua.
RăspundețiȘtergereAceasta este ultima postare. Am eliminat inconvenientul dat de referinta interna de 1,1 V...aceasta deoarece folosesc si restul de intrari analogice.
Deci:
1. Resistenta din divizorul de tensiune de 100 ohmi am inlocuit-o cu una de 470 de ohmi: astfel, in codul Arduino in loc de de 27.27 * 1,1, am pus valoarea de 33 (initial am incercat cu 30, si prin tatonari am ajuns la 33)
2. Nu am umblat la rezistenta de 0,22 ohmi: in schimb in codul Arduino am inlocuit valoarea de 1,1 cu 5.
In rest merge bine.
Salut,
RăspundețiȘtergeream incercat aceste scheme si merg perfect.In cazul in care am un incarcator solar care are plusul comun(si nu masa cum este in exemplu,masuratoarea pentru curent) cum se leaga plusul comun de la incarcator cu arduino?
nu stiu daca s-a publicat unul din raspunsuri: in schema aia plusul e comun, suntul e pus pe minus... pentru curenti mari recomand senzori tip ACS712 pentru 5, 20 sau 30A.. pentru curenti si mai mari se folsesc altii ACS756...
Ștergeretrebuie sa stiu date despre panoul solar (fotovoltaic), daca ar eincarcator sau nu... etc.. nu sunt vrajitoare (vrajitor) sa ghicesc ce e pe teren...
Ștergere20w/18v/1,3A-panou,are incarcator.problema este la incarcator, pentru ca foloseste plusul comun pentru panou,acumulator si consumator .Eu vreau sa monitorizez toate acestea(I,U).pot trimite si poze ,dar am nevoie de o adresa de email.
RăspundețiȘtergererepet.. si aici schema are plus comun... e firul ala rosu din "picturi'... vreti sa monitorizati curentii de la panou si pe consumator? tensiunea pe acumulator? trimiteti-mi poze pe mail (nicu.florica@gmail.com)
RăspundețiȘtergereIti multumesc pt ca ai pus la dispoziria tuturor proiecte interesante.L am facut si merge perfect .vreau samentionez canu mi pleca de la 0 curentul si tensiunea si problema am corectat o schimbind bateria de alimentare.folosesc 7806 si am alimentat la baterie de 9v dar era descarcata la 7.5 v.Am pus baterie de 9v noua si imediat a plecat displayul de la 0 in lipsa sursei.deci atentie la alimentare sa nu patiti ca mine sa stati ore sa verificati ce si cum.
RăspundețiȘtergerear fi bine sa-u pui un alimentator separat, unul de telefon...
ȘtergereScuze am vrut sa scriu 7805
RăspundețiȘtergereMultumesc de raspuns !tocmai ma pregateam sa sterg si sa repostez.eu am programat atmega 328 pe placa arduino apoi am scos controlerul si l am pus pe o placa de a mea.La intrarea tensiunii placii am pus 7805 si apoi am alimentat cu baterie de 9v dar mai era undeva la 7.5 vin baterie.surpriza neplacuta ore de verificari pt ca mi varia diverse valori de genul 0.1vpe display 0.01a. Cind am pus bateria noua de 9v surpriza placuta mi a plecat de la 0.deci fiti atenti la alimentare si folositi sursa corespunzatoare cum spune nicu de
RăspundețiȘtergere