Boa tarde galera.

Um projetinho que sempre quis desenvolver e nunca tinha tempo suficiente.

Não sou programador, mais já consigo enxergar algumas linhas.

Vamos lá,

Preciso da ajuda dos garagistas para a conclusão:

O cenário é o seguinte: 

Temos dois botões (inc e dec) onde pulsando cada um deles você consegue incrementar ou decrementar (em outras palavras) aumentar ou diminuir a intensidade da luz (ventilador) etc.

Também temos aquelas teclas sem quase função de nossos controles remoto. Utilizarei duas delas para também fazer o aumento e a diminuição da intensidade da carga. Em resumo postarei primeiro o Hardware:

Agora o sketch:

#include <Arduino.h>
#include <NECIRrcv.h>
#define InfraVermelho 9
int ledPin = 3;
int incPin = 4;
int decPin = 5;
int val=0;
int incButton = LOW;
int decButton = LOW;

unsigned long capturaCodigo = 0;
NECIRrcv ir (InfraVermelho);

void setup()
{
pinMode(incPin, INPUT);
pinMode(decPin, INPUT);
pinMode(ledPin, OUTPUT);
analogWrite(ledPin, 0);

Serial.begin(9600);
}

void loop()
{
incButton = digitalRead(incPin);
decButton = digitalRead(decPin);
if (incButton == HIGH)
{
if(val==255)val=255;
else val++;
}
if(decButton == HIGH)
{
if(val==0)val=0;
else val=val-1;
}
Serial.println(val);
delay(120);
analogWrite(ledPin, val);
}

Desda maneira os botões já estáo funcionando.

Falta dizer ao programa que ao pulsar tal tecla do teclado vc também incrementa/decrementa a carga.

Peguei um trecho de um outro sketch, mais não tenho conhecimentos para tal:

