Variabilele sunt folosite pentru a stoca diverse informații de tipuri diferite.
#include <stdio.h> int main(void) { int variable_number = 10; char variable_character = 'c'; float variable_fractional_number = 10.25; return 0; }
Vectorii sunt variabile mai complexe de o dimensiune specifică, setată, care pot stoca o listă de valori. De exemplu:
#include <stdio.h> int main(void) { int arr1[6]; int arr2[] = { 1,2,3,4,5,6}; char arr3[] = {'a', 'b', 'c', 'd'}; char arr4[6] = "hello"; return 0; }
Propoziția if este o propoziție condițională folosită pentru a executa instrucțiuni în funcție de anumite condiții. Construcția if-else se traduce prin “dacă - altfel”:
#include <stdio.h> int main(void) { int a = 10; if (a == 10) { // Dacă a este egal cu 10 // Fă operații dacă a este 10 } else { // Altfel // Fă operații când a este diferit de 10 } return 0; }
Structura for este o structură repetitivă în funcție de o condiție. Mod de utilizare:
Accesarea unei anumite valori dintr-un vector se face prin index-ul(poziția) valorii din vector.
Funcțiile separă sarcini diferite, complexe în părți mai mici care sunt mai ușor de înțeles și programat. Avantajul este că putem refolosi aceste secțiuni de oricâte ori avem nevoie, fără a mai rescrie acele zone de cod de la 0. De asemenea, acestea sunt extrem de utile pentru ascunderea detaliilor de funcționare a unor bucăți de program, ajutând la scrierea și citirea codului. Prin utilizarea funcțiilor, care reprezintă unitatea fundamentală de execuție a programelor din C, se obține o divizare logică a programelor complexe și mari.
Pentru a afișa datele citite de pe pini de la senzori ne dorim să utilizăm Seriala de pe Arduino. Seriala este un utilitar similar cu cout din C++.
Funcții:
void setup() { Serial.begin(9600); // Setăm frecvența pentru Serial Monitor Serial.println("Am început programul"); } void loop() { Serial.print("Salut"); // Printează Salut la infinit!!! }
La rularea codului de mai sus, în Serial Monitor se va afișa Salut la infinit fără spații între cuvinte: “SalutSalutSalutSalutSalutSalut”
int buton = 2; void setup() { Serial.begin(9600); // Setăm frecvența pentru Serial Monitor Serial.println("Am început programul"); pinMode(buton, INPUT); } int buttonState = 0; void loop() { buttonState = digitalRead(buton); Serial.print("Starea butonului este: "); // Mesaj ce se afișează înaintea valorii Serial.println(buttonState); // 0 sau 1 funcție de starea butonului }
Outputul codului de mai sus va fi:
Am început programul
Starea butonului este 0
Starea butonului este 0
Starea butonului este 0
Am apăsat pe buton
Starea butonului este 1
Starea butonului este 1
Starea butonului este 1
Pentru a utiliza pinii Arduino, trebuie să setăm modul în care vrem să îi folosim (Input/Output). De exemplu:
void setup() { pinMode(PINUL_DORIT, INPUT); // sau pinMode(PINUL_DORIT, OUTPUT); } void loop() { }
Dacă setăm un pin în modul de output, putem seta tensiunea pe acesta folosind funcția digitalWrite(). De exemplu:
void setup() { pinMode(PINUL_DORIT, INPUT); pinMode(PINUL_DORIT, OUTPUT); } void loop() { digitalWrite(PINUL_DORIT, HIGH); // acum avem pe acest pin tensiunea de 5V delay(3000); // așteptăm trei secunde digitalWrite(PINUL_DORIT, LOW); // acum avem pe acest pin tensiunea de 0V }
Pentru a conecta un LED, avem nevoie de fire, o rezistență de 220 de Ohmi și bineînțeles un LED. Un exemplu de conectare avem în poza de mai jos:
Circuitul este simplu: de la pinul de alimentare (pinul GPIO digital 3), conectăm rezistența de 220 de Ohmi, apoi conectăm anod-ul LED-ului. De la catod-ul LED-ului vom pleca apoi cu un fir până la un ground (GND) de pe placă. Apoi pentru a aprinde LED-ul va trebui să scriem valoarea HIGH pe pinul 3.
Toate exercițiile vor fi rezolvate pe Tinkercad: