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.
Tags:
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:
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
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por