collapse

* Posts Recentes

+ LASERs por KammutierSpule
[Ontem às 08:14]


Cerca eléctrica por SerraCabo
[14 de Junho de 2025, 23:26]


Alguém arranja motores? por almamater
[10 de Junho de 2025, 22:34]


Condensador 4.7uF 0603 por brunus
[09 de Junho de 2025, 15:52]


Lenovo IdeaPad 3 Não liga por jm_araujo
[07 de Maio de 2025, 19:10]


Identificar Diodo Zenner por filjoa
[01 de Maio de 2025, 23:07]


Meu novo robô por dropes
[18 de Março de 2025, 14:51]


JBL partybox On-The-Go por almamater
[21 de Fevereiro de 2025, 23:32]


Talking Reverse Engineering with an Absolute Legend! por SerraCabo
[13 de Fevereiro de 2025, 09:56]


Motoserra Stihl 120C por brunus
[11 de Fevereiro de 2025, 16:29]

Autor Tópico: Arduino + LCD Nokia 3310! - PCD8544 / OM6206  (Lida 163570 vezes)

0 Membros e 2 Visitantes estão a ver este tópico.

Offline Raul

  • Mini Robot
  • *
  • Mensagens: 185
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #90 em: 23 de Novembro de 2009, 17:24 »
É possível usar um 1100?

Eu tenho aqui uns mp3 que não ligam de momento só servem para pens, estava a pensar tirar os displays eu penso que trabalhem como pens sem displays, para saber mexer no display aconselham a procurar o datasheet deles através das referências que estão neles?

E se podiam me dar uma dica de como retirar a solda.
http://www.pcreview.co.uk/reviews/Audio/Creative_Zen_Nano_Plus/
o outro é da marca do link mas parecido
http://images.google.pt/imgres?imgurl=http://www.fotoagent.dk/single_picture/154/25/large/DENVER_MP-106W%281%29.jpg&imgrefurl=http://www.denver-electronics.com/pages/webside3.asp%3FarticleGuid%3D7973%26menuGuid%3D5387%26subMenuguid%3D5390&usg=__B9ZGcLEGHj6HaHmI4JnGoP6Q46k=&h=273&w=370&sz=14&hl=pt-PT&start=2&um=1&tbnid=1pGynNbOaJ_bXM:&tbnh=90&tbnw=122&prev=/images%3Fq%3Ddenver%2Bmp3%26hl%3Dpt-PT%26client%3Dfirefox-a%26rls%3Dorg.mozilla:pt-PT:official%26hs%3DI7c%26sa%3DN%26um%3D1

Cumprimentos
« Última modificação: 23 de Novembro de 2009, 20:17 por metRo_ »

Offline tr3s

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 811
  • char x=1, y=5; x^=y^=x^=y;
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #91 em: 23 de Novembro de 2009, 17:45 »
O LCD do Nokia 1100 parece-me funcionar na perfeição com que já foi mostrado aqui.

Em relação ao displays dos MP3, sim deve procurar toda a documentação possível sobre eles. Pesquisa na internet pelos mp3 ou pelos códigos que trazem impressos neles.
Não os desmontes sem teres a certeza que vais conseguir fazer alguma com eles ;)
Tr3s
Daniel Gonçalves

Offline DFC17

  • Mini Robot
  • *
  • Mensagens: 43
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #92 em: 11 de Janeiro de 2010, 22:27 »
eu tenho um LCD de um n80, 3310 e 7610 da em todos?

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #93 em: 11 de Janeiro de 2010, 22:42 »
Com o 3310 dá, os outros usam outros controladores.

Offline n@Net

  • Mini Robot
  • *
  • Mensagens: 11
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #94 em: 23 de Fevereiro de 2010, 14:25 »
Gostava de experimentar com este LCD do 3310 e este vosso codigo para Arduino, acabei a semana passada de montar o Severino!
Infelizmente parece que os anexos ainda não estão a 100/100.
Alguma alma caridosa que me possa ajudar/enviar por email  (URGENTE!!   ...estou a ressacar!  ;D ;D ;D)
Obrigado de antemão!

danielfrade@correioquente.com :D :D  (hotmail.com)   
 ;)
n@Net
Daniel Gonçalves
;-)

Offline tr3s

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 811
  • char x=1, y=5; x^=y^=x^=y;
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #95 em: 23 de Fevereiro de 2010, 21:36 »
Viva!

O que precisas dos anexos em concreto? Se for o código ele está nos posts, se for outra coisa diz que vamos ver o que se arranja!
Infelizmente também não tenho aqui os anexos se não enviava-te já.
Tr3s
Daniel Gonçalves

