Pages: [1]   Go Down
Author Topic: Menu con lcd  (Read 3476 times)
0 Members and 1 Guest are viewing this topic.
Badajoz
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:



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");
    }
   
 

   
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged


Badajoz
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias por la informacion pero no me funciona ese codigo
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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).
« Last Edit: July 02, 2012, 11:21:06 am by Igor R » Logged


Badajoz
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Badajoz
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias por la informacion  smiley-wink
Logged

Pages: [1]   Go Up
Jump to: