Arduino LCD Shield

De curand mi-am luat un ArduinoUno, intentionand sa ma “joc” cu el.

Unul din “accesoriile necesare” pentru asta, consta intr-un LCD pe care se va vizualiza
diversele mesaje/date procesate, lasand posibilitatea de a se crea aplicatii mai mult sau mai putin complexe. Am ales sa folosesc un LCD pe care il aveam de ceva vreme, pentru dimensiunile ce il faceau ideal de incadrat pe un shield pe care l-am “gandit si executat rapid”. LCD-ul este un DEM 16223 SY-PY. Un shield te scuteste de fire (si posibile greseli/scurturi). Am prevazut posibilitatea alimentarii shield-ului fie din Arduino, fie dintr-o sursa exterioara in situatia in care consumul va creste odata cu conectarea diverselor “periferice”, cunoscandu-se ca Arduino asigura doar un curent limitat de posibilitatile stabilizatorului LM1117. Deasemenea am “prelungit” accesul la pinii Arduino, astfel incat sa fie usor de utilizat.

arduino shield 3

PCB-ul l-am executat prin metoda de transfer toner, pentru ca vroiam sa testez o folie
pe care am gasit-o la un foto-studio. Nici macar nu am curatat cuprul prea bine (am folosit decat acetona) intrucat nu am asteptam sa am un transfer termic reusit.

arduino shild 1

Am renuntat la semireglabilul ce regleaza contrastul LCD-ului folosind doar o rezistenta de 100 Ohm intre pinul 3 al LCD si GND.

 

arduino shield 2

Pentru primul test, am folosit urmatorul sketch:

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
//  conexiune LCD:
/*                                    -------------------
                                      |  LCD  | Arduino |
                                      -------------------
 LCD RS pin to digital pin 7          |  RS   |   D7    |
 LCD Enable pin to digital pin 8      |  E    |   D8    |
 LCD D4 pin to digital pin 9          |  D4   |   D9    |
 LCD D5 pin to digital pin 10         |  D5   |   D10   |
 LCD D6 pin to digital pin 11         |  D6   |   D11   |
 LCD D7 pin to digital pin 12         |  D7   |   D12   |
 LCD R/W pin to ground                |  R/W  |   GND   |
                                      -------------------
*/                                      
                                      
void setup() {

 lcd.begin(16, 2); // set up the LCD's number of columns and rows: 

 lcd.clear(); // clear the screen
 lcd.setCursor(1, 0); // put cursor at colon 2 and row 0 = left/up
 lcd.print("Arduino shild "); // print a text
 lcd.setCursor(2, 1); // put cursor at colon 0 and row 0 = left/down
 lcd.print("DEM16223SY LCD "); // print a text
     delay (2000);
 lcd.clear(); // clear the screen
 
 lcd.setCursor(1, 0); // put cursor at colon 2 and row 0 = left/up
 lcd.print("first test  "); // print a text
 lcd.setCursor(2, 1); // put cursor at colon 0 and row 0 = left/down
 lcd.print("by Baldo "); // print a text
 
 } // END void setup
 
 void loop(){
   
   } // END void loop

Panasonic 26V 8Ah Electric Bike Battery

Am avut ocazia sa descopar ce se gaseste in interiorul unei bateri originale, made by Panasonic, ce se utilizeaza impreuna cu motoare electrice montate pe biciclete.
Trecand peste aparent “piperatul” pret al acestei bateri, in interior se gaseste un modul electronic destul de complex, ce inglobeaza un uC Renesas de tipul M37512, cu care se realizeaza functiile de monitorizare tensiuni ce previne supradescarcarea, protectie la supraincalzire prin 2 termistori ce monitorizeaza regimul termic al celor 28 de elemente LI-ION, conectate in 7 grupuri serie a cate 4 elemente montate paralel, posibil si balansarea celulelor de acumulatori. Un al 2-lea modul monitorizeaza tensiunea de pe acumulatori in momentul incarcarii de/conectand sursa de incarcare functie de nivelul de tensiune atins de ansamblul de elemente LI-ION. Din pacate nu am avut la dispozitie si sursa de incarcare, care e posibil sa comunice prin protocol 1-Wire cu uC Renesas, ca metoda de autentificare a incarcatorului original, prin pinul ID. La fel de posibil este ca ID-ul sa fie un pin prin care se face comunicatia cu un Trip-Computer, in care se poate monitoriza in timp real starea de incarcare a bateriei.