Offline n@Net

  • Mini Robot
  • *
  • Mensagens: 11
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #96 em: 25 de Fevereiro de 2010, 07:12 »
Obrigado pela rápida resposta Tr3s.
A verdade é que estou com dificuldade com o codigo que está nos posts e tinha esperança que nos anexos estivesse a papa já toda feita e a funcar...
n@Net
Daniel Gonçalves
;-)

Offline zordlyon

  • Mini Robot
  • *
  • Mensagens: 1.771
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #97 em: 10 de Março de 2010, 12:40 »
Ora bem em relaçao a estes LCD's tenho 2 duvidas pessoal....

1ª- Alguem me pode arranjar o esquema de ligaçao a placa arduino?

2ª-Alguem sabe como ligar os led's do LCD? ligar a luz....

Cumprimentos...
Cumprimentos,
André Carvalho.

Offline Nando

  • Mini Robot
  • *
  • Mensagens: 3
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #98 em: 04 de Abril de 2010, 11:03 »
Boas,

Primeiro os meus agradecimentos por partilhar esta informacao e o codigo.
E depois era o mesmo referido acima o ficheiro Nokia.rar nao esta la muito bom:

Extracting from Nokia.rar

Creating    Nokia                                                     OK
Extracting  Nokia/Nokia.pde                                           24%
Nokia/Nokia.pde      - CRC failed
Extracting  Nokia/nokialcd.pde                                        97%
Nokia/nokialcd.pde   - CRC failed
Total errors: 2

Como tal se alguem o pode-se anexar novamente a um post era optimo.

Obrigado!

Offline tcustodio

  • Mini Robot
  • *
  • Mensagens: 344
  • "beware of programmers who carry a soldering iron"
    • Youtube
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #99 em: 04 de Abril de 2010, 18:07 »
posso estar enganado, mas se usares o WinRAR, penso que tenhas uma opção para tentar recupar/reparar os arquivos. Já vi aqui um utilizador que fazendo isso conseguiu abrir um arquivo rar corrupto  :)
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Offline Nando

  • Mini Robot
  • *
  • Mensagens: 3
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #100 em: 04 de Abril de 2010, 23:37 »
Win (windows) rar... tenho alergia a Windows. :)

Pois e possivel, a ver se corre com o wine e que eu nao uso Win.
E que ele descomprime para os ficheiros .pde ficam com o codigo todo baralhado.

Offline eduardo_d

  • Mini Robot
  • *
  • Mensagens: 13
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #101 em: 10 de Abril de 2010, 01:47 »
Olá pessoal!
Este é o meu primeiro post aqui no forum. Gosto de electrónica e comecei agora a dar os primeiros passos com o Arduino  :D.
Decidi fazer este tutorial durante o fds mas estou a ter alguns problemas.
Ao usar o código da primeira página (visto o ficheiro para download estar corrompido) juntamente com o array da pagina 3 obtenho o erro

error: expected identifier before '(' token

O código está assim:
Código: [Seleccione]
#include <Wire.h>

#define SCE   7
#define RES   6
#define DC    5
#define SDI   4
#define SCK   3
#define backLIGHT 13

//isto pus tal cm está na pag 3
byte nokiabyte[][5] = {  // Caracteres para usar uma vez que o controlador não os tem defenidos
 {0x00, 0x00, 0x00, 0x00, 0x00} // 20
    .....
,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f ?
};

void setup(void){
  // LCD - Defenir os cinco pins como pins de output
  pinMode(SCE, OUTPUT);
  pinMode(RES, OUTPUT);
  pinMode(DC, OUTPUT);
  pinMode(SDI, OUTPUT);
  pinMode(SCK, OUTPUT);
  initlcd();    // Iniciar o LCD
  delay(100);   // O datasheet pede 100ms após arrancar
  //--------------------------------------------
}
void initlcd(void){        // Iniciar o LCD, tem de se usar isto antes de fazer qualquer coisa no LCD! Se não se defenir a tensão do LCD este pode queimar.
  digitalWrite(RES, HIGH); // Meter o pin reset a 1
  digitalWrite(SCE, HIGH); // Desactivar o chip
  digitalWrite(RES, LOW);  // Fazer reset ao LCD
  delay(100);              // Conforme diz no datasheet do pcd8544, convem esperar 100ms ate o poder acordar
  digitalWrite(RES, HIGH); // Acordar o LCD do estado RESET
 
  writecom(0x21); // Activar o chip e H=1 (datasheet)
  writecom(0xC2); // Defenir a voltagem/tensão do LCD para 7V
  writecom(0x13); // Ajusta a zona de operação/"Bias point" com base na voltagem defenida
  writecom(0x20); // Define o modo de operação, neste caso endereçamento Horizontal (H=0)
  writecom(0x09); // Acticar todos os segmentos
  clearram();     // Limpar a memória ram
  writecom(0x08); // Limpar/flashar o ecra
  writecom(0x0C); // Normalizar o ecra
  cursorxy(0, 0); // Colocar o cursor na primeira coluna da primeira linha do ecra
}

