collapse

* Links de Robótica

* Posts Recentes

Ligar Células de Lithium por Hugu
[Hoje às 02:00]


Encomenda Colectiva N3-2016[@Mouser - Aberta a pedidos!] por Hugu
[Hoje às 01:53]


Printer 3D barata por xmatias
[Ontem às 03:56]


Servidor por almamater
[09 de Dezembro de 2016, 21:39]


mysql server error por andre_f_carvalho
[09 de Dezembro de 2016, 18:56]


Cortar plástico ABS por msr
[05 de Dezembro de 2016, 17:27]


MOVIDO: FPV Drone Racing? por metRo_
[05 de Dezembro de 2016, 10:49]


Módulo gsm por dio123
[04 de Dezembro de 2016, 23:06]


Procuro resistências 220 Ohm de 1% por brunus
[02 de Dezembro de 2016, 15:50]


Package de cond 10uF 35V smd? por KammutierSpule
[02 de Dezembro de 2016, 11:19]

Autor Tópico: Menu num LCD Nokia 3310! - Controlar Saídas  (Lida 5331 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.707
Menu num LCD Nokia 3310! - Controlar Saídas
« em: 15 de Março de 2009, 01:04 »
Olá,
Venho aqui apresentar um exemplo de menu criado num LCD Nokia 3310 com o arduino.
Uso um potenciómetro para navegar no menu e um botão para seleccionar.

Ainda estou a comentar e organizar o código para ficar perceptível a todos :)
Depois posso também postar as ligações embora já estejam indicadas aqui: http://lusorobotica.com/index.php/topic,431.0.html

Aqui o que ando a fazer:

Fiz um esquema no Fritzing, foi a primeira vez que o testei mas não fiquei muito convencido parece-me que há coisas básicas que já deviam estar implementadas...


Eu não indiquei na imagem mas parece óbvio onde se liga o LCD :)

Agora acrescento o código, todas as linhas estão comentadas e de uma maneira que me parece perceptível a todos.
Aqui fica um excerto, o resto está em anexo!
Código: [Seleccione]
//Criação das variaveis a usar.
byte pontos[8]={0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00};                 //Este vector é o simbolo que coloco antes dos nomes, é aquela bolinha.
int ledsPinos[6]={8,9,10,11,12,13};                                       //Pinos onde estão os Leds
boolean ledsEstado[6]={false,false,false,false,false,false};              //Estado de cada Led! false para desligado, true para ligado!
char ledsNomes[6][6]={"Led 1","Led 2","Led 3","Led 4","Led 5","Led 6"};   //O nome dos leds que aparece no menu!
int pot=0;                                                                //pino do potenciometro
int botao=2;                                                              //pino do botao
int i=0;                                                                  //variavel auxiliar que vai servir para alocar a linha

void loop(){
  cursorxy(0,0);                               //Posiciona o cursor no inicio do LCD.
  pot=analogRead(0);                           // Le o valor do potenciometro na entrada 0;
  i=map(pot,0,950,0,5);                        //Mapeia o valor lido de 0 a 1023 num valor de 0 a 5 que é o numero de linhas. - Coloquei 950 em vez de 1023 porque quando carregava no botão havia um queda de tensão suficiente para passar o valor de 5 para 4.
 
  //Ligar o LED selecionado!
  if(digitalRead(2)==1){                       //Se o botão estiver pressionado...
    ledsEstado[i]=!ledsEstado[i];              //Altera-se o estado do led correspondente a linha selecionada com o potenciometro, isto é, se está "false"(falso) passa a "true"(verdade) e vice-versa...
    digitalWrite(ledsPinos[i],ledsEstado[i]);  //Escreve-se no led o seu estado, "false"(falso) ou "true"(verdade), desligado ou ligado!
    delay(250);                                //Evitar que durante o tempo em que se está a carregar no butão o código faço um ciclo, o que desligaria de novo o led!
  }
 
  //Escrever no LCD
  for(int k=0;k<6;k++){                        //Vamos correr as 6 linhas - de 0 a 5
    cursorxy(0,k);                             //Colocamos o cursor na posição 0 em x e na linha k
    for(int j=0;j<8;j++){                      //Vamos colocar o simbolo na linha.
      if(k==i){                                //Se a linha que em que estámos a colocar o simbolo for a mesma onde está o potenciometro vamos inverter a cor. Para isso
        writedata(pontos[j]^0xff);             //fazemos um XOR, isto é onde estava um pixel a 1 passa a 0 e onde estava a 0 passa a 1.
      }
      else{
        writedata(pontos[j]);                  //Os outros são os simbolos normais.
      }
    }
    putstr(" ");                               //Colocamos um espaço.
    if(ledsEstado[k]){                         //Se o estado do led da linha k estiver a true vamos colocar o nome com as cores inversas
      putstrInv(ledsNomes[k]);                 //para isso acrescentei a função putstrInv que coloca uma string mas com as cores inversas.
    }else{
      putstr(ledsNomes[k]);                    //caso contrário coloca o nome normalmente.
    }
  }
  delay(10);
}