panasonic1

panasonic2

am facut si o schita a schemei de principiu 🙂

LI ION batery 800

70886FB IC made by NXP for Visteon

Visteon foloseste “marcarea industriala” a IC-urilor folosite in aparatura electronica, practic, IC-urile sunt “rebotezate” dupa cerinta. Un asemenea IC este 70886FB. L-am intalnit intr-un Radio-CD auto Skoda Stream, analizand PCB-ul se observa ca este un stabilizator multiplu de tensiuni, chiar daca prin www, nu se gasesc referinte despre aceasta marcare industriala, am concluzionat ca este de fapt un TDA3681.

TDA3681

For real information, download PDF of TDA3681.

Panasonic CQ-LP3920L / Mercedes Audio5

M-a rugat un amic sa ii “gasesc” printre “fiarele” mele, un radio auto. De cativa ani tot dadeam cu ochii de un radio/casetofon made by Panasonic despre care stiam doar ca nu porneste, fara sa fi cautat vreodata si motivul, banuind ca a fost alimentat gresit si are vreun amplificator in scurt (care ar fi mai dificil de procurat).
Dupa ce am verificat cu ohmetrul starea tranzistorilor finali din cele 2 amplificatoare (2x20W) care s-au dovedit a fi in regula, am desfacut capacele si am observat un tranzistor SMD “gaurit”. Dupa scurtcircuitarea E-C a acestuia, radio a pornit. Cum aparatul mai folosea un tranzistor identic ca element de comutare al tensiunii de alimentare motor parte mecanica, am decis folosirea acestuia pe partea de stand-by , urmand sa inlocuiesc comanda motorului cu altceva, si datorita faptului ca pe cablaj, era gandita si o asemenea varianta. Am concluzionat ca tranzistorul original incapsulat SMD si marcat “DS” este un “tranzistor digital” de tipul HQ13FP, 2A/20V. Am inlocuit cu un 2SA950 ce are in baza un rezistor de 2K. Amicul meu trebuie ca e multumit!

audio5

Arduino Dishwasher

Stiu din surse “sigure” ca masinile de spalat rufe, sunt facute sa “pice” la un moment dat, dupa un anumit nr. ore de functionare/cicluri, cam dupa ce se termina si garantia data de producator 🙂 . Ma refer aici la modulul electronic, care “pica” odata cu aparitia unor probleme ce tin de pompa de evacuare de exemplu. Practic in cazul aparitiei unei defectiuni ce nu mai permite incheierea ciclului complet de spalare, este foarte posibil ca in zona de EEPROM a uC-ului de pe placa de comanda, sa se memoreze anumite coduri de eroare, care ajuta la identificarea problemei ce a cauzat defectul. Dupa remedierea problemei (mecanice) s-ar putea sa auzim ca trebuie inlocuita placa de baza. In trecut ajutam un amic sa rescrie zona de EEPROM pentru toata gama de masini de spalat INDESIT, ca sa le repuna in functiune fara inlocuirea intregii placi de comanda. Cu timpul, s-a renuntat la folosirea EEPROM-ului extern, acesta fiind integrat in uC-ul ce ruleaza firmwarele (softul) masinii de spalat. De obicei aceste uC-uri sunt securizate, blocandu-se accesul la citire/scriere, astfel incat, nu se mai poate repara, in regim DIY , placa de comanda. O alternativa interesanta, este propusa aici.