domingo, 27 de janeiro de 2013

Arduino - iR + display de 7 segmentos (atualizado)

Hoje vamos integrar dois circuitos já apresentados aqui no blog , pelomenos a montagem deles
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