In pauza dintre sarbatorile de iarna, m-am gandit sa folosesc la un proiect niste LED-uri multicolore (RGB) depsre care nu stiam prea multe (tensiunea pe fiecare tip de LED, daca sunt cu catod comun sau anod comun),asa ca am improvizat un montaj de test.
Prima data am folosit multimetrul pe domeniul de verificare diode si continuitati, stiind ca piciorusul cel mai lung al unui LED RGB este comun, am depistat, in cazul meu, ca LED-ul este cu catod comun (se alimenteaza cu plus cele 3 LED-uri si masa e comuna).
Am facut masuratori folosind o sursa de tensiune stabilizata reglata la 5V (4,99V de fapt), inseriind la catodul comun prima data o rezistenta de 220 ohmi, apoi am alimentat fiecare LED si am masurat caderea de tensiune.
Am schimbat rezistenta cu una de 150 ohmi obtinand:
iar in cazul unei rezistente de 100 ohmi:
si daca tot eram la capitolul teste cu rezistenta de 100 ohmi, am veriifcat si un LED alb:
Schemele de conectare sunt, pentru LED-ul RGB:
iar pentru cel alb:
Ca rezumat, pe LED-urile rosii caderea de tensiune este 2..2,1V, pe LED-urile verzi si albastre 2,9..3,1V iar pe cele albe cam 3,2V.
NOTA: curentul maxim prin LED-urile obisnuite este de cca. 20mA !!!
In pachetul numit "The Arduino Starter kit" se gaseste si senzorul de temperatura TMP36 fabricat de ANALOG DEVICES, care este compatibil 100% cu senzorul fabricat de TEXAS INSTRUMENTS numit LM50 (care lucreaza similar cu mai cunoscutul senzor LM35).
Fata de senzorul de temperatura LM335, senzorul TMP36 se conecteaza direct la tensiunea de alimentare.
Am realizat si eu montajul si apoi am incarcat primul sketch de acolo obtinand:
Deoarece valorile citite variaza prea mult, am facut o mica modificare la sketch, cititnd 10 valori la 200ms intre ele si apoi facand o medie.
Sketch-ul modificat de mine este urmatorul:
// original sketch from http://learn.adafruit.com/tmp36-temperature-sensor/using-a-temp-sensor// adapted sketch by niq_ro from http://nicuflorica.blogspot.com//TMP36 Pin Variablesint sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to A0//the resolution is 10 mV / degree centigrade with a//500 mV offset to allow for negative temperatures/* * setup() - this function runs once when you turn your Arduino on * We initialize the serial connection with the computer */// added part by niq_rofloat vmed = 0;
float ve = 0;
voidsetup()
{
Serial.begin(9600); //Start the serial connection with the computer//to view the result open the serial monitor
}
voidloop() // run over and over again
{
vmed = 0;
ve=0;
for (int j = 0; j < 10; j++) {
//getting the voltage reading from the temperature sensorint reading = analogRead(sensorPin);
// converting that reading to voltage, for 3.3v arduino use 3.3float voltage = reading * 5.0;
voltage /= 1024.0;
vmed = vmed + voltage;
delay(200);
}
ve = vmed/10;
// print out the voltageSerial.print(ve); Serial.println(" volts");
// now print out the temperaturefloat temperatureC = (ve - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset//to degrees ((voltage - 500mV) times 100)Serial.print(temperatureC); Serial.println(" degrees C");
// now convert to Fahrenheitfloat temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF); Serial.println(" degrees F");
delay(1000); //waiting a second
}
Fata de articolul anterior, acum am introdus facilitatea de a regla manual orele si minutele, la ceas... Schema de baza, este aceeasi, doar ca se adauga partea de reglaj (3 butoane, unul cu care se reseteaza datele, unul pentru minute si unul pentru ore). Cand se face reglajul, butonul de resetare date trebuie tinut apasat... partea aceasta am gasit-o la http://www.bristolwatch.com/arduino/arduino_ds1307.htm