sábado, 27 de dezembro de 2014

Arduino + RTC1307 + CI 74HC595 + LCD16x2

Olá galerinha, atendendo aos pedidos dos visitantes do blog, ensinarei aqui como usar um RTC1307 com um LCD 16x2 e um CI 74HC595.

Para este tutorial precisaremos de:

- 1 Arduino (uno, nano, mega...)
- 1 CI 74HC595
- 1 RTC1307
- 1 LCD16x2
- 1 Potenciometro B10K

Você encontra estes e outros componentes na loja Sttamp.com



Porque usar o CI 74HC595?

A maior vantagem de usar este CI, e a quantidade de portas que ele utiliza, assim você economiza muitas portas, pois você estará ligando seu LCD com apenas 3 portas no Arduíno, essas portas são preciosas para projetos grandes. Este CI 74HC595 é um registrador de deslocamento de 8 bits serial-in (CI somente de saída), em serie ou em paralelo, resumindo, você pode usar este CI para controlar até 8 saídas de uma vez.


O RTC1307 (Real Time Clock) e um dos melhores e mais utilizados módulos para armazenar a hora.

Para este projeto, você vai precisar de duas bibliotecas, a do RTC1307 e a do CI74HC595
Clique aqui para baixar a biblioteca do RTC1307
Clique aqui para baixar a biblioteca do CI 74HC595



Você encontra todos os componentes sitados na loja Sttamp.com o menor preço e melhor qualidade do Brasil. 

Não esqueça de baixar as bibliotecas, ou seu código não ira funcionar
Lembrando que esta biblioteca só funciona para o CI 74HC595.

Código:
/*
Mais tutoriais em http://blog.sttamp.com/
grupo no whatsApp "Viciados em Arduino" des de 27/04/2014
WhatsAppp +55 66 9667-0801
*/
#include <DS1307.h> //inclui a biblioteca do RTC1307
#include <LiquidCrystal595.h> //inclui a biblioteca liquidcrystal595 do ci 74HC595
LiquidCrystal595 lcd(2,3,4); //definindo os pinos do arduino onde vai ser ligado o 74hc595
DS1307 rtc(A4, A5); // definindo os pinos do arduino onde vai ser ligado o rtc1307
void setup() //inicia o setup
{
rtc.halt(false); // define o estado do rtc
lcd.begin(16, 2); // define o modelo do lcd 16 colunas por 2 linhas
//obs. nao esquecer de tirar as barras // abaixo para definir a hora, depois de definido a hora
//os codigos abaixo servem somente para setar a hora
//rtc.setDOW(FRIDAY);
//rtc.setTime(16, 58, 0); // define horas, minutos, segundos
//rtc.setDate(27, 12, 2014); // define dia, mes, ano,
//rtc.setSQWRate(SQW_RATE_1);
//rtc.enableSQW(true);
// depois de compilado o codgo no seu arduino, coloque novamente as barras, e compile novamente
} // finaliza o setup
void loop() // inicia o loop
{
lcd.clear(); // limpa a tela do lcd
lcd.setCursor(0,0); //define a posiçao onde sera impresso
//coluna 0, linha 0
lcd.print("Hora : "); // ira escrever no lcd Hora:
lcd.print(rtc.getTimeStr()); // ira mostrar a hora no lcd
lcd.print(" "); // recebera o rtc.getTimeStr e ira imprimir no lcd
lcd.setCursor(0,1); //define a posiçao onde sera impresso
//coluna 0, linha 1
lcd.print("Data : "); // ira escrever no lcd Data:
lcd.print(rtc.getDateStr(FORMAT_SHORT)); // ira mostrar a data no lcd
lcd.print(" "); // ira receber o rtc.getDateStr e ira imprimir no lcd
lcd.print(rtc.getDOWStr(FORMAT_SHORT));// ira mostrar a data no lcd
delay (1010); //define o tempo de 1 segundo para atualizar o codgo no seu lcd
//obs. nao alterar esse tempo
} // fiinaliza o loop
view raw gistfile1.ino hosted with ❤ by GitHub

Um comentário:

  1. vc sabe como mudar os pinos de dados da bliblioteca LiquidCrystal595 para usar outros pinos desejados?

    ResponderExcluir