Cele mai complexe functii care pot fi create in Arduino IDE sunt functiile care returneaza o valoare si depind de un parametru,fiind definite la finalul programului in felul urmator:
tip variabila numefunctie(parametru)
{
functii executabile;
valoare stocata in variabila x;
}
return x;
}
Acest tip de functii combina caracteristicile celor 2 tipuri de functii explicate in ultimele 2 tutoriale,prin urmare si exemplul este o combinatie intre exemplele date in tutorialele anterioare:
void setup()
{
pinMode(13, OUTPUT); //initializare pin 13 pwntru emisie
Serial.begin(9600); //initializare comunicare seriala la viteza de 9600 baud
Serial.println(AprindeLED(10)); /*afiseaza pe monitorul serial valoarea returnata de functia AprindeLED */
AprindeLED(10); //invocare functie AprindeLED cu parametrul "limita" egal cu 10
}
void loop()
{
}
int AprindeLED(int limita) /*creare functie care returneaza variabila intreaga cu parametrul intreg "limita" */
{
randomSeed(analogRead(0)); /*"samanta" generatorului de numere aleatorii este egala cu o citire a pinului A0 */
int x = random(limita); /*creare variabila intreaga care contine o valoare generata aleatoriu cuprinsa intre 1 si valoarea "limita" */
for (int i=1; i<= x; i++) //pentru i=1,i mai mic sau egal ca x,i creste
{
digitalWrite(13, HIGH); //trimite semnal HIGH prin pinul 13
delay(500); //asteapta 500 ms
digitalWrite(13, LOW); //trimite semnal LOW prin pinul 13
delay(500); //asteapte 500 ms
}
return x; //returnare variabila x
}
Functia AprindeLED este similara cu cea din exemplul din tutorialul anterior,cu exceptia faptului ca putem schimba valoarea maxima a lui x din mximul functiei random (si prin urmare numarul maxim de aprinderi succesive ale LED-ului) modificand parametru "limita".
In urmatoarele tutoriale vom trata un subiect fascinant si interesant:motoarele electrice!
Comments