Il linguaggio di programmazione Wiring consente di configurare Arduino, controllarne il comportamento e fargli effettuare calcoli. Esploreremo questo linguaggio, per conoscerne potenzialità e funzionalità. In questo primo articolo conosceremo il metodo (o procedura) pinMode() e le costanti INPUT e OUTPUT.
La scheda Arduino possiede diversi PIN che possono essere configurati come ingressi o uscite.
pinMode() è un metodo che consente di specificare il comportamento di un PIN digitale e non restituisce alcun valore. Viene inserito, generalmente, nel blocco di setup di uno sketch. La sintassi di pinMode() è:
pinMode(pin,modalità)
dove
- pin indica il numero di pin (o il nome che gli abbiamo assegnato) di cui setteremo il comportamento;
- modalità indica in che modo sarà configurato il pin indicato, ossia se in ingresso o in uscita.
Un pin più essere configurato attraverso le costanti INPUT e OUTPUT.
Un pin configurato in modalità INPUT avrà un'alta impedenza, consentendo e facilitando la lettura dei dati prelevati da un sensore. Lavorando su pin digitali, un pin configurato come INPUT accetterà in entrata solo due tipi di valori: alto e basso, o, più nel dettaglio, può ricevere rispettivamente 5V o 0V. Per prevenire risultati fluttuanti che altererebbero i risultati, vengono utilizzati le resistenze per collegare pulsanti e interruttori.
pinMode(10,INPUT) //configuriamo il pin 10 come INPUT
La scheda Arduino integra comunque resistori pull-up da 50KOhm che possono essere attivati utilizzando la modalità "INPUT_PULLUP".
pinMode(pulsante,INPUT_PULLUP) //configuriamo il pin definito "pulsante" come input, attivando la resistenza di pullup
Un pin configurato con modalità OUTPUT, e quindi in uscita, ha una bassa impedenza, consentendo quindi al pin di fornire corrente ai circuiti collegati. Anche in questo caso, il valore potrà essere solo alto o basso.
pinMode(luce,OUTPUT) //configuriamo il pin "luce" come OUTPUT
Un pin analogico, a differenza di quello digitale, non necessità di essere configurato, almeno che non volessimo utilizzarlo come se fosse un pin digitale (e quindi in grado di ricevere/inviare solo valori alti o bassi).
pinMode(A0,OUTPUT) //configuriamo il pin analogico A0 e lo utilizziamo come un pin digitale in uscita