Problema con A6 e A7

Ciao a tutti!
Ho realizzato un circuito con 5 pulsanti su un solo ingresso, ma non funziona il codice. Avevo già provato il circuito e aveva funzionato correttamente, perciò vi posto il codice sperando che voi possiate aiutarmi.
Ho connesso il display ai pin A0-A5 e il pulsante su A7.

#include <LiquidCrystal.h>

LiquidCrystal lcd(14,15,16,17,18,19);

void setup() 
{
  lcd.begin(16,2);

}

void loop() 
{
  int valore= analogRead(21);
  lcd.setCursor(1,1);
  lcd.print(valore);

  delay(500);
}

Di che Arduino/MCU stai parlando ? ? ?

Guglielmo

Arduino Nano V 3.3

Hai messo un pull-up/down?

Sugli ATmega328P i pin A6 ed A7 sono SOLO ed ESCLUSIVAMNETE analogici, contrariamente ad A0 .. A5, quindi NON puoi usarli come input digitale.

Guglielmo

Ho usato questo schema
http://cdn.instructables.com/F8X/QWC3/G1BBBYQT/F8XQWC3G1BBBYQT.LARGE.jpg

Ma quindi su A7 NON c'è un pulsante (un segnale digitale), c'è un segnale analogico dato da quei partitori ...
... quindi devi leggerlo con analogRead().

Guglielmo

Ma nello sketch sopra infatti ha correttamente usato analogRead()...

SukkoPera:
Ma nello sketch sopra infatti ha correttamente usato analogRead()...

Ops ... m'era sfuggito ... :grin: ... Grazie :slight_smile:

Beh, quindi allora, se ha rispettato i valori dello schema, dovrebbe funzionare e dovrebbe avere un valore diverso per ogni tasto premuto.

Guglielmo

**>Mattia9914: ** fai una cosa ... per verificare che quel pin funzioni ... prendi un potenziometro e collegalo una estremità a GND e l'altra estremità a +3.3V mentre il centrale lo colleghi al pin A7.

Se il pin funziona, girando il potenziometro dovresti vedere i valori cambiare.

Guglielmo

Ho provato con il potenziometro e il pin funziona. Poi ho provato con il circuito e con la stampa a monitor seriale invece che a LCD e funzionava comunque. Adesso, provandolo con il display non funziona. Che sia l'utilizzo dei pin analogici per il display ad essere errato?

Separa i problemi ...
... verificato che la parte lettura analogica funziona, lascia stare per un attimo il tuo programma e uso uno dei vari programmi di esempio per gli LCD ... e verifica che riesci a falo funzionare. capito dove è il problema, poi è un attimo mettere assieme le due cose :wink:

Guglielmo

P.S.: ... ma perchè usate sempre questi LCD che occupano così tanti pin e non prendete invece la versione I2C e con 2 pin ve la cavate ? ? ? :o

gpb01:
P.S.: ... ma perchè usate sempre questi LCD che occupano così tanti pin e non prendete invece la versione I2C e con 2 pin ve la cavate ? ? ? :o

Sante parole :slight_smile:

Che sia l'utilizzo dei pin analogici per il display ad essere errato?

Non è l'uso dei pin analogici il problema ( visto che da A0-A5 funzionano anche come comuni digitali ) sarà di sicuro errato il collegamento al display

>Mattia9914: ... non è che hai fatto il collegamento con i soliti fili "jumper" infilati nei buchi e NON saldati ? ? ?

Guglielmo

Il display funziona e ho saldato tutto su una millefori. Ironicamente il circuito funzionava con un Arduino UNO e breadboard.

Problema risolto!
Era semplicemente un jumper che faceva contatto con una pista diversa.

Grazie comunque