utilizzo pin 0 e 1

Salve a tutti,
innanzitutto un grande complimento per il sito e il progetto in se, sono riuscito a fare una centralina di controllo temperatura senza sapere praticamente niente di elettronica.

mi trovo ora ad aver quasi ultimato il progetto (il prototipo su breadboard), utilizzando un arduino uno, l'unico problema è che necessito di utilizzare come digitalinput (proveniente da un pulsante) il pin 0 o l'1.
ho visto che essi sono usati come pin per la trasmissione di dati, ma seguendo la documentazione c'è scritto che tutti i 14 pin dell'Uno possono essere usati e che alcuni hanno ANCHE una specializzazione.

se io provo a caricare il progetto (dove ho messo come digitalinput del pulsante il pin 1), mentre il programma gira, se schiaccio il pulsante non succede niente.

ho pensato pure che magari fosse l'ide che tenesse aperto il pin mentre l'arduino è collegato al pc tramite usb (che mi fornisce l'alimentazione), ed ho provato quindi ad alimentare il tutto sempre tramite usb ma con un alimentatore esterno (caricabatterie del cellulare), ma ancora niente.

come posso fare ad utilizzare uno di questi due pin per ricevere la risposta del pulsante?

ps: il pinmode già lo faccio nell'esecuzione del programma

grazie, Davide

  1. anche le entrate analogiche posso essere usate come pin Digitali; diventano pin 14 a 19.
  2. se attacchi qualcosa ai pin 0 e 1 non ti funzionerá piú la seriale. Se non atacchi un computer per spedirgli o ricevere dati non é un problema.
    L' unico problema é che non riusirai piú a caricare programmi sul Arduino.

se io provo a caricare il progetto (dove ho messo come digitalinput del pulsante il pin 1), mentre il programma gira, se schiaccio il pulsante non succede niente.

Se non usi la seriale dovrebbe funzionare; hai fatto un errore di programmazione?

ho pensato pure che magari fosse l'ide che tenesse aperto il pin mentre l'arduino è collegato al pc tramite usb (che mi fornisce l'alimentazione), ed ho provato quindi ad alimentare il tutto sempre tramite usb ma con un alimentatore esterno (caricabatterie del cellulare), ma ancora niente.

Potrebbe essere un problema per il PIN0 non per il PIN1 ma meglio essere cauti.

Hai messo una resistenza di pullup o pulldown? o attivata quella interna?

Manda lo sketch

Ciao Uwe

uwefed:

  1. anche le entrate analogiche posso essere usate come pin Digitali; diventano pin 14 a 19.

ah..figo allora, e come mi ci riferisco? attualmente uso un numero per le digitali e la A come prefisso per le analogiche, ad esemprio il pin digitale 14 (ossia immagino la A0 analogica) come la vedrei da "sketch"?

  1. se attacchi qualcosa ai pin 0 e 1 non ti funzionerá piú la seriale. Se non atacchi un computer per spedirgli o ricevere dati non é un problema.
    L' unico problema é che non riusirai piú a caricare programmi sul Arduino.

nessun problema, c'è l'lcd apposta e il progetto prevede la costruzione di una pcb apposita, quindi l'atmega andrà rimosso dallo zoccolo una volta programmato e inserito sulla pcb dedicata

argaar:
se io provo a caricare il progetto (dove ho messo come digitalinput del pulsante il pin 1), mentre il programma gira, se schiaccio il pulsante non succede niente.

Se non usi la seriale dovrebbe funzionare; hai fatto un errore di programmazione?

mmm forse è qui il problema, io la seriale non la uso in senso che è scollegata, ma nello sketch c'è sia l'apertura della porta che l'invio di testo tramite essa (la usavo prima di avere l'lcd e pensavo di poterla lasciare attiva...in effetti non avevo pensato a questa cosa

argaar:
ho pensato pure che magari fosse l'ide che tenesse aperto il pin mentre l'arduino è collegato al pc tramite usb (che mi fornisce l'alimentazione), ed ho provato quindi ad alimentare il tutto sempre tramite usb ma con un alimentatore esterno (caricabatterie del cellulare), ma ancora niente.

Potrebbe essere un problema per il PIN0 non per il PIN1 ma meglio essere cauti.

Hai messo una resistenza di pullup o pulldown? o attivata quella interna?

Manda lo sketch

Ciao Uwe

nessuna resistenza...dovrei? da quanto?
lo sketch è un po' lungo, se serve lo posto, altrimenti lo taglio riportando solo la parte "incriminata"

wow, ho messo il pulsante su un entrata analogica e l'ho letta come se fosse una digitale, semplicemente continuando la numerazione (A0=14, A1=15,A2=16,etc...) e funziona....in effetti ho visto ora che secondo questo schema

i pin analogici sulla destra riportano anche la dicitura PCINT che immagino sia la possibilità di essere digitali.

resta da capire come usare il pin 0 o l'1 però diciamo che comunque per questo progetto ho risolto..

grazie per il suggerimento Uwe

Per i pin analogici l'IDE mette a disposizione delle comode variabili A0, A1 ecc...

Per quanto riguarda l'uso dei pin 0 e 1, tu stesso hai detto che stai usando la seriale nel tuo sketch: mi pare quindi normale che non riesca ad usare quei pin dato che li "affitta" la libreria seriale stessa.

argaar come dicevi tu

ma seguendo la documentazione c'è scritto che tutti i 14 pin dell'Uno possono essere usati e che alcuni hanno ANCHE una specializzazione

i pin analogici sono normali pin digitali che "in più" hanno collegato un ADC, ovvero un convertitore analogico digitale.

leo72:
Per i pin analogici l'IDE mette a disposizione delle comode variabili A0, A1 ecc...

Per quanto riguarda l'uso dei pin 0 e 1, tu stesso hai detto che stai usando la seriale nel tuo sketch: mi pare quindi normale che non riesca ad usare quei pin dato che li "affitta" la libreria seriale stessa.

infatti non ci avevo pensato che dato che la usavo nello sketch non potevo usarli, pensavo bastasse staccare il collegamento pc->arduino
però ho provato anche a commentare tutta la parte riguardante la seriale e ricaricare il tutto...ma senza successo.

vorrei arrivare a capire come usarli correttamente, ma almeno grazie ad Uwe che mi ha suggerito l'uso degli analogici in modalità digitale sono riuscito a completare il tutto.

mi riprometto di fare altri test una volta smontata la breadboard, ho finito lo spazio per ora :smiley:

grazie a tutti per il momento...resto stupito da quanto questa schedina sia strabiliante, almeno ai miei occhi di profano

argaar:
nessuna resistenza...dovrei? da quanto?
lo sketch è un po' lungo, se serve lo posto, altrimenti lo taglio riportando solo la parte "incriminata"

Con un pulsante , quando é azionato porta la tensione di 0V se il pulsante é collegato a massa (oppure 5V se il pulsante é collegato a +5V ) all'entrata. Se il pulsante non é premuto cosa legge l'entrata? Devi dare una tensione senó leggi valori casuali.
Per questo metti una resistenza di 10kOhm a 100kOhm dall entrata verso +5V ( oppure nel altro caso verso massa). Questo fa leggere l' entrata un valore definito.
Nel Arduino ci sono delle resistenze verso +5V che si possono accendere.
si accendono se scivi su un uscita HIGH
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors
vedi http://arduino.cc/en/Tutorial/DigitalPins

Ciao Uwe