Hashtag più usati
1 | #include |
2 | #drone |
3 | #dlcitalia |
4 | #ets2 |
5 | #eurotrucksimulator2 |
6 | #arduino |
7 | #youtube |
8 | #aukey |
9 | #xiaomi |
Ultimi argomenti attivi
» Comunicazione termine servizio Arduino BT ControlDa Admin Mar Mag 10, 2022 12:55 pm
» Robot aspirapolvere per Alexa: Dreame D9
Da Admin Mar Feb 09, 2021 9:42 am
» Come costruire un robot smart con Arduino
Da Admin Mar Nov 17, 2020 12:15 pm
» TOPPS Trading Cards Match Attax Champsion League/Europa League 2020/21
Da Admin Mar Nov 10, 2020 3:21 pm
» Guida per utilizzare Arduino BT Control v1.2
Da Admin Gio Lug 09, 2020 12:01 pm
» Recensione Umidigi A3 Pro - Smartphone sotto i 100€
Da Admin Gio Apr 04, 2019 12:22 pm
» [Arduino] aiuto programma
Da Glak Mar Mar 12, 2019 9:30 am
» ERRORE NELLA COMPILAZIONE NEXTION
Da papat Mar Feb 26, 2019 7:11 am
» Comandare la Smart TV con Alexa senza broadlink (gratis)
Da Admin Mar Feb 19, 2019 4:31 pm
I postatori più attivi del mese
Nessun utente |
Come ragionare per programmare con Arduino
Come ragionare per programmare con Arduino
Per comprendere il Wiring (il linguaggio di programmazione di Arduino), è necessario a mio parere iniziare a comprendere il funzionamento del linguaggio C/C++. In questo post andremo a vedere come ragionare per comprendere come funziona l'IDE di Arduino.
Per prima cosa guardiamo bene la struttura di come deve essere il codice:
IN ALTO DICHIARIAMO I LIBRERIE, PIN E LE VARIABILI | |
void setup () { } | In questa parte impostiamo i nostri componenti ed attiviamo servizi come il serial monitor. Nella maggior parte delle volte qui troviamo se il nostro componente è un INPUT/OUTPUT |
void loop() { } | In questa funzione andiamo a inserire tutte le istruzioni che devono ripetersi all'infinito |
Per quanto riguarda la prima parte non c'è un vero e proprio ordine. Dobbiamo ricordarci solamente di inserire prima di tutto le librerie e poi dichiarare i PIN e le variabili. Per queste ultime due l'ordine è indifferente.
Per quanto riguarda il "setup" inseriamo tutte le impostazioni necessarie per dichiarare INPUT/OUTPUT e per attivare servizi come il "Serial Monitor". In questo caso non è necessario un ordine in quanto è indifferente.
Per la funzione "loop" invece bisogna inserire tutte le istruzioni che Arduino deve eseguire. In questo caso è necessario fare in modo che le istruzioni siano in ordine. Appunto il nostro Arduino leggerà la prima riga di istruzione, la eseguirà, passerà alla prossima e così via.
Facciamo un esempio concreto di due semafori di un incrocio (perpendicolari tra loro). Per realizzarlo ci serviranno 6 LED (tralasciando gli altri componenti elettronici e facendo finta di avere già collegato tutto ad Arduino).
NB: Il codice è commentato. Tutto quello che segue a "//" è un commento.
- Codice:
//Come spiegato nella guida, dichiariamo tutti i PIN
//necessari per "battezzarli" con un nome.
int ledv1=2; //Il PIN 2 corrisponde al led verde del semaforo 1.
int ledg1=3; //Il PIN 3 corrisponde al led giallo del semaforo 1.
int ledr1=4; //Il PIN 4 corrisponde al led rosso del semaforo 1.
int ledv2=5; //Il PIN 5 corrisponde al led verde del semaforo 2.
int ledg2=6; //Il PIN 6 corrisponde al led giallo del semaforo 2.
int ledr2=7; //Il PIN 7 corrisponde al led rosso del semaforo 2.
void setup() { //Impostiamo i nostri PIN come Output/Input.
pinMode(ledv1, OUTPUT); //Dichiariamo questo LED come OUTPUT
pinMode(ledg1, OUTPUT); //Dichiariamo questo LED come OUTPUT
pinMode(ledr1, OUTPUT); //Dichiariamo questo LED come OUTPUT
pinMode(ledv2, OUTPUT); //Dichiariamo questo LED come OUTPUT
pinMode(ledg2, OUTPUT); //Dichiariamo questo LED come OUTPUT
pinMode(ledr2, OUTPUT); //Dichiariamo questo LED come OUTPUT
//Perché i led sono output? Perché non inviano dati
//ad Arduino ma avviene esattamente il contrario.
//Arduino invia dati al led per accendersi.
}
void loop() { //Indichiamo ad Arduino la sequenza delle istruzioni
//Blocco 1 di istruzioni da eseguire.
digitalWrite(ledr1, HIGH); //Il semaforo 1 ha il rosso attivato.
digitalWrite(ledv2, HIGH);//Il semaforo 2 ha il verde attivato.
//Fine blocco istruzioni.
delay(5000); //Tempo di attesa per eseguire il primo blocco.
//Blocco 2 di istruzioni da eseguire.
digitalWrite(ledv2, LOW); //Il semaforo 2 disattiva verde.
digitalWrite(ledg2, HIGH); //Il semaforo 2 attiva giallo.
delay(2000); //Tempo di attesa per eseguire il secondo blocco.
digitalWrite(ledg2, LOW); //Il semaforo 2 disattiva giallo.
digitalWrite(ledr1, LOW); //Il semaforo 1 disattiva rosso.
digitalWrite(ledr2, HIGH); //Il semaforo 2 accende rosso.
digitalWrite(ledv1, HIGH); //Il semaforo 1 attiva verde.
delay(5000); //Tempo di attesa per eseguire il terzo blocco.
digitalWrite(ledv1, LOW); //Il semaforo 1 disattiva verde.
digitalWrite(ledg1, HIGH); //Il semaforo 1 attiva giallo.
delay(2000); //Tempo di attesa per eseguire il quarto blocco.
digitalWrite(ledg1, LOW); //Il semaforo 1 disattiva giallo.
digitalWrite(ledr2, LOW); //Il semaforo 1 disattiva rosso.
//Arduino ritorna a eseguire nuovamente il blocco uno di istruzioni
//per poi passare al successivo.
}
Argomenti simili
» NUOVA IDE 1.6.10 ARDUINO
» IDE Arduino per programmare la scheda
» E' uscito IDE Arduino 1.6.8
» NUOVA IDE ARDUINO 1.6.11
» programma arduino
» IDE Arduino per programmare la scheda
» E' uscito IDE Arduino 1.6.8
» NUOVA IDE ARDUINO 1.6.11
» programma arduino
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.