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

arduino - Come ragionare per programmare con Arduino Empty Come ragionare per programmare con Arduino

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

arduino - 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à : 26

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.