Abraços :)
« Última modificação: 13 de Junho de 2010, 12:44 por metRo_ »

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.300
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #1 em: 15 de Março de 2009, 01:10 »
mt bom sim sr.. ;)

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.160
    • Tiago Rodrigues
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #2 em: 15 de Março de 2009, 01:11 »
Muito bom, direito a primeira página ;)

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.707
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #3 em: 15 de Março de 2009, 01:29 »
eheh Obrigado ;)

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.300
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #4 em: 15 de Março de 2009, 01:31 »
heya! :P proximo passo é pôr isso a controlar as luzes de casa.. ;D

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #5 em: 15 de Março de 2009, 09:44 »
heya! :P proximo passo é pôr isso a controlar as luzes de casa.. ;D

ia dizer o mesmo!
- Luz do quarto
- Luz da sala ;D

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 643
    • Guibot
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #6 em: 15 de Março de 2009, 11:41 »
muito bom ;)

Offline Fifas

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 2.042
  • El RoboSapiens
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #7 em: 15 de Março de 2009, 13:33 »
muito bom metro ;)

mas acho que um pequeno joystick seria mais facil que o potenciometro :P mas so digo isso porque ja usei joystick....ou botoes tipo um D-Pad ;)

de qualquer das maneiras, parabens :)

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.707
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #8 em: 15 de Março de 2009, 14:48 »
Para além de ser mais fácil tinham muito mais piada, a verdade é que isto era o que eu tinha casa em casa :p

Offline tr3s

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 811
  • char x=1, y=5; x^=y^=x^=y;
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #9 em: 18 de Março de 2009, 11:08 »
Ficou muito giro pa! E a ideia de inverter a linha seleccionada foi brilhante. :D
Só estou a comentar agora porque só agora me apercebi que ainda não tinha comentado ;)

Keep going!
Tr3s
Daniel Gonçalves

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.707
Re:Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #10 em: 18 de Março de 2009, 14:08 »
Obrigado :)

Offline GnobarEl

  • Mini Robot
  • *
  • Mensagens: 92
Re: Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #11 em: 11 de Junho de 2010, 10:22 »
Este projecto está muito interessante, se tiver um LCD de um 3310 lá por casa vou tentar montar esse esquema.

Sabem-me dizer se com esse esquema posso colocar este menu?
http://blog.thiseldo.co.uk/?p=383

Obrigado.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.707
Re: Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #12 em: 11 de Junho de 2010, 12:07 »
Ele disponibiliza a biblioteca por isso não deves ter grandes problemas em fazer algo semelhante.

Offline GnobarEl

  • Mini Robot
  • *
  • Mensagens: 92
Re: Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #13 em: 11 de Junho de 2010, 21:31 »
Podes, por favor, voltar a colocar o anexo?
Está corrompido.

Obrigado.

Offline GnobarEl

  • Mini Robot
  • *
  • Mensagens: 92
Re: Menu num LCD Nokia 3310! - Controlar Saídas
« Responder #14 em: 12 de Junho de 2010, 23:35 »
Alguém tem este ficheiro do anexo?
Não consigo abrir, já tentei recuperar e nada :S