Go Down

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

driftwr

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

driftwr

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).

driftwr

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

driftwr

Gracias por la informacion  ;)

Go Up