Favoloso ARDUINO doccia multisensoriale

Salve a tutti ho acquistato la scheda arduino 2009 sto costruendo un doccia multisensoriale , ma sinceramente non riesco a programmare perche e abbastanza difficile per me vorrei avere un display che mi dice le scelte che faccio poi tre pulsanti uno avanti uno indietro e un altro di conferma deve avere 3 uscite per elettrovalvola per l’acqua e 4 uscite che azionano l’ aromaterapia e 3 uscite per i led RGB ho trovato un codice che potrebbe forse fare al caso ma non riesco ad andare avanti, ho gia fatto il circuito di potenza GRAZIE a tutti spero che qualcuno mi possa dare una mano.

questo e il display che vorrei utilizare

http://www.robot-italy.com/product_info.php?cPath=59_62&products_id=625&osCsid=84705828624e13a9f0d1552b65dbb93b

int BTN_NextProg = 2; // PIN Bottone Programma Successivo
int BTN_PrevProg = 3; // PIN Bottone Programma Precedente
int BTN_Confirm  = 4; // PIN Bottone Conferma
       
int MaxNumProg = 2;        // Costante: numero massimo di programmi definiti
 
int CurrentProg = 0;  // Programma in esecuzione
int ProgSlider = 0;   // Slider (contatore) di programmi
 
// Antirimbalzo: serve ad evitare che, durante l'arco di tempo che il pulsante è premuto,
// l'operazione venga eseguita più di una volta
boolean AntiRimbalzo1 = false;
boolean AntiRimbalzo2 = false;
boolean AntiRimbalzo3 = false;
 
void setup()
{
  Serial.begin(9600); // Inizializziamo la Seriale, la utilizzeremo per il Debug
  pinMode(BTN_NextProg , INPUT); // Input 2
  pinMode(BTN_PrevProg , INPUT); // Input 3
  pinMode(BTN_Confirm, INPUT);    // Input 4
}

void loop(){
 
      if(digitalRead(BTN_NextProg) == HIGH) // Bottone Programma Successivo Premuto
      {
            if(!AntiRimbalzo1)
            {
                  if(ProgSlider<MaxNumProg-1)
                  {
                  ProgSlider += 1;
                  }else{
                  ProgSlider = 0;
                  }
                  Serial.println("+");
                  Serial.println(ProgSlider);
                  AntiRimbalzo1 = true;
            }
      }      
 
      if(digitalRead(BTN_NextProg) == LOW) // Antirimbalzo
      {
            if(AntiRimbalzo1){
                  AntiRimbalzo1 = false;
            }
      }
 
      if(digitalRead(BTN_PrevProg) == HIGH) // Bottone Programma Precedente Premuto
      {
            if(!AntiRimbalzo2)
            {
 
                  if(ProgSlider>0)
                  {
                        ProgSlider -= 1;
                  }else{
                        ProgSlider = MaxNumProg-1;
                  }
                  Serial.println("-");
                  Serial.println(ProgSlider);
                  AntiRimbalzo2 = true;
            }
      }
 
      if(digitalRead(BTN_PrevProg) == LOW) // Antirimbalzo
      {
            if(AntiRimbalzo2){
                  AntiRimbalzo2 = false;
            }
      }
 
      if(digitalRead(BTN_Confirm) == HIGH) // Bottone Conferma Comando Premuto
      {
            if(!AntiRimbalzo3)
            {
                  CurrentProg = ProgSlider;
                  Serial.println("CMD: ");
                  Serial.println(CurrentProg);
                  // .... Continua ....
                  AntiRimbalzo3 = true;
            }
      }
 
      if(digitalRead(BTN_Confirm) == LOW) // Antirimbalzo
      {
            if(AntiRimbalzo3){
                  AntiRimbalzo3 = false;
            }
      }
 
      delay(20); // Attesa 20 ms
 
 
}

p.s. ma e possibile mettere dei pulsanti capacitivi invece che i pulsanti normali
tipo questo

http://www.robot-italy.com/product_info.php?cPath=15_50&products_id=984

grazie ancora a tutti

Per il monitor,se usi un chip i2c esterno, te la potresti cavare con tutto per 15-20 euro, al posto di 60...

federico , ma c'e la possibilita' di averlo blu con caratteri bianchi???

Si io ho uno schermo blu coi caratteri bianchi da 16x4 se non ricordo male, dovrebbe costare 16 euro, sempre se non ricordo male. Unitamente a un chip port expander i2c (da credo 3 euro) lo puoi collegare ad arduino con solo 2 fili. Puoi chiaramente mettere lo schermo lcd che piu’ ti piace e puoi collegare con 2 fili con questo modo fino a 16 lcd diversi contemporaneamente.

non ti ricordi dove li hai acquistati??

mi sai dare qualche consiglio sulla programmazione perche ancora non riesco propio a capire come scrivere il codice ho fatto un casino di ricerche ma non trovo nulla ,non e che voglio la pappa pronta ma solo capire come iniziare

p.s ma secondo te e difficile fare questo codice perche per me mi sembra una scalata impossibile.

grazie ancora per la sopportazione

Dunque, gli lcd li ho presi da un tizio polacco su ebay che e’ ottimo (ho preso molta roba da lui) che lo trovi come nome “” , per collegarlo in i2c invece devi seguire questa pagina e relativa libreria:
http://www.xs4all.nl/~hmario/arduino/LiquidCrystal_I2C/
Per il software per navigare all’interno dell’lcd come menu potrebbe essere piu’ o meno laborioso a seconda di quello che farai.
Se posso, al posto di 3 bottoni, metterei un piccolo joypad da stampato, cosi’ hai avanti, indietro, su, giu’ e click.
Poi ti servira’ un rele’ per ogni elettrovalvola, credo (non so come funzionino queste cose) e per farli scattare trovi alcuni tutorial in giro.
Infine aggiungi i led, li dipende un po’ da quanti devi metterne, che tipo di animazioni devono fare, potrebbero servirti dei led driver…

diciamo per quanto riguarda il joistik non lo posso mettere perche e sotto l'acqua e non so come impeabilizare la levetta mentre per i rele', ecc ho gia fatto una scheda di potenza dove collego tutto li praticamente vengono collegati tutti tramite transistor-swich di potenza

e bellisimo quel display..

ciao francesco ho aquistato il display e i2c espander e ho visto che sul link che mi hai mandato c'e da montare piu componenti ma mi sapresti dire dove posso trovare lo schema di collegamento per favore

Ciao, sul link che ti ho mandato nella foto si vede qualche componente extra ma puoi evitarli, resistenze del caso a parte. Lo schema di collegamento, una volta che scarichi lo libreria, lo trovi in una sottocartella di quello zip.

In particolare per semplicita' ti consiglio di collegare la retroilluminazione ai +5 senza passare per transistor (con una resistenza per evitare di bruciarlo, come fosse un led normale), mentre invece sarebbe opportuno il trimmer, per regolare al meglio il contrasto. Potrai poi cambiarlo con una resistenza fissa una volta trovato il contrasto ottimale!

Fede

Ciao Francesco

scusa mi e' arrivato il display e anche il pcf8574p ,ho provato il link che mi hai dato tu ma nulla vado a caricare lo sketch faccio la verifica ma mi dice sempre che c'e un errore . non e che tu avresti un codice per provarlo

grazie

ci sono novità a riguardo?

Che errore ti da? Hai collegato tutto giusto? Ce l'ho qui sulla mia scrivania una configurazione identica, perche' sto facendo un lavoro che prevede queste cose. Fede