while (ir.available()) {
capturaCodigo = ir.read() ; // Captura toda entrada de dados que seja infra vermelho e armazena na variavel capturaCodigo do tipo long.
Serial.println(capturaCodigo); // Imprime no serial monitor o valor capturado ja declado na variavel.

if (capturaCodigo == 3442630279)

Desde já aguardo comentários,

Obrigado.

Na conclusão montarei o projeto para controle de lâmpadas de led dimerizáveis (já em funcionamento com dimmer manual, 4 ligadas em paralelo). Ai postarei o projeto completo.

 

Exibições: 4271

Responder esta

Respostas a este tópico

Minha sugestão para você que esta aprendendo.

Monte o projeto em etapas. 

Teste o botão para ligar o led. 

Teste os botões para aumentar ou diminuir a intensidade do led (PWM) . 

E depois implemente o controle remoto...

Basei-se nesses exemplos:

https://www.arduino.cc/en/Tutorial/BuiltInExamples

Você esta pulando uma etapa:

- teste o uso do controle remoto !

Depois junte tudo....

Galera boa noite.

Como prometido aos garagistas e a quem interesse, e como dito anteriormente, este projeto foi desenvolvido no intuito de controlar lâmpadas dimmerizáveis de led (ainda falta desenvolver a parte de potência), através de teclas que não tem função do seu controle remoto e também através de dois botões.

Através destes dois controles, conseguimos aumentar e diminuir a intensidade da lâmpada.

Apaguei os códigos que fui postando para não ficar o post confuso, e com a grande ajuda de nosso Garagista Rui Viana e com montagens simultâneas chegamos neste código:

#include <NECIRrcv.h>
#define InfraVermelho 12 //pino recebe IR

int ledRed = 5; //pino acionamento de led
int incPin = 3;
int decPin = 4;
int val = 0;

int incButton = LOW;
int decButton = LOW;

float intensidadeRed = 0;

unsigned long capturaCodigo = 0;
NECIRrcv ir (InfraVermelho);

void setup()
{
Serial.begin(9600);
ir.begin();
pinMode(incPin, INPUT);
pinMode(decPin, INPUT);
pinMode (ledRed, OUTPUT);
analogWrite(ledRed, intensidadeRed);
}
void loop()
{
analogWrite(ledRed, intensidadeRed);
while (ir.available())
{
capturaCodigo = ir.read() ;
Serial.println(capturaCodigo);
//Diminui a intensidade do led // tecla - VOL
if (capturaCodigo == 4044250759)
{
if (intensidadeRed > 0) {
intensidadeRed = intensidadeRed - 25.5;
delay(200);
}
}
//Aumenta a intensidade do led // tecla + VOL
if (capturaCodigo == 4060962439)
{
if (intensidadeRed < 255)
{
intensidadeRed = intensidadeRed + 25.5;
delay(200);
}
}
}
incButton = digitalRead(incPin);
if (incButton == HIGH)
{
if (intensidadeRed > 0)
{
intensidadeRed = intensidadeRed - 25.5;
delay(200);
}
}
decButton = digitalRead(decPin);
if (decButton == HIGH)
{
if (intensidadeRed < 255)
{
intensidadeRed = intensidadeRed + 25.5;
delay(200);
}
}
}

Façam bom proveito e espero ter ajudado com esta contribuição. 

Claro se não fosse pela ajuda do Rui Viana acho que não conseguiria chegar até aqui o final.

Lembrem que para poder funcionar no controle de você copiar este sketch, carregar no Arduino, abrir o serial monitor, pulsar as duas teclas que deseja aumentar e diminuir, pegar os dois códigos gerados, copiar e colar logo após o capturaCodigo, carregar novamente o Arduino com a alteração e testá-lo.

Abraços e boa noite a todos,

José Antonio 

Sabia que o grande mestre Guru Rui Viana o ajudaria. 

A competência dele no raciocínio lógico , já me surpreendeu quando eu o conheci à uns 35 anos atrás...

Parabéns para os dois !

Abraços.

Oi JG,

muito obrigado pelo elogio.

Mas foi mais pela experiencia e cabelos brancos . kkkkkk

Rui

Grandes gurus, o que seria este laboratório sem a presença dos Srs.

Muito a agradecer e aprender com vocês dois.

eXPeriencia pura.

Obrigado mais uma vez Rui. 

Boa noite Jose antônio fiz o teste aqui esta semana e deu tudo certo bom não tenho muito conhecimento em arduino e estou começando agora com programação é possível acionar pelo menos mais 4 saídas cada saída é ligada e desliga com o mesmo botão do controle remoto estou fazendo uma automação de um quarto mas coloquei alguns códigos para tentar acionar mas não deu certo somente desligar e ligar não necessário variar a tensão de saída mas tem que ser pelo controle remoto

Bom dia Carlos.

Este projeto está rodando em minha sala.

Tenho o controle UP-Down de um conjunto de lâmpadas 12VCC (abri as lâmpadas de led, retirei a parte AC, deixando-as pura DC), se tivesse que fazer o dimmer, teria de fazer o tal do zero-cross (muito complicado). 

Mais vamos lá.

Aqui o projeto funciona assim: Tenho 4 lâmpadas controladas tanto pelos interruptores quanto por 4 teclas de um controle Net, ou seja consigo ligar/desligar estas 4 cargas (lâmpadas) pelo controle/ e ou interruptor. As cargas são independentes. Como você sitou tenho o controle (liga/desliga) para cada uma.

Depois as lâmpadas central (4 lâmpadas ligadas em paralelo e como dito somente ela DC 12V) foi feito o controle utilizando dois switch um para aumentar e outro para diminuir a intensidade e também pelo controle remoto. Ficou muito legal, se quiser depois te envio o esquema e o código completo ok.

Ah, respondendo sua questão, este código é quase o que você precisa. Só que, ao invés de ligar e desligar apenas por um botão, utilizo 6 botões perdidos do controle. 

Valeu,

JAntonio

legal se poder me envia ai vejo a possibilidade ligar em outros cômodos da casa fico agradecido

O esquema é este: 

O sketch ficou assim: 

http://pastebin.com/VXcWjLXV 

Qualquer dúvida é só chamar ok,

Valeu

Ola jose fui no link para baixar o sketch mas nao tem nada dentro foi removido da pagina voce tem outro meio de enviar .

grato

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço