Se afișează postările cu eticheta multimeter. Afișați toate postările
Se afișează postările cu eticheta multimeter. Afișați toate postările

sâmbătă, 19 octombrie 2019

Vizualizare parametrii panou solar pe server Thingspeak

   Dupa ce am rezolvat partea de multimetru (citire tensiune si curent) de la un alimentator (panou solar), informatii ce pot fi citite in articolele 1 si 2, am continuat si cu trimiterea datelor catre serverul Thingspeak.
   Schema este aceeasi:
   Am folosit datele din articolele anterioare, adaugand partea de trimtere date pe un "SoftwareSerial", respectand schema de mai sus
   Trimiterea datelor se face astfel; *abcdefgh#, unde literele sunt cifre, primele 4 patru pentru tensiune si ulrmatoarele 4 pentru curent,
   Montajul are deja conectate placile de dezvoltare, asa ca pentru a programa placa cu ESP8266, trebuie ca sa nu avem transmisie dinspre Arduino, asa ca am incarcat programelul BLINK in Arduino Nano
altfel rimim mesaj de eroare
dupa modificare, mesajul e mult mai prietenos:
   Dupa incarcarea programelor vedem urmatoarele informatii:

iar pe serverul Thingspeak
   Programul pentru placa Arduino Nano este vaw_tx1.ino, cel pentru placa cu ESP8266 este vaw_rx1.ino, iar modul de functionare se vede in filmulele:
20.10.2019
   Am adaugat si "indicatoare analogice" pe server:
   Niste capturi de ecran mai frumoase:
Mentiune: Am adaugat un fel de "screensaver" cu un punct ce se plimba pe ecran, in loc de ecran stins, prin modificarea programului de pe placa Arduin Nano in vaw_tx1a.ino, cel de pe placa cu ESP8266 ramane tot vaw_rx1.ino
    Comportamentul sistemului se vede in cele 2 filmulete:
    In mare, modificarea este din
in


sâmbătă, 15 martie 2014

Arduino ca multimetru (3)

   La inceputul anului trecut, am scris 2 article despre folosirea lui Arduino ca multimetru de panou: in Arduino ca multimetru am prezentat mai mult calcule, iar in Arduino ca multimetru (2) am pus si experimente, inclusiv sketch-uri..
   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:
iar modul de conectare intre module este:
   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
   Am desenat toata corectat schema:

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.


sâmbătă, 16 februarie 2013

Teste cu transformatorul de curent AS-102 (PPAS102)

   Deoarece vreau sa realizez in regim de prototip un wattmetru pentru un consumator casniz (bec, frigider, calculator, circuit electric care este cuplat la o siguranta din casa, etc) folosind un Arduino (vezi articolul Arduino ca wattmetru pentru consumatori casnici) am fost sa cumpar un transformator de curent pentru a face niste experimente si nu am gasit pe stoc la ADELAIDA decat modelul AS-102 sau PPAS102. 


   Fiind in faza de testare am cumparat unul la pretul de 6,00lei  si am costatat (apoi) din fisa tehnica ca e un transformator de curent pentru frecventa inalta (20-200kHz) folosit pentru masurarea curentului la surse in comutatie, de exemplu.
   Raportul de transformare fiind 1:200, ma asteptam sa am pe rezistenta din secundar (recomadata) de 200 ohmi (obtinuta din 2 rezistente inseriate de 100 ohmi) o tensiune de aceeasi valoare cu acel curent prin primar.
   Exemplu: am un bec de 100W care consuma cca.0,44A (I=P/U=100W/230V=0,44A), deci in secundarul transformatorului de curent as avea in circuit un curent de 200 de ori mai mic (0,44A:200=0,0022A=2,2mA), tensiunea pe rezistenta de 200 de ohmi conectata in secundarultransformaotrului ar fi de 200 ori mai mare ca valoarea curentului (0,0022A*200ohmi=0,44V).
   Am folosit un bec de 60W (n.r. nou, made in China) si am masurat tensiunea pe rezistenta de 200 ohmi conectata in secundarul transformatorului de curent obtinand valoarea de 50mV.

    Fiind o valoare care nu mi s-a parut relevanta si nici corecta am inseriat aparul de masura in circuitul becului obtinand o masuratoare de 0,24-0,25A.
    Am inlocuit rezistenta compusa de 200 ohmi cu una de 100 ohmi sa vad ce valoare a tensiunii in secundarul transformatorului de curent obtin si .. tot 50mV a fost, deci a fost "evident" ca raportul de transformare este de 1:5 (corectura in 17.02.2013).
    Pentru a obtine o indicatie mai relevanta am folosit divizorul rezistiv din secundarul transformatorului (masurand tensiunea de pe una din cele 2 rezistente de 100 de ohmi), obtinand o valoare de 10 ori mai mica:

