Wiki Info
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Ricerca Avanzata
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti attivi
» Comunicazione termine servizio Arduino BT Control
Da 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

Andare in basso

Come ragionare per programmare con Arduino Empty Come ragionare per programmare con Arduino

Messaggio Da Admin Mar Set 29, 2015 2:43 pm

Come ragionare per programmare con Arduino Arduin10

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.
}

Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4370
Crediti Crediti : 12173
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 25

https://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.