Arduino Forum

International => Italiano => Software => Topic started by: Stilita on Mar 30, 2017, 02:12 pm

Title: Pin input non va.
Post by: Stilita on Mar 30, 2017, 02:12 pm
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);
}
Title: Re: Pin input non va.
Post by: gpb01 on Mar 30, 2017, 02:26 pm
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
Title: Re: Pin input non va.
Post by: mentorade on Mar 30, 2017, 02:30 pm
Per funziona che cosa intendi? che tipo di prove hai fatto?
Title: Re: Pin input non va.
Post by: Stilita on Mar 30, 2017, 02:33 pm
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  :)
Title: Re: Pin input non va.
Post by: gpb01 on Mar 30, 2017, 02:42 pm
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
Title: Re: Pin input non va.
Post by: Stilita on Mar 30, 2017, 02:45 pm
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...
Title: Re: Pin input non va.
Post by: Stilita on Mar 30, 2017, 02:53 pm
... 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
Title: Re: Pin input non va.
Post by: gpb01 on Mar 30, 2017, 03:15 pm
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
Title: Re: Pin input non va.
Post by: Stilita on Mar 30, 2017, 03:40 pm
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