completare, 17.02.2013
   M-am gandit ca acest raport de transformare diferit de ce e in fisa de catalog e din cauza frecventei retelei (50Hz), foarte mica fata de domeniul recomandat (20-20kHz).

  Am luat mai multe modele de becuri, ce am gasit prin casa, sa vad daca se pastreaza raportul de transformare, pastrand si divizorul rezistiv cu raport 1:2:

1) bec economic de 18W:
 

2) bec cu incandescenta de 60W (vehime de cca. 1 an):

3) bec cu incandescenta de 75W (vechime 2-3 ani)
4) bec cu halogen de 70W (aprox. 2 luni):

   Se constata ca pentru sarcini rezistive si frecventa de 50Hz, raportul de transformare ramane 1:5 (respectiv 1:10 cu divizorul rezistiv de 1:2), cel gasit si ieri, dar pentru becul economic care lucreaza la o frecventa mare si, posibil, cu sinusoida deformata) si aparatul de masura digital DT2905A pus ca ampermetru de curent alternativ si ca milivoltmetru de tensiune alternativa sa citeasca tensiunea de pe divizorul rezistiv care este conectat in secundarul transformatorului de curent.
   Din calcule curentul ar fi trebuit sa fie de I=P/U=18W/230V=0,078A=78mA, ampermetrul a aratat 0,05A=50mA, iar trasnformatorul de curent cu divizor 16mA.. daca va uitati cu atentie in poza cu masuratoare acestui bec pana si Mada la 2 ani si 10 luni isi pune mainile in cap :-).
   Concluzie e ca acest model de transformator de curent (AS-102 sau PPAS102) nu il pot folosi pentru masuratori generale.. trebuie un model gen AC1020.
   Am facut si un centralizator cu valorile calculate (functie de puterea inscriptionata si tensiunea de alimentare), curenti masurati direct cu aparatul de masura si masurati cu transformatorul de curent AS-102:



joi, 14 februarie 2013

Arduino ca wattmetru pentru consumatori casnici

    Putem afla puterea instantanee consumata a unui consumator casnic sau consumul instantaneu al echipamentelor din casa sau de pe un circuit electric prin folosirea unui transformator de curent (sau a unui senzor dedicat gen ACS713, ACS713, ACS756) si a unui transformator coborator, pentru a izola placa de dezvoltare (si implicit calculatorul daca e legat prin USB pentru a programa sketch-ul).

   In desenul de mai sus apar si niste module, acestea fiind niste module de conversie tensiune alternativa in tensiune continua, in cazul de fata "redresoare monoalternanta fara prag", deoarece microcontrolerul nu accepta tensiuni negative pe intrarile analogice utilizate pentru masurare (nici pe cele digitale).
   Desi se gasesc pe internet si in cartile de specialitate scheme mai simple sau mai complexe, eu m-am oprit la una publicata in revista Tehnium nr. 11 din 1988, in articolul "Multimetru" scris de dl. Milian Oros.


   Am redesenat in Cadsoft EAGLE schema pentru a realiza o varianta de cablaj, obtinand:




desenat de niq_ro

   Modulul (modulele) necesita alimentare simetrica stabilizata de +/-5V, aceasta putand apoi alimenta si placa de dezvoltare sau montajul cu microcontroler.

   Revenind la schema, am considerat ca pot folosi transformatoare de curent (mai) ieftine. Cautand pe net am depistat produsele firmei indiene TALEMA si m-am oprit la transformatorul de curent AC-1020 care costa 3,22 lei la TME ajungand la 9,50lei la ADELAIDA.

   Schema tipica de conectare este:
iar caracteristica este:

   Montarea transformatorului consta in trecerea cablului de alimentare al consumatorului sau a circuitului prin "gaura" din transformator si montarea unei rezistente de 100 ohmi la pinii 1-2 (extremitati) si masurarea tensiunii pe aceasta rezistenta. Din fisa de catalog se observa pentru acest transformator de curent se poate folosi pentru un curent nominal de 20A, iar cel maxim admis e de 60A, arhisuficient pentru ce am eu nevoie. Pentru curenti mai mici de 1A sunt sanse sa nu fie liniara dependenta, dar asta se poate verifica, prin masurarea tensiunii pe rezistenta si compararea cu indicatia unui ampermetru de curent alternativ pus in circuitul urmarit.
    La un circuit electric tensiunea alternativa de la iesirea transformatorului de curent poate depasi 1,1V (vreau sa folosesc refenta interna a microcontrolerului), am pus si acolo un divizor rezistiv (semireglabil multitura):






- va urma -