Jump to content
ELFORUM - Forumul electronistilor
vlad1980

Comandare led-uri Arduino

Recommended Posts

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. 

 

Edited by vlad1980
Link to post
Share on other sites

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.

Edited by mihaicozac
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines