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

Pessoal, para quem precisar do código ai vai: 

http://pastebin.com/GuF7EbK6  (como ele inspira em 1 mês) também vai: 

  1. #include <NECIRrcv.h>
  2. #define InfraVermelho 2 // pino recebe IR
  3.  
  4. int incPin = 3; // pino recebe botão PWM luz sanca aumento
  5. int decPin = 4; // pino recebe botão PWM luz sanca diminui
  6. int ledRed = 6; // pino de saida PWM iluminacao sanca
  7. int rele1 = 10; // pino de saída rele 1 - lampada porta
  8. int rele2 = 11; // pino de saida rele 2 - lampada fundo
  9. int rele3 = 12; // pino de saida rele 3 - lampada sofa
  10. int rele4 = 13; // pino de saida rele 4 - lampada quadros
  11.  
  12. int val = 0;
  13. int aciona1 = 0;
  14. int aciona2 = 0;
  15. int aciona3 = 0;
  16. int aciona4 = 0;
  17. int incButton = LOW;
  18. int decButton = LOW;
  19. float intensidadeRed = 0;
  20. unsigned long capturaCodigo = 0;
  21. NECIRrcv ir (InfraVermelho);
  22.  
  23. void setup() {
  24.  
  25.   Serial.begin(9600);
  26.   ir.begin();
  27.   pinMode(incPin, INPUT); // declarando que o pino incPin é tipo entrada
  28.   pinMode(decPin, INPUT); // declarando que o pino decPin é tipo entrada
  29.   pinMode (ledRed, OUTPUT); // declarando que o pino ledRed é tipo de saida
  30.   pinMode (rele1, OUTPUT); // declarando que o pino rele1 é tipo de saida
  31.   digitalWrite (rele1, 1);
  32.   pinMode (rele2, OUTPUT); // declarando que o pino rele2 é tipo de saida
  33.   digitalWrite (rele2, 1);
  34.   pinMode (rele3, OUTPUT); // declarando que o pino rele3 é tipo de saida
  35.   digitalWrite (rele3, 1);
  36.   pinMode (rele4, OUTPUT); // declarando que o pino rele4 é tipo de saida
  37.   digitalWrite (rele4, 1);
  38.   analogWrite(ledRed, intensidadeRed);
  39. }
  40.  
  41.  
  42. void loop()
  43. {
  44.   analogWrite(ledRed, intensidadeRed);
  45.   while (ir.available()) {
  46.     capturaCodigo = ir.read() ;
  47.     Serial.println(capturaCodigo); // Imprime no monitor serial a captura dos codigos do controle
  48.  
  49.     if (capturaCodigo == 3375783559) { // aciona rele 1 - tecla PLAY controle NET
  50.       aciona1 = !aciona1;
  51.       digitalWrite (rele1, aciona1);
  52.       delay (200);
  53.     }
  54.  
  55.     if (capturaCodigo == 3442630279) { // aciona rele 2 - tecla STOP controle NET
  56.       aciona2 = !aciona2;
  57.       digitalWrite (rele2, aciona2);
  58.       delay (200);
  59.     }
  60.  
  61.     if (capturaCodigo == 3392495239) { // aciona rele 3 - tecla FWD controle NET
  62.       aciona3 = !aciona3;
  63.       digitalWrite (rele3, aciona3);
  64.       delay (200);
  65.     }
  66.  
  67.     if (capturaCodigo == 3425918599) { // aciona rele 4 - tecla REC controle NET
  68.       aciona4 = !aciona4;
  69.       digitalWrite (rele4, aciona4);
  70.       delay (200);
  71.     }
  72.  
  73.     if (capturaCodigo == 3409206919) // aumenta intensidade luz sanca - tecla REW controle NET
  74.     {
  75.       if (intensidadeRed /span> 255)
  76.       {
  77.         intensidadeRed = intensidadeRed + 25.5;
  78.         delay(200);
  79. }
  80.     }
  81.        
  82.     if (capturaCodigo == 3359071879) // diminui intensidade luz sanca - tecla REPLAY controle NET
  83.     {
  84.       if (intensidadeRed > 0) {
  85.         intensidadeRed = intensidadeRed - 25.5;
  86.         delay(200);
  87.       }
  88.     }
  89.    }
  90. decButton = digitalRead(decPin); // aumenta intensidade luz sanca - interruptor pulso +
  91.   if (decButton == HIGH)
  92.   {
  93.     if (intensidadeRed /span> 255)
  94.     {
  95.       intensidadeRed = intensidadeRed + 25.5;
  96.       delay(200);
  97.     }
  98.   }
  99.  
  100.   incButton = digitalRead(incPin); // diminui intensidade luz sanca - interruptor pulso -
  101.   if (incButton == HIGH)
  102.   {
  103.     if (intensidadeRed > 0)
  104.     {
  105.       intensidadeRed = intensidadeRed - 25.5;
  106.       delay(200);
  107.     }
  108.   }
  109.  }

BOA NOITE!

Alguem pode mim ajudar com o código pra fazer ligar um lede com um botão e ligar em paralelo com um botão do contrle remoto?

no meu esta dano ess erro

exit status 1
Erro compilando para a placa Arduino/Genuino Uno

Alguem pode mim ajudar?

precisa baixar, biblioteca ?

copio o código na IDE do arduino uno e da erro!

Bom dia, 

Claro que sim - é necessário instalar a biblioteca. 

#include <NECIRrcv.h>   Isso indica o uso da biblioteca.

Instale a biblioteca NECIRrcv:

https://github.com/darkomen/Arduino/tree/master/Arduino/libraries

http://labdegaragem.com/profiles/blogs/tutorial-arduino-instalando-...

Qual a mensagem de erro que aparece? 

http://labdegaragem.com/forum/topics/sugest-o-de-como-postar?commen...

Boa noite!

Baixei a biblioteca, obrigado!

Mais agora está dano esse erro

#include "WConstants.h"

pode mim ajudar?

Arduino: 1.8.5 (Windows 7), Placa:"Arduino/Genuino Uno"

In file included from C:\Users\LUCIENY\Documents\Arduino\sketch_sep18a\sketch_sep18a.ino:1:0:

C:\Program Files (x86)\Arduino\libraries\NECIRrcv/NECIRrcv.h:4:24: fatal error: WConstants.h: No such file or directory

#include "WConstants.h"

^

compilation terminated.

exit status 1
Erro compilando para a placa Arduino/Genuino Uno

Este relatório teria mais informações com
"Mostrar a saida detalhada durante a compilação"
opção pode ser ativada em "Arquivo -> Preferências"

Essa Biblioteca é antiga e com algumas incompatibilidades.

Pesquisando no forum do Arduino :

https://forum.arduino.cc/index.php?topic=85529.0

Apague :

#include "WConstants.h"

E insira :

#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço