Go Down

Topic: Pin input non va. (Read 1 time) previous topic - next topic

Stilita

Ciao, in un programma mi ero bloccato su un punto, dovevo leggere lo stato di un pin
e fare qualche cosa...
Il pin(0) digitale da leggere l'ho dichiarato INPUT, ma non ha funzionato, mentre se lo dichiaro
OUTPUT funziona; ho obliato qualcosa?

Riporto lo scketch in questione, non funzionate.Ciao
Code: [Select]
void setup() {
pinMode(0,INPUT);
pinMode(1,OUTPUT);
digitalWrite(0,LOW);
digitalWrite(1,HIGH);
}

void loop() {
  if (digitalRead(0)==1){digitalWrite(1,LOW);}
  delay(1);
}
...non sapete quanto ho cercato...pfui pfui
prima di rivolgermi al forum...

gpb01

#1
Mar 30, 2017, 02:26 pm Last Edit: Mar 30, 2017, 02:32 pm by gpb01
1. hai messo la resistenza di pull-up/pull-down sul pin o lo hai lasciato flottante ?

2. magari nell'IF aggiungi anche una condizione "else" così puoi commutare nei due versi l'output ;)

Guglielmo

P.S.: In ogni caso ... ma perché usare i pin 0 ed 1, che sono quelli usati dalla seriale, perdendo così la possibilità di fare debug ? :o :o :o
Search is Your friend ... or I am Your enemy !

mentorade

Per funziona che cosa intendi? che tipo di prove hai fatto?

Stilita

1. hai messo la resistenza di pull-up/pull-down sul pin o lo hai lasciato flottante ?

2. magari nell'IF aggiungi anche una condizione "else" così puoi commutare nei due versi l'output ;)

Guglielmo

P.S.: In ogni caso ... ma perché usare i pin 0 ed 1, che sono quelli usati dalla seriale, perdendo così la possibilità di fare debug ? :o :o :o
Si ho messo le resistenze, ora ho cambiato i pin, con 2 e 3 e funziona sia con INPUT che con OUTPUT
e senza altre modifiche.
Può essere che i pin 0 e 1 sono tx e rx e creano l'inghippo?
Se fosse così c'è bisogno di qualche altra istruzione per farli diventare meri pin digitali?

Ciao  :)
...non sapete quanto ho cercato...pfui pfui
prima di rivolgermi al forum...

gpb01

#4
Mar 30, 2017, 02:42 pm Last Edit: Mar 30, 2017, 02:42 pm by gpb01
Può essere che i pin 0 e 1 sono tx e rx e creano l'inghippo?
Se fosse così c'è bisogno di qualche altra istruzione per farli diventare meri pin digitali?
... no, purché, ovviamente, NON si attacchi nulla alla USB ... altrimenti vengono impegnati dal ATmega16U2 che fa da convertitore USB <-> Seriale e che è direttamente connesso ad essi.

Consiglio spassionato ... lasciali sempre liberi che la porta seriale, per fare debug, serve sempre ... ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

Stilita

Per funziona che cosa intendi? che tipo di prove hai fatto?
Ho messo il classico led, e\o il voltmetro.
Come detto credo siano i pin seriali che influiscono, perchè solo cambiando i pin senza modifiche ulteriori
funziona come da manuale...
...non sapete quanto ho cercato...pfui pfui
prima di rivolgermi al forum...

Stilita

... no, purché, ovviamente, NON si attacchi nulla alla USB ... altrimenti vengono impegnati dal ATmega16U2 che fa da convertitore USB <-> Seriale e che è direttamente connesso ad essi.

Consiglio spassionato ... lasciali sempre liberi che la porta seriale, per fare debug, serve sempre ... ::)

Guglielmo
Ho staccato il cavo usb, ma non funziona lo stesso, perchè probabilmente mi vado ad interfacciare con i led
tx e rx che sono montati su Nano, però mi sembra castrante non poter usare a pieno 2 pin che sono
dichiarati anche come digitali e non solo seriali.
Comunque terrò presente il tuo consiglio di lasciarli liberi, però mi sembra strano che con la
dichiarazione OUTPUT le istruzioni vengano eseguite bene...bah!

Grazie
...non sapete quanto ho cercato...pfui pfui
prima di rivolgermi al forum...

gpb01

#7
Mar 30, 2017, 03:15 pm Last Edit: Mar 30, 2017, 03:15 pm by gpb01
Ho staccato il cavo usb, ma non funziona lo stesso, perchè probabilmente mi vado ad interfacciare con i led
tx e rx che sono montati su Nano
In che senso scusa ? Che collegamenti hai ?

... però mi sembra castrante non poter usare a pieno 2 pin che sono dichiarati anche come digitali e non solo seriali.
... usare si possono usare, purché NON si usi la Seraile in nessun modo !

Guglielmo
Search is Your friend ... or I am Your enemy !

Stilita

#8
Mar 30, 2017, 03:40 pm Last Edit: Mar 30, 2017, 04:34 pm by Stilita
Ho staccato il cavo usb e l'ho fatto andare solo con con i 5 volt esterni, proprio per essere sicuro di non apportare interferenze, ma non va lo stesso, perchè ho capito che sono i led montati sulla seriale che interferiscono con la logica.
Si naturalmente se si usano i pin della seriale come digitali non devono fare altro, naturalmente.

PS: guardato lo schema elettrico di Nano, esattamente ci sono 2 resistenze che collegano
i pin seriale all'integrato che che s'interfaccia con l'Usb, quindi da come si è detto quando
si usano questi 2 pin bisogna fare attenzione perchè il pin0 ha una bassa impedenza.

Ciao
...non sapete quanto ho cercato...pfui pfui
prima di rivolgermi al forum...

Go Up