Go Down

Topic: Menu con lcd (Read 5095 times) previous topic - next topic

Hola que tal a todos soy nuevo en esto y busco un poco de informacion con este tema.
Necesito una manera de manejar un menu con una lcd y arduino para unsistema de control de temperatura higrometro etc.. de momento lo unico que tengo es esto y se que no es la mejor manera me podriais informar un poco gracias
Code: [Select]




int menu;
int salida;
int fotocelda;
int Temperatura;
int anal = A1;
int sonda =0;   
String AnuncioMenu;

void Estado();
void Anuncio();
void Menu();



#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


void setup(){
  pinMode      (1,INPUT);
  pinMode    (13,OUTPUT);
  pinMode     (6,OUTPUT);
  lcd.begin       (16,2);
  digitalWrite (15,HIGH);
   
}

  void loop(){
    sonda=analogRead(anal);
    sonda=(5.0*sonda*10.0)/1024.0;
    menu=analogRead (0);
    menu=map (menu,0,1023,0,4);
   
      if (sonda>=31){
     
      digitalWrite(salida,HIGH);
      lcd.setCursor(5, 1);
      lcd.print ("on");
    }
   
    else {
      digitalWrite(salida,LOW);
      lcd.setCursor(5, 1);
      lcd.print ("off");
    }
   
    switch  (menu){
     
      case 0:
      AnuncioMenu = "Driftwr 2000";
      Menu();
      Anuncio();
      break;
     
      case 1:
      AnuncioMenu = "Temperatura";
      Menu();
      salida =9;
      Temperatura = sonda;
      lcd.setCursor(1,1);
      lcd.print(Temperatura);
      break;
     
      case 2:
      AnuncioMenu = "led";
      Menu();
      salida = 13;
      Estado ();
      break;
     
      case 3:
      AnuncioMenu = "buzzer";
      Menu();
      salida = 6;
      Estado ();
      break;
     
      case 4:
      AnuncioMenu = "Fotocelda";
      Menu();
      fotocelda = analogRead (2);
      lcd.setCursor(0,1);
      lcd.print(fotocelda);
      break;
     
   
     
   
     
    } 
    delay (300);
    lcd.clear();
  }
  void Menu (){
    lcd.setCursor(0,0);
    lcd.print(AnuncioMenu);
  }
  void Estado() {
    int buton = digitalRead (15);
   
    if (buton == HIGH) {
     
      digitalWrite(salida,HIGH);
      lcd.setCursor(6, 1);
      lcd.print ("on");
    }
   
    else {
      digitalWrite(salida,LOW);
      lcd.setCursor(6, 1);
      lcd.print ("off");
    }
  }
    void Anuncio() {
       lcd.setCursor(3, 1);
       lcd.print ("Puls Next");
    }
   


   

Igor R

Hola,

La manera que a mi más me gusta y que uso,  es creando una máquina de estados.
Yo uso esta librería que me hice para ésto... https://github.com/IgorReal/SECUduino/tree/master/FSM%20Library
La máquina de estados se puede hacer de varias formas... a gusto de consumidor!!

Saludos


Igor

Gracias por la informacion pero no me funciona ese codigo

Igor R

#3
Jul 02, 2012, 06:16 pm Last Edit: Jul 02, 2012, 06:21 pm by Igor R Reason: 1
Que codigo no funciona?  Es una libreria (hay que copiarla dentro de la carpeta de las librerias, etc) y hay algunos ejemplos para ver como usarla.
Yo estoy usandola para un proyecto que manejo un lcd grafico (bueno, hice esa libreria especificamente para el tema de los menus de dicho proyecto).

La copie en la libreria y abri el ejemplo y no me funciona al compilarlo
De todos modos podrias copiarlo en el foro y explicar un poco el codigo asi aprendo un poco jajaja gracias

Igor R

http://arduino.cc/forum/index.php/topic,75826.0.html

Gracias por la informacion  ;)

AlexLPD

@Igor R

Justo estoy buscando una manera de hacer multiples menus para LCD y  he visto que has recibido buenos comentarios de las personas en el foro.

La instalare y la pruebo, gracias!!!!

Si no entiendo algo, espero no te moleste que pregunte.

 :smiley-cool:

-Alex.

surbyte

Yo te recomiendo phi menu y sería conveniente que no respondas viejos mensajes. Ya que si miras la última respueta fue de  Jul 03, 2012, 10:12 pm

Go Up