vlad1980 Postat Octombrie 11, 2020 Partajează Postat Octombrie 11, 2020 (editat) Salutare, Am nevoie de ajutor din partea celor care se pricep la programare Arduino pentru ce eu nu prea ma descurc cu o aplicatie super simpla. Am dat la perete cateva ore si m-am hotarat sa cer ajutor ca nu prea ii dau de cap. Vreau sa comand 4 leduri astfel (partea de conectica este rezolvata): - led-urile de la 1 la 3 sa se aprinda consecutiv cateva minute fiecare (sa zicem 5 minute fiecare); - led-ul 4 sa se aplinda intermitent (blink la 1 secunda sau ceva de genul) cat timp led-ul 1 este aprins. Daca are cineva timp sa ma ajute cu un exemplu de cod, ii multumesc anticipat. Editat Octombrie 11, 2020 de vlad1980 Link spre comentariu
mihaicozac Postat Octombrie 12, 2020 Partajează Postat Octombrie 12, 2020 (editat) Ai nevoie de un integer numărător care să se indexeze cu o unitate la fiecare să zicem 500ms. Apoi pui condițiile de care ai nevoie. De ex. dacă numărătorul are valoarea sub 600 (care înseamnă 5 minute) comanzi ledul 1. Dacă este între 600-1199 ledul 2, și 1200-1799 ledul 3. Apoi mai ai nevoie de o condiție, dacă numărătorul este sub 600 și are o valoare pară aprinzi ledul 4. Ai o variantă simplă de program cu operatori ternari, dacă ai cablat alți pini la leduri modifici în declarații și în setup(). unsigned int counter = 0, led1 = 2, led2 = 3, led3 = 4, led4 = 5; void setup() { for(int i = 2; i < 6; i++) { pinMode(i, OUTPUT); // SETEAZA PINII CA IESIRI } } void loop() { digitalWrite(led1, counter < 600 ? HIGH : LOW); // LED1 la pinul 2 digitalWrite(led2, counter > 599 && counter < 1200 ? HIGH : LOW); // LED2 la pinul 3 digitalWrite(led3, counter > 1199 ? HIGH : LOW); // LED3 la pinul 4 digitalWrite(led4, counter < 600 && counter % 2 == 0 ? HIGH : LOW); // LED4 la pinul 5 counter > 1799 ? counter = 0 : counter++; // NUMARATOR IN BUCLA PANA LA 3 MINUTE delay(500); } Codul se compilează dar n-am verificat dacă merge și practic, e posibil ca operatorul ternar să nu proceseze corect condițile compuse de la led2 și led4, în acest caz se pot înlocui cu if-else. Editat Octombrie 12, 2020 de mihaicozac Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum