LCD SERIAL

Acabou de chegar o LCD serial da Tato.ind.br que eu pedi a somente dois dias. Eles enviarm rápido e sem problemas. O display é bem comum (ESCRITO ATRÁS ESTÁ:  TECH1602B-RN-GBS-8) ele tem 2 x 16 posições e pode ser encontrado facilmente nas lojas da Santa Efigênia em Sampa  sem o módulo serial que é fabricado pela Tato.


Soldado atrás do display está o módulo serial baseado em um chip PIC16F628A, o módulo apresenta as seguintes conexões:

1. +5V
2. TTL (para conexão com arduino ou outros)
3. RS232 (para conexão com porta serial do pc)
4. GND

























A conexão com a placa arduino 2009 é feita com o pino TTL do módulo ligado a porta TX (digital 1) ou com outra porta digital, dependeno da biblioteca utilizada. A alimentação é de 5 v logo é possível conectar diretamente ao na porta de alimentação de 5v e ground da própria placa arduino.

Para comunicação serial eu utilizei os exemplos do site arduino.cc:

http://www.arduino.cc/playground/Learning/SparkFunSerLCD

Existem duas opções, utilizar a comunicação serial direta pela porta TX ou definir outra porta digital qualquer com o uso da biblioteca SoftwareSerial.h . Com o uso desta biblioteca é possível liberar as portas TX e RX do arduino para outras funções.

Segue abaixo o exemplo do código que utilizei para apresentar no display o resultado do contador Milis, que conta o tempo em milissegundos desde que a placa arduino foi iniciada

Segue o código com a biblioteca SoftwareSerial:

-------------------------------------------------------------------------------------------------

#include // inclui a biblioteca


#define txPin 2 // define o pino digital 2 como TX

SoftwareSerial LCD = SoftwareSerial(0, txPin); // cria a instância LCD

// referencia - http://www.arduino.cc/playground/Learning/SparkFunSerLCD

void setup()

{

pinMode(txPin, OUTPUT); // define como output

LCD.begin(2400); // define 2400 de taxa de transferência para o LCD

clearLCD(); // veja abaixo o código para limpar o lcd no início

clearCURSOR(); // veja abaixo o código para tirar o cursor

}

void loop()

{

selectLineOne(); // define a posição do inicio do milis na linha 1

delay(100);

LCD.print(millis());  // apresenta p milis no lcd

selectLineTwo(); // define a posição do inicio do milis na linha 2

delay(100);

LCD.print("Mostrando MILIS"); // escreve na linha 2

delay(100);

}

void selectLineOne(){  //puts the cursor at line 0 char 0.

LCD.print(0xFE, BYTE); //codigo para inserão de comandos

LCD.print(134, BYTE); // posição na linha 1

}

void selectLineTwo(){ //puts the cursor at line 0 char 0.

LCD.print(0xFE, BYTE); //command flag

LCD.print(192, BYTE); //position

}

void clearCURSOR(){

LCD.print(0xFE, BYTE); //command flag

LCD.print(0xC, BYTE); //clear command.

}

void clearLCD(){

LCD.print(0xFE, BYTE); //command flag

LCD.print(0x01, BYTE); //clear command.

}

void serCommand(){ //a general function to call the command flag for issuing all other commands

LCD.print(0xFE, BYTE);

}
--------------------------------------------------------------------------------------------

Esquema da fiação:





Nenhum comentário:

Postar um comentário

Faça seu comentário.

Internet of Things

LUX com arduino GPRS shield e sensor LDR.

/*
Graph: Feed 38642, Datastream lux
*/

Laboratórios, Lojas e Produtos

Blogs, Comunidades e Revistas