Ragazzi ho un enorme problema.
Il mio arduino inizia a dare di matto.... se io imposto un pin digitale come OUTPUT questo mi da corrente sia che sia in HIGH sia che sia in LOW. Inoltre, secondo me, anche i pin settati come INPUT me li segna sempre come HIGH.
Quindi le opzioni sono due:
O arduino è da cestinare...
O io non so più come programmare...
datemi una mano... idee? può essere che sie partito l'atmega328?
come faccio a capire se il problema è lui ?
Allora vi spiego... Alcuni pin (secondo me) funzionano... perche facendo andare uno schermo lcd che mi utilizza 4 pin digitali funziona... Pero stavo provando a far funzionare un tastierino 4*4 e niente non funzionava... Allora ho scritto un codice veloce... Ho settato il pin 2 come input... E il pin 13 come output
E ho messo una if che, se il pin 2 riceve corrente (e ció lo facevo collegando il pin 2 ai 5 v) mi doveva accendere il pin 13... Bhe qualsiasi cosa facessi... Appena accendevo la scheda il pin 13 (sia con un led esterno che con il led integrato nella arduino uno) si accendeva... Diventando più luminoso se collegavo il pin 2 ai 5v
Sicuramente questo può essere un problema, per questo chiedevo lo schema.
Però se dice che i led sono accesi e dando il segnale al pin la luminosità aumenta, mi viene da pensare che sul pin 13 all'inizio venga attivata la pull-up interna, che riesce a far illuminare leggermente i led, per questo pensavo ad un errore di codice e chiedevo anche lo sketch.
Allora ho provato a caricare il blink e funziona alla perfezione su tutti i pin... mi sa che ieri sera ho scritto qualche porcata allora...
mi sorge una domanda... se va bene come stò cercando di affrontare il problema
io ho un tastierino numerico 4x4 (costruito da me su imitazione di quello di robotitaly) da pilotare con 8 pin: 4 per le colonne e 4 per per righe.
Io pensavo di fare una funzione del genere
in modo che ala fine la funzione mi ritorni un numero di due cifre dove la prima cifra mi indica la riga e la seconda la colonna, ad esempio 23 = riga 2 colonna 3 = numero 6
O hai scritto del codice errato oppure ci sono dei falsi contatti nella tastiera che hai costruito.
La logica mi pare corretta, anche se così facendo leggi sempre l'ultimo pulsante premuto in caso l'utente si diverta a premerne più di uno contemporaneamente perché non hai messo un'uscita forzata alla prima lettura positiva.
il risultato è che spesso, tastiera connessa oppure no, il led 13 di arduino emette una quasi impercettibile luce dal led del pin 13 inserito sulla board. poi magari muovo un po la board e la luce si spegne, attacco la tastiera, premo un tastino e riemette questa lucina poi resta fissa, poi si spegne, a volte segue quello che premo sulla tastiera a volte va per i cavoli suoi... come se sul pin 13, nonostante il low ci fosse una corrente che va e che viene sufficientemente alta da permettere l'accensione del pin 13 (che teoricamente è normale...) ma questo pin non si accende più di così!!
E la dichiarazione del pin 13 come OUTPUT dove la mettiamo?
Serve anche quella altrimenti non funziona ed il pin si comporta come ti ho detto, ossia attivi la pull-up interna col risultato di avere una flebile lucina dal led.
2 cose....
dichiarata e funziona.... solo che i tempi tra accensione e spegnimento del led sono di 12 secondi circa
come se impiegasse 12 secondi a fare un ciclo....
Se il codice è quello che hai messo, non vedo cose che possono generare un tale ritardo. Pubblica lo schema del circuito e ricontrolla la tastiera: non vorrei tu avessi qualche falso contatto.
ormai ho abbandonato la tastiera e utilizzavo un semplice contatto volante.... può essere che arduino sia diventato "super sensibile"?
mi spiego meglio io ho modificato il codice lasciando un contatto in input(il 7) e 2 in output( 13 e 3)
se collego con un cavetto 3 e 7 mi si accende il led per 7 secondi, ma il problema è un'altro se sfioro a mani libere lo strip (i buchini dove si inseriscono i fili per intenderci) all'altezza dell pin 7(quello di input) si illumina il led 13 e si spegne appena mi allontano.
o è diventato talmente sensibile da sentire le radiazioni che emetto ed illuminarsi.... oppure emetto corrente elettrica.
mi sorge una domanda.... a me un giorno fa mi è caduto arduino e mi si è staccato il chip... non è che megari lo ho montato al contrario? (mi pare assai strano ... non riuscirei ad uppare codice)
Se l'avessi montato al contrario non ti funzionava nulla, l'atmega328 non è uno specchio.
Semplicemente NON stai usando le resistenze di pull-up e quando tocchi i fili è come se mettessi gli ingressi sul LOW, quindi tranquillo che non sei improvvisamente diventato magico
Si ma non tocco nulla... tocco la plastica che isola il contatto!!!.... e poi al massimo io scaricherei a terra una piccola quantità di corrente.... e invece il 7 è in input e dovrebbe verificare che io gli stia inviando corrente..... e rimane il problema dei 7 secondi di ritardo ... adesso vado a procurarmi delle corde... mi appendo al soffitto per i piedi (così diventa materialmente impossibile che io scarichi a terra) e verifico se toccando arduino succede ancora....