Visualizza messaggio singolo
Vecchio 13 maggio 17, 19:05   #16 (permalink)  Top
aero330
User
 
L'avatar di aero330
 
Data registr.: 03-09-2012
Residenza: Gubbio-Ravenna
Messaggi: 1.771
Citazione:
Originalmente inviato da andore Visualizza messaggio
In effetti non l'avevo notato e di fatti il DHT sul codice lo segna in nero, quindi non l'ha preso in considerazione, l'ho appena tolto e funziona tutto normalmente.

La posizione degli #include non è indifferente? Se no, perchè?

Grazie anche a te nonino

Almeno quando sarà finito potrà essere di sicuro utile a qualcun'altro
Confermo quanto detto da ElNonino (anche a me era sfuggito il DHT)

La posizione degli" include" alcune volte non è casuale ma sistemata in maniera opportuna, questo perchè, facendotela corta, in alcuni file header (quelli con estensione .h per l'appunto) sono contenute variabili (o altro) che sono definite/dichiarate in altri file .h

Il discorso è più complesso ma cerco di farti un esempio molto banale e terra terra:
Lavori in pizzeria e devi recapitare delle pizze (senza mangiartele ) ad un certo Andrea, Matteo, Alessia, Marta.....tu non hai la ben minima idea di chi siano e dove abitano per cui rimani fermo dove sei

Supponi ora, lo stesso scenario, ma questa volta prima ti viene riferito che

Andrea: sta al 3 piano di via XX
Marta: via YY
Matteo: piazza ZZ
Alessia: viale TT

per cui le pizze giungeranno ai clienti perchè a priori qualcuno ti ha dato delle informazioni aggiuntive !!

Ecco, nel mondo della programmazione, avviene qualcosa di simile. Se scambi di posto due #include può accadere che il compilatore (quello che verifica la corretta sintassi del codice, detto mooooooooooolto semplicemente) si trovi a dover gestire delle situazioni in cui non ha abbastanza informazioni per proseguire il controllo del codice. Anche se queste vengono fornite a psteriori non c'è nulla da fare, vanno date prima che queste vengano utilizzate.

Non pretendo che tu abbia capito, ma spero di essermi spiegato

Per il codice che ti ho scritto:
Premessa: devi pensare l'arduino, o meglio, il microntrollore a bordo della scheda Arduino, come un robot che esegue gli ordini (istruzioni di codice) che gli dai esattamente nell'ordine in cui le scrivi. Lui le mette in pratica senza fiatare in sequenza una dopo l'altro.

All'inizio del codice si includono le librerie necessarie per poter mettere in comunicazione la scheda con i sensori/oggetti esterni, nel tuo caso sensore, display e orologio.

Poi, in genere, la dichiarazione delle variabili che andranno utilizzate nel resto del codice

Nella funzione void setup() va scritto tutto quello che serve per configurare le porte della scheda come input/output, inizializzazione delle periferiche (display, sensore...), ovvero prepare Arduino a svolgere il lavoro pesante successivamente (vedila come una sorta d riscaldamento prima della partita)

Poi la parte principale del codice (nella programmazione in genere si chiama "main") espressa dalla funzione void loop() che viene eseguita ciclicamente fino a che non si interrompe l'alimentazione dalla scheda.
E' qui dentro che va scritto tutto quello che ti passa per la testa per il tuo progetto.
Nel caso specifico, quello che ho fatto, è stato leggere il sensore e riportare su display i valori di temperatura e umidità, attendere 500ms, pulire completamente il display e scrivere queta volta il valore di data/ora, attendere 500ms, pulire il display e ricominciare da capo con temperatura ecc ecc.
In pratica non ho fatto altro che riportare il mio pensiero logico in istruzioni macchina.

Ricorda questo: non esiste un unico modo per scrivere codice, possono esserci infiniti modi, chi lo scrive in 5 righe chi in 50, funziona tutto solo che il primo ha ottimizzato

Come si fa ad acquisire tutto ciò? Esperienza

Ho risposto un po' alla tua domanda?

P.s. valida anche la struttura switch/case di Elnonino ma siccome sei a digiuno di programmazione ho fatto le cose semplici semplici
__________________
Divertirsi insieme e con poco? Prova il combat! Curtman Squadron Combat
Sito Web: https://sites.google.com/site/curtmansquadroncombat/
aero330 non è collegato   Rispondi citando