Salve a tutti. Da un po di tempo sono attivo su questo forum che mi sta aiutando ad affacciarmi al mondo di arduino ma spesso incontro delle difficoltà.
In pratica stavo facendo alcune prove per comandare l'accensione e lo spegnimento delle luci da una pagina html e fino a qui tutto bene.
Questo codice,però, nell'uso quotidiano è sostanzialmente inutile poichè se io accendo la luce attraverso il normale interruttore la pagina web non mi segnala il cambio di stato.
Facendo varie prove mi è stato collegato un sistema per far ricevere ad arduino attraverso un dei fili ed un relè, (i collegamenti sono esatti non rispondetemi parlandomi della parte hardware anche perchè negli intrecci di fili non capisco molto preferisco la parte software) un input con cui io posso sapere se la luce in questione è accesa o spenta.
Ho scritto un breve sketch di prova che mi crea una pagina web con scritto "ACCESO" se la luce è accesa o "SPENTO" se la luce è spenta. Vorrei solo che qualcuno mi dicesse se sto imboccando la strada giusta o sto sbagliando tutto (posto lo sketch qui sotto). Tengo a precisare che non posso provarlo su arduino per problemi temporanei e quindi chiedo aiuto a voi.
Non mi esprimo circa la parte web, non sono competente.
Ti posso però dire che non si mette la lettura di un pin nelle impostazioni globali.
Lì dichiari solo il tipo di pin47.
Poi, DOPO il pinMode, metti il digitalRead.
Il tuo codice funziona solo perché tutti i pin quando il micro viene avviato sono impostati come input. Ma se prendi questo come il modo corretto di fare le letture, potresti poi avere dei problemi non comprensibili su sketch futuri.
Grazie della risposta quindi nelle impostazioni globali devo dichiarare la variabile e dopo pinMode(47,INPUT) metterò nomevariabile = digitalRead(47).
Questa è la scrittura corretta?
@Laggyman:
sei pregato di includere il codice usando gli appositi tag.
Non hai per caso notato che ho dovuto editare anche il primo post per sistemarlo? ]
Scusa non lo avevo notato perchè ho scritto il post da PC poi ti ho risposto da cellulare e pensavo che su cellulare non visualizzasse la codifica scritta in questo modo poi,evidentemente hai modificato il post e ,tornato su PC, mi sono convinto della mia tesi comunque in futuro sarò più attento.
Ma a parte questo, il codice ora è corretto?
La lettura del pin la devi fare tutte le volte che ti occorre.
Ad esempio, fatta nel setup, significa che poi per tutta la vita del programma quella lettura rimane "fossilizzata".
Se devi controllare un certo pin per compiere determinate azioni, fai sempre la digitalRead al momento del bisogno.
Quindi in start() io metterei:
server.httpSuccess();
pin47 = digitalRead(47);
if ( pin47 ==HIGH);
ecc...