ligando display de 7 segmentos com o integrado 4511 e o Controlando seu arduino via infra-red (iR)
A montagem elétrica segue o mesmo padrão , apenas mudando a pinagem que vai ligada ao arduino , sendo do pino 2 ao pino 5 pinos do codigo BCD , qu vai ligado ao integrado 4511 e o pino 8 que será o pino que vai receber os codigos hexadecimais que vem do sensor iR .
Integrado 4511 , onde os cabos verde são por onde chegam os dados vindo do arduino . a montagem segue o mesmo padrão do post que eu coloquei no inicio .
como voces podem ver pelo datasheet do integrado , os pinos de dados vão de 0 a 3 . onde a escala de "prioridade" inicia em zero e vai até três .
as ligações do Arduino também
pino 2 -> D0
pino 3 -> D1
pino 4 -> D2
pino 5 -> D3
O sensor de iR , que segue o mesmo padrão , onde o pino da esquerda é o pino de sinal que vai ligado ao pino numero 8 do arduino , o pino central vai ligado ao GND e o pino da direita vai ligado ao +5v
**importante**
voce precisa ter a biblioteca IR devidamente inclusa na ide do seu arduino , caso não tenha faça o download aqui
Feitas as ligações . vamos ao código
#include <IRremote.h>
int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;
int dA=2, dB=3,dC=4,dD=5;
//o que vem depois de 0x é o codigo referente a cada tecla do controle
#define bt0 0xFF6897
#define bt1 0xFF30CF
#define bt2 0xFF18E7
#define bt3 0xFF7A85
#define bt4 0xFF10EF
#define bt5 0xFF38C7
#define bt6 0xFF5AA5
#define bt7 0xFF42BD
#define bt8 0xFF4AB5
#define bt9 0xFF52AD
long bt = 0;
unsigned long startMilis ;
char letra;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(dA, OUTPUT);
pinMode(dB, OUTPUT);
pinMode(dC, OUTPUT);
pinMode(dD, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
irrecv.resume();
Serial.println(results.value, HEX); //Aqui voce descobre qual o botao do seu controle
if(results.value == bt0 )
{
startMilis = millis();
bt = results.value;
}
}
letra = Serial.read();
if(letra == '0' || results.value == bt0 ) {
digitalWrite(dA, LOW);
digitalWrite(dB, LOW);
digitalWrite(dC, LOW);
digitalWrite(dD, LOW);
}
if(letra == '1' ||results.value == bt1) {
digitalWrite(dA, HIGH);
digitalWrite(dB, LOW);
digitalWrite(dC, LOW);
digitalWrite(dD, LOW);
}
if(letra == '2' ||results.value == bt2) {
digitalWrite(dA, LOW);
digitalWrite(dB, HIGH);
digitalWrite(dC, LOW);
digitalWrite(dD, LOW);
}
if(letra == '3' ||results.value == bt3) {
digitalWrite(dA, HIGH);
digitalWrite(dB, HIGH);
digitalWrite(dC, LOW);
digitalWrite(dD, LOW);
}
if(letra == '4' ||results.value == bt4) {
digitalWrite(dA, LOW);
digitalWrite(dB, LOW);
digitalWrite(dC, HIGH);
digitalWrite(dD, LOW);
}
if(letra == '5' ||results.value == bt5) {
digitalWrite(dA, HIGH);
digitalWrite(dB, LOW);
digitalWrite(dC, HIGH);
digitalWrite(dD, LOW);
}
if(letra == '6' ||results.value == bt6) {
digitalWrite(dA, LOW);
digitalWrite(dB, HIGH);
digitalWrite(dC, HIGH);
digitalWrite(dD, LOW);
}
if(letra == '7' ||results.value == bt7) {
digitalWrite(dA, HIGH);
digitalWrite(dB, HIGH);
digitalWrite(dC, HIGH);
digitalWrite(dD, LOW);
}
if(letra == '8' ||results.value == bt8) {
digitalWrite(dA, LOW);
digitalWrite(dB, LOW);
digitalWrite(dC, LOW);
digitalWrite(dD, HIGH);
}
if(letra == '9' ||results.value == bt9) {
digitalWrite(dA, HIGH);
digitalWrite(dB, LOW);
digitalWrite(dC, LOW);
digitalWrite(dD, HIGH);
}
}
Nenhum comentário:
Postar um comentário