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

marți, 13 septembrie 2016

Sursa de tensiune controlata de Arduino

   Dupa ce m-am "jucat" un pic cu un convertor de semnal dreptunghiular in tensiune continua si am fost multumit de rezultate, am zis sa continui testele si sa realizez o sursa de tensiune controlata de Arduino, dupa cum e prezentat in articolul A Powerful Little Arduino Programmable 10V Supply in care se foloseste un integrat specializat MCP4725 de conversie din digital in analogic (DAC) pe 12 biti:
   In articolul Convertisseur PWM / Tension 001 este prezentat o sursa controlata cu semnal dreptunghiular cu factor de umplere variabil (PWM):
  Schema mea de test, in care folosesc un integrat Beta M324 din 1988 iarna, este
iar consumator a fost un bec cu leduri de 12V si 3W, care se deschide doar la tensiune de peste 7V...
   Am facut 2 filmulete, in care se vede cresterea si scaderea lenta a tensiunii la iesire:
- sursa de tensiune controlata de Arduino in care folosit sketch-ul fade_pwm_control3a.ino cu variere factor ce umplere de la 0 la 255 din total 255 trepte cu pas de 5 trepte:
- sursa de tensiune controlata de Arduino (2) la care am folosit sketch-ul fade_pwm_control3b.ino care comanda tensiune pornind de la aprinderea "becului cu leduri", de la 120 la 255 trepte, cu pas de 5 trepte:
   Am schimbat "becul cu leduri" cu unul clasic auto de 5W si 12V, incarcand sketch-ul fade_pwm_control3a.ino cu variere factor ce umplere de la 0 la 255 din total 255 trepte cu pas de 5 trepte si am facut filmuletul sursa de tensiune controlata de Arduino (3)

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.