Am adaugat un modul cu 3 leduri la montajul testat anterior, ledul rosu corespunde ledului (rosu) de pe pe placa Arduino (de la D13), un led verde care se aprinde cand ledul rosu este stins si, pentru ca tot era pe modul, ledul galben se aprinde/stinge la secunda, fara a depinde de apasarea butonului, la secundele impare se aprinde si la cele pare se stinge (rest de la millis()/1000 impartit la 2).
Schema este simpla,
si cu programul butonsoft_0b.ino incarcat in placa Arduino am facut 2 filmulete:
In vederea dezvoltarii unui proiect mai complex, am vrut sa testez un program care sa aprinda un led cand se apasa un buton fara retinere, oricat de mult timp (in cazul de fata zeci de secunde) si apoi sa se stinga cand se apasa din nou acel buton, oricat de mult (tot maxim zeci de secunde).
Programul adaptat de mine este butonsoft_0a.ino in care butonul fara retinere este la D2 si led-ul comandat este cel de pe placa, de la D13, schema fiind:
Pentru un anumit proiect, am achizitionat un senzor de distanta cu infrarosii GP2Y0A710K0F, care poate poate masura bine in domeniul 1..5.5m (dupa cum apare in fisa tehnica).
Cand l-am primit, am constatat ca e destul de mare in comparatie cu senzorii uzuali pentru Arduino
si am realizat pe breadboard montajul din schema de mai sus (fara a conecta condensatorul electrolitic)
Firul verde este iesirea de semnal (conectare la intrarea analogica A0), extremele (albastru si rosu) la masa (GND), iar cele 2 ramanse (galben si negru) la plus (+5V).
In timpul testelor consumul mediu al senzorului a fost cca 42mA.
Din materialele de pe internet, variatia tensiunii cu distanta nu este liniara, dar cu inversul distantei este
Dupa cate se observa, sub 70-75cm, tensiunea de iesire este similara distantelor mai mari decat aceasta, asa ca 70cm putem considera ca e distanta minima de masurare.
Eu am adaptat schema si programul sa folosesc o placa Arduino Nano, inclusiv am modificat programul sa fie mai corect afisat timpul, fiind usor de selectat afisaj cu driver SH1106 (diagonala de 1.3") sau cel de SSD1306 (diagonala de 0.96").
Schema de conectare este
Programul adaptat de mine este Timer_1a.ino si cu incarcat am realizat 2 filmulete:
Pentru proiectul la care lucrez de ceva timp, cu cablaje comandate la JLCPCB,
adica asamblarea si punerea in functiune a unui calculator Cobra2 (Turbo Spectrum) despre care puteti citi la cobrasov.org
am avut nevoie sa verific 3 integrate 74LS32 (4 porti SAU) pentru a depista de ce anumite semnale de pe placa de Cobra2 nu sunt corecte.
Am zis sa fac un tester cu Arduino pe o placa de breadboard sa pot testa repede, dar am realizat programul incat am modificat repede pentru 74LS86 (4 porti SAU EXCLUSIV) sar si pentru 74LS00 (4 porti SI-NU).
Am gasit un breadboard, o placa Arduino Nano, niste fire, 2 leduri si 2 resistente si am asamblat un montaj de test
Corespondenta dintre 74LS32 / 7432 si placa Arduino este urmatoarea
iar la D11 este conectat ledul rosu inseriat cu o rezistenta de 220-470Ω ir la D12 este ledul verde inseriat de asementea cu o rezistenta de aceeasi valoare.
La alimentarea montajului, ledurile rosu si verde se aprind intermitent pentru ceva timp, apoi daca integratul este bun, ledul verde palpaie lent,
iar daca nu este bun (cel putin o poarta defecta) ledul rosu palapie rapid, la fel si daca nu este niciun integrat conectat sau este un alt integrat (ca aici, un 7486).
Folosind programul OR_tester_v2.ino montajul se comporta ca in filmuletele:
Fata de testele din articolul anterior, cand iesirile "urmareau" starile butoanelor (ledurile era aprinse cand butoanele erau neapasate si stinse cand erau apasate butoanele), de data asta am modificat ca starea iesirii corespunzatoare butonului fara retinere sa se schimbe la fiecare apasare.