Saalve a tutti ragazzi, ho un problema, in pratica ho bisogno di leggere lo stato di un pin digitale con la funzione digitalRead(PIN); ma quando leggo lo stato e lo stampo in seriale quando passa corrente, stampa 1111111111111... quando non passa stampa 1110111011101110101011111110... cioe' stampa a volte uno 0 e poi ancora uno anche SENZA corrente.. L'unica cosa che posso pensare e che la scheda puo' essere difettosa oppure l'ho maledettamente rovinata senza accorgermene (in tutte le alte operazioni funziona normalmente) o boh.. HELP hahah
No ragazzi calma, l'importante è che non tenti di far passare la corrente attraverso il suo corpo come l'utente della breadboard + 220 + fase in comune con la massa di arduino ;D
KirisoSP:
Saalve a tutti ragazzi, ho un problema, in pratica ho bisogno di leggere lo stato di un pin digitale con la funzione digitalRead(PIN); ma quando leggo lo stato e lo stampo in seriale quando passa corrente, stampa 1111111111111... quando non passa stampa 1110111011101110101011111110... cioe' stampa a volte uno 0 e poi ancora uno anche SENZA corrente.. L'unica cosa che posso pensare e che la scheda puo' essere difettosa oppure l'ho maledettamente rovinata senza accorgermene (in tutte le alte operazioni funziona normalmente) o boh.. HELP hahah
Un saluto a tutti >Kiriso<
Non è che si capisca molto. E' noto che un pin di Arduino NON può essere lasciato senza collegamento. Come detto sopra da @Guglielmo, essendo ad alta impedenza, sente qualsiasi interferenza, indi passa 0 a 1 a casaccio.
@Kiriso, un suggerimento. Bene se sai programmare, ma devi imparare anche un pò di elettronica. Altrimenti rischi di friggere Arduino. Leggi un buon libro di introduzione all'elettronica.
Grazie a tutti per le risposte, non sapevo che le porte dell'arduino di default fossero in uno stato di alta impedenza, comunque scusate tanto per il linguaggio, non ho tanta familiarita' con l'elettronica e solo adesso sto iniziando a capirci veramente qualcosa. Grazie ancora, un saluto a tutti ragazzi >Kiriso<
Questo vale sia che sia "fasullo", sia che sia "originale".
Se fai il digitalread su una porta scollegata, rischi di leggere 1 e 0 a caso.
Quindi devi usare come ti hanno detto una resistenza di pull-down.
Il resistore sopra indicato serve a "forzare" uno stato 0 quando la porta è scollegata.
Va bene un 10 k fra la porta e GND.
Si chiama "pull-down" proprio per questo, porta giù il valore verso lo 0.
Quando invii invece +5 V alla porta, leggerai il valore 1.
Il procedimento inverso è il pull-up.
Metti il resistore fra la porta e + 5V.
La porta è forzata a leggere 1 quando è scollegata.
Se la porti a GND invece leggerai 0.