
-----------------------------------
Remus Boldis
02 Dec 2020 11:09


-----------------------------------
Pentru a veni in ajutorul celor care vor sa inteleaga programarea arduino, am sa incerc un mic serial cu elementele mai slmple de programare. Referinte despre subiect gasim aici : https://www.arduino.cc/reference/en/

void setup()
- parte a programului care va fi executata la inceput, o singura data. Aici initializam variabilele, definim pinii cu care lucram, incarcam librariile necesare, etc.

 void loop() 
- parte a programului care va fi executata in bucla atat timp cat arduino este alimentat. Se executa dupa void setup(). 

// 
- semn folosit pentru introducerea de comentarii intr-o linie de program. Tot ce e la dreapta semnului nu va fi citit de arduino (in linia respectiva). Se foloseste pentru a explica utilitatea liniei respective, pentru a intelege programul si e foarte util pentru depanari, apgradari program.

/* */
- acelasi lucru ca mai sus, dar este folosit pentru introducerea de comentarii pe mai multe linii. Tot ce e inclus intre /*       */ nu va fi citit de arduino

{} 
- toate subrutinele trebuie incluse intre acolade. Daca nu o facem sau uitam sa inchidem o acolada, programul va semnaliza eroare.

digitalRead() 
- citeste valoarea, high sau low, a unui pin digital pe care l-am definit ca input. In paranteza scriem numarul pinului, sau numele pe care l-am dat pinului respectiv.

digitalWrite() 
- pune in high sau low un  pin digital, pe care l-am definit ca output. In paranteza scriem numarul pinului, sau numele pe care l-am dat pinului respectiv.

pinMode() 
configureaza un pin ca intrare sau iesire (input, output).

delay() 
- spunem microcontrolerului sa astepte un numar de milisecunde (valoarea se trece in paranteze).

delayMicroseconds() 
- spunem microcontrolerului sa astepte un numar de microsecunde (valoarea se trece in paranteze).

Exemple de sketchuri:

1 Placa arduino are un LED conectat intern la pinul 13. Programul aprinde ledul timp de o secunda, dupa care sta stins o secunda

void setup() {
  pinMode(13, OUTPUT);    // setam pinul 13 ca iesire
}
void loop() {
  digitalWrite(13, HIGH); // punem pinul 13 in high (5V)
  delay(1000);            // asteapta 1000 de milisecunde
  digitalWrite(13, LOW);  // punem pinul 13 in low (0V)
  delay(1000);            // asteapta 1000 milisecunde
}

2 Conectam la pinul 7 un pushbutton (intre +5V si pinul 7). Ledul conectat la pinu 13 se va aprine la apasarea butonului si se va stinge la eliberarea lui.

int ledPin = 13;  // intitulam, denumim pinul 13 ca ledPin
int inPin = 7;    // denumim pinul 7 ca inPin
int val = 0;      // declaram o variabila

void setup() {
  pinMode(ledPin, OUTPUT);  // setam ledPin ca output
  pinMode(inPin, INPUT);    // setam inPin ca input
}

void loop() {
  val = digitalRead(inPin);   // citeste vloarea inPin si o aloca variabilei val
  digitalWrite(ledPin, val);  // seteaza ledPin la vloarea val
}



Desigur putem lega un led extern la un pin pe care l-am definit ca iesire. In acest caz va trebui sa inseriem cu ledul o rezistenta de limitare a curentului (intre 100ohmi si 10 kiloohmi, cu cat rezistenta e mai mica, cu atat curentul prin led va fi mai mare).Ledul se leaga intre pinul output si GND.https://www.circuitbasics.com/arduino-basics-controlling-led/



