LCD 2x16 interagisce con Piezo [SOLVED]

Salve a tutti, avrei un problema con l’LCD 2x16, ho montato il circuito come allegato e ho un problema quando collego il componente che genera suoni incluso nello starter kit (da ora in poi lo chiamerò solo piezo, se qualcuno sa dirmi come si chiama gliene sarei molto grato), appena il piezo emette suoni vedo sull’LCD caratteri random, la maggior parte delle volte “w”.

Ho allegato di seguito il programma che la scheda esegue

Ho un Arduino UNO con sopra uno Shield WiFi, collegato sulla breadboard ad un sensore di temperatura, un lcd, una lampada miscela colori e il piezo, avrei due domande

Come posso fare per risolvere il problema?
A cosa serve ciascuno dei pin dell’LCD? Non ho trovato documentazione su Google…

[Circuito] (L’immagine era troppo grande per il forum)

http://www.filedropper.com/20150623221743

EDIT 24/06/2015:
Programma aggiornato

Ho trovato anche le specifiche dell’LCD qui

arduino program.txt (954 Bytes)

L'immagine non si vede comunque, Filetea dice:

Sorry, but the content you are requesting cannot be found.

FileTea does not stores files in the server. They are only available while FileTea page is opened in the browser. If you are trying to download a file, it is possible that the owner removed it already, or simply closed the page.

Comunque sia, io con il mio LCD 16x2 con shield I2C YwRobot uso la LiquidCrystal_I2C e non ho problemi. Dal tuo listato vedo che usi la LiquidCrystal base quindi hai fatto tutte le connessioni come indicato nel reference di esempio. Per cui sospetto che la colpa sia di questa linea:

  pinMode(11,OUTPUT);

Il pin 11 fa parte di quelli della LiquidCrystal e non hai bisogno di settarlo. Invece sospetto che tu volessi inizializzare il pin 7, quello dell "SoundPin". Cambia quella linea in "pinMode(7,OUTPUT);" o meglio usa sempre i nomi e non i valori secchi così è meno probabile sbagliare:

  const int RPin = 8;
  const int BPin = 9;
  const int GPin = 10;
  const int SoundPin = 7;
  pinMode(RPin,OUTPUT);
  pinMode(BPin,OUTPUT);
  pinMode(SoundPin,OUTPUT);
  pinMode(11,OUTPUT);

SummonedEgar:
Salve a tutti,

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Mi sono presentato, ho cambiato il file e sostituito la linea

docdoc: L'immagine non si vede comunque, Filetea dice:

Comunque sia, io con il mio LCD 16x2 con shield I2C YwRobot uso la LiquidCrystal_I2C e non ho problemi. Dal tuo listato vedo che usi la LiquidCrystal base quindi hai fatto tutte le connessioni come indicato nel reference di esempio. Per cui sospetto che la colpa sia di questa linea:

  pinMode(11,OUTPUT);

Il pin 11 fa parte di quelli della LiquidCrystal e non hai bisogno di settarlo. Invece sospetto che tu volessi inizializzare il pin 7, quello dell "SoundPin". Cambia quella linea in "pinMode(7,OUTPUT);" o meglio usa sempre i nomi e non i valori secchi così è meno probabile sbagliare:

  const int RPin = 8;
  const int BPin = 9;
  const int GPin = 10;
  const int SoundPin = 7;
  pinMode(RPin,OUTPUT);
  pinMode(BPin,OUTPUT);
  pinMode(SoundPin,OUTPUT);
  pinMode(11,OUTPUT);

Il problema persiste...

La riga "pinMode(11,OUTPUT);" è un mio refuso nel copia/incolla del codice, l'hai tolta ossia il blocco termina con "pinMode(SoundPin,OUTPUT);"?

docdoc: La riga "pinMode(11,OUTPUT);" è un mio refuso nel copia/incolla del codice, l'hai tolta ossia il blocco termina con "pinMode(SoundPin,OUTPUT);"?

Sì ho sostituito la riga con "pinMode(SoundPin,OUTPUT);" il file è aggiornato comunque

@SummonedEgar : Se vai a vedere il reference dello shield WiFi, che tu dichiari avere montato, ti accorgi che ... ... i pin 4, 7, 10, 11, 12 e 13 sono dedicati a detto shield e, sia che tu lo usi che non lo usi, comunque sono connessi e NON vanno usati !!!

Togli lo shield WiFi e vedi come va ...

Guglielmo

Ora che ho visto l'immagine, concordo con gbp01, mi era sfuggito il discorso dello shield WiFi. Devi usare pin liberi, se ne hai. Altrimenti prenditi uno shield I2C come il mio e lo usi per l'lcd.

Ringrazio entrambi per l'aiuto fornito, purtroppo collegando tutti i pin non me ne restano a sufficienza per collegare sia il piezo che l'LCD, chiudo il post

Ok comunque per l'LCD potresti risolvere il problema con un'interfaccia I2C, oppure con un 74HC595. Vedi tu..;)