Ao acionar uma lâmpada, display LCD inicia a contagem regressiva

Primeiramente agradeço a oportunidade de poder estar participando de um local como esse, sou inexperiente nesse ramo e muito curioso.

Estou realizando um trabalho baseado no Arduino e Android onde pretendo realizar via WiFi algumas tarefas. Por exemplo, pretendo realizar uma função que permita ao usuário escolher um período de tempo entre  minutos que deseja que a lâmpada fique acesa, ao passar o tempo específico, a mesma tem sua função encerrada apagando a lâmpada. Para tentar produzir esse projeto comecei a fazer alguns testes com o Display LCD, porém não consigo fazer isso...

Problemas encontrados:

- não consegui fazer o tempo ficar contabilizando automaticamente (em ambas as ordens crescente ou decrescente);

- ao desligar a lâmpada o tempo não zera e exibe somente o tempo em segundo fixo que a lâmpada foi acesa novamente.

Peço ajuda...

segue o código:

#include <LiquidCrystal.h> // Inclui a biblioteca LiquidCrystal

#define Luz_Fundo 7
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);// cria um objeto tipo LiquidCrystal chamado lcd

int ledPin = 13;


void setup() { 
Serial.begin(9600); 
pinMode(ledPin, OUTPUT);

lcd.begin (16,2);// Iniciando lcd como 2 linhas e 16 colunas
pinMode(Luz_Fundo, OUTPUT);// define o pino 7 como saída
digitalWrite(Luz_Fundo, HIGH); // Liga a luz do display
}


void loop() {

char caracter;
caracter = Serial.read();

//se pressionado "l" liga a lâmpada
if(caracter == 'l' || caracter == 'L')
{
lcd.setCursor (0,0); // seta o cursor para (coluna = 0, linha = 0)
lcd.print("Luz foi acionada a");
lcd.setCursor(0,1);// seta para linha 1
lcd.print(millis() / 1000); //escreve os segudos
lcd.print(" segundos atras");
digitalWrite(ledPin, HIGH);
}

//se pressionado "d" desliga a lâmpada
else if (caracter == 'd' || caracter =='D')
{
lcd.clear();
lcd.setCursor (0,0); // seta o cursor para (coluna = 0, linha = 0)
lcd.print(" Luz foi ");
lcd.setCursor (0,1); // seta o cursor para (coluna = 0, linha = 1)
lcd.print(" desativada ");
digitalWrite (ledPin, LOW);
}
delay(1000);
}

Tags: displayLCD, regressão, tempo

Exibições: 142

Anexos

Responder esta

Respostas a este tópico

Cara pegue os segundos e armazene em uma variavel. Quando voce carregar os segundos em uma variavel qualquer na hora de mostrar os segundos atraz você puxa a variavel.

Para seu programa ficar mais didatico e de melhor entendimento tenta separar bem as coisas e declarar as variaveis no inicio da programação, ficara mais facil.

 

Espero ter ajudado.!

RSS

Publicidade

Convide um amigo para o Lab!

 Loja Lab de Garagem

Novo!

Garagino Rev1

Por: R$ 29,00

Ou em até 6x de

R$ 5,18 

Novo!

Estação de Solda

Temperatura Ajustável - 50W

Por: R$ 150,00

Ou em até 18x de

R$ 10,00

 

Exclusividade do LdG!

Android 4.0 Mini PC

Por: R$ 195,00

Ou em até 18x de

R$ 13,00

Osciloscópio Digital

(ADS1102C) - 100MHz - 2 Canais

Por: R$ 1920,00

Ou em até 18x de

R$ 127,96

© 2013   Criado por Marcelo Rodrigues.

Badges  |  Relatar um incidente  |  Termos de serviço