Gitakichi Tokyo / Mbed 2 deprecated IR-remote

Dependencies:   mbed

Committer:
gitakichi
Date:
Tue Feb 11 06:28:36 2020 +0000
Revision:
2:eca0702650ca
Parent:
1:4847c54eed20
Child:
3:31c005437fa5
can receive data

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gitakichi 0:a3131d121a8f 1 //reference from
gitakichi 0:a3131d121a8f 2 //https://www.hiramine.com/physicalcomputing/mbed/irreceiver.html
gitakichi 0:a3131d121a8f 3
gitakichi 0:a3131d121a8f 4 #include "mbed.h"
gitakichi 0:a3131d121a8f 5
gitakichi 0:a3131d121a8f 6 DigitalIn g_dpinIrReceiver(D2);
gitakichi 0:a3131d121a8f 7
gitakichi 0:a3131d121a8f 8 Serial g_serial(USBTX, USBRX);
gitakichi 0:a3131d121a8f 9
gitakichi 0:a3131d121a8f 10 int main()
gitakichi 0:a3131d121a8f 11 {
gitakichi 0:a3131d121a8f 12 g_serial.baud(115200);
gitakichi 0:a3131d121a8f 13
gitakichi 0:a3131d121a8f 14 Timer timer;
gitakichi 0:a3131d121a8f 15 timer.start();
gitakichi 1:4847c54eed20 16 //int iMicroSec_prev = timer.read_us();
gitakichi 0:a3131d121a8f 17 int iState_prev = 1;
gitakichi 2:eca0702650ca 18 int time_start,time_end,time_data,delta_t;
gitakichi 2:eca0702650ca 19 int data_en = 0;
gitakichi 2:eca0702650ca 20
gitakichi 1:4847c54eed20 21 while(1) {
gitakichi 0:a3131d121a8f 22 int iState = g_dpinIrReceiver;
gitakichi 2:eca0702650ca 23
gitakichi 1:4847c54eed20 24 //detect H signal
gitakichi 1:4847c54eed20 25 if( iState != iState_prev ) {
gitakichi 1:4847c54eed20 26 if(iState == 0) {
gitakichi 1:4847c54eed20 27 //timer.start();//reset
gitakichi 1:4847c54eed20 28 time_start = timer.read_us();//start(detect negedge
gitakichi 2:eca0702650ca 29
gitakichi 2:eca0702650ca 30 if(data_en == 1) {
gitakichi 2:eca0702650ca 31 //time_data = timer.read_us();
gitakichi 2:eca0702650ca 32 //delta_t = time_data - time_end;
gitakichi 2:eca0702650ca 33 delta_t = time_start - time_end;
gitakichi 2:eca0702650ca 34 data_en = 0;
gitakichi 2:eca0702650ca 35 if(delta_t > 1523) g_serial.printf("H");//625*2.5
gitakichi 2:eca0702650ca 36 else g_serial.printf("L");
gitakichi 2:eca0702650ca 37 }
gitakichi 2:eca0702650ca 38 } else if(iState == 1) { //end (detect posedge
gitakichi 2:eca0702650ca 39
gitakichi 2:eca0702650ca 40
gitakichi 1:4847c54eed20 41 time_end = timer.read_us();//over flow?
gitakichi 1:4847c54eed20 42 //compare and output
gitakichi 2:eca0702650ca 43 delta_t = time_end - time_start;
gitakichi 2:eca0702650ca 44
gitakichi 2:eca0702650ca 45 if(delta_t > 8430) g_serial.printf("flame,");//625*15
gitakichi 2:eca0702650ca 46 else {
gitakichi 2:eca0702650ca 47 data_en = 1;
gitakichi 2:eca0702650ca 48 //g_serial.printf("data,");
gitakichi 2:eca0702650ca 49 //g_serial.printf( "%d, ", time_start - time_end);
gitakichi 2:eca0702650ca 50 }
gitakichi 1:4847c54eed20 51 }
gitakichi 2:eca0702650ca 52 }
gitakichi 1:4847c54eed20 53 iState_prev = iState;
gitakichi 2:eca0702650ca 54
gitakichi 1:4847c54eed20 55 //iState_prev = iState;
gitakichi 1:4847c54eed20 56 //int iMicroSec = timer.read_us();
gitakichi 1:4847c54eed20 57 //g_serial.printf( "%d, ", iMicroSec - iMicroSec_prev );
gitakichi 1:4847c54eed20 58 //iMicroSec_prev = iMicroSec;
gitakichi 0:a3131d121a8f 59 }
gitakichi 0:a3131d121a8f 60 }