void writecom(char command_in){  // Esta rotina, agora um método, serve para enviar comandos para o controlador do LCD, desligar, inverter pixeis, tipo de endereçamento, etc.
  digitalWrite(DC, LOW);         // Seleccionar o registo de Comandos
  digitalWrite(SCE, LOW);        // Seleccionar o chip
  clockdata(command_in);         // Enviar os bits de comando a cada clock,ou "clock in" aos bits de comando
  digitalWrite(SCE, HIGH);       // Libertar o chip
}

void writedata(char data_in){   // Com esta rotina, agora método, envia-se um byte para o LCD, este byte corresponde a uma coluna com um pixel de largura e 8 pixeis de altura (1x8), 0xFF coluna toda a negro
  digitalWrite(DC, HIGH);       // Seleccionar o registo de Dados
  digitalWrite(SCE, LOW);       // Seleccionar o chip
  clockdata(data_in);           // "Clock in" :) os bits de dados
  digitalWrite(SCE, HIGH);      // Libertar o chip
}

void clockdata(char bits_in){                              // Esta rotina envia os dados para o PCD8544
  char bitcnt;
  for (bitcnt = 8; bitcnt > 0; bitcnt--){
    digitalWrite(SCK, LOW);                                // Parar o clock
    if ((bits_in & 0x80) == 0x80) digitalWrite(SDI, HIGH); // O pcd8544 "clock in" o MSB primeiro
    else digitalWrite(SDI, LOW);
    digitalWrite(SCK, HIGH);                               // Os dados sao enviados nas transições ascendentes de clock
    bits_in <<= 1;                                         // Menos um bit, shift tudo 1bit
  }
}

void clearram(void){                   // OM6206 - Limpa a RAM do controlador OM6206 e assim limpa-se o LCD.
  int ddram;
  cursorxy(0, 0);                        // Colocar o cursor no inicio do ecrã
  for (ddram = 864; ddram > 0; ddram--){ // 9(linhas) x 96 (colunas) = 864 endereços
    writedata(0x00);
  }
}

void cursorxy(char x,char y){   // OM6206 - Colocar o cursor em determinada linha e coluna. Ex.: cursorxy(24,3) -> os proximos dados irao começar a aparecer na linha 3 e coluna 24
  writecom(0x40 | (y & 0x0F));  // definir cursor no eixo OY
  writecom(0x80 | (x & 0x7F));  // definir cursor no eixo OX
}

void putchar(char character){ // Traduz os caracteres para um formato reconhecido pelo PCD8544 e envia-os para o LCD. Cada caracter é um conjunto de 5 bytes.
  for (char i = 0; i < 5; i++){
    writedata(nokiabyte[character - 0x20][i]);  // Vai buscar o byte ao array de caracteres e envia-o para o LCD
  }
  writedata(0x00);  // Espaçamento de um pixel entre cada caracter
}

void putstr(const char *s){  // Colocar uma frase/conjunto de caracteres (String) no LCD.
  while(*s){putchar(*s++);}  // Apontar para um caracter no formato ASCII e escrever um caracter de cada vez
}


void loop(){
  putstr("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz!");
  delay(3000);
}


Se comentar a função putchar o erro já não acontece mas cm é logico n obtenho nada no lcd :-X
Penso que estou a cometer algum erro no código  ::)
Alguem me pode enviar o código que usou e funcionou? o meu mail é epcdomingos@gmail.com

Obrigado a tds

Eduardo

Offline eduardo_d

  • Mini Robot
  • *
  • Mensagens: 13
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #102 em: 10 de Abril de 2010, 17:43 »
olá malta!
Então ng me pode dar aqui uma ajudinha  ::)

abr

Offline Nando

  • Mini Robot
  • *
  • Mensagens: 3
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #103 em: 10 de Abril de 2010, 23:50 »
Oi eduardo_d,

Nao perdi muito tempo a ver tudo mas, se fizer o seguinte isso ja compila sem erros e corre mais ou menos.

1. Altere a funcao putchar() para putchr() por exemplo.
   void putchar(char character) --> void putchr(char character)
2. Corriga depois a funcao putstr() .
   while(*s){putchar(*s++);} --> while(*s){putchr(*s++);}


Boa sorte!

Offline eduardo_d

  • Mini Robot
  • *
  • Mensagens: 13
Re: Arduino + LCD Nokia 3310! - PCD8544 / OM6206
« Responder #104 em: 11 de Abril de 2010, 14:51 »
Nando!
Obrigadíssimo! ;D
Com essa pequena alteração ja esta operacional!
Muito obrigado mais uma vez!

Abr
Eduardo