使用红外接收库的一个demo code

Dependencies:   mbed

Fork of IR_remote by Armando Casalino

main.cpp

Committer:
havebug
Date:
2017-07-13
Revision:
2:35f80e65a141
Parent:
1:5e7be7addf96
Child:
3:29915623fbb0

File content as of revision 2:35f80e65a141:

#include "mbed.h"
#include "ReceiverIR.h"

DigitalOut  my_led(LED1);

PwmOut      my_pwm1(PB_3);
PwmOut      my_pwm2(PB_5);


ReceiverIR ir_rx(D2);

Serial pc(SERIAL_TX, SERIAL_RX);
DigitalOut myled(LED1);

RemoteIR::Format format;
uint8_t buf[32];
int bitcount;
float DC=0.5;

int main()
{
    my_pwm1.period_ms(10);
    my_pwm1.write(DC);
    
    my_pwm2.period_ms(10);
    my_pwm2.write(DC);
    
    

    pc.printf("Hello World !\r\n");
    while(1) {
        
        if (ir_rx.getState() == ReceiverIR::Received) {
            bitcount = ir_rx.getData(&format, buf, sizeof(buf) * 8);
            
            if (bitcount>0){
                
                pc.printf("Decoded: %02X \r\n", buf[3]);
                myled = !myled;
                    
                if (buf[3]==0xE5){
                    DC = DC+ 0.1;
                    if (DC>1) DC=1;
                }
                if (buf[3]==0xD4){
                    DC = DC- 0.1;
                    if (DC<0) DC=0;
                }    
                if (buf[3]==0xC3){
                    DC = 0.5;
                }   
                    
                    my_pwm1.write(DC);
                    my_pwm2.write(DC);
                
                
                /* DEBUG
                    for (int i = 0; i < bitcount; i++) {
                     pc.printf("%02X", buf[i]);
                    }
                */
                
            }
            
        }

    }
}