IR Sender
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 #define DEBOUNCEDELAY 500 00004 00005 // Turn ON/OFF the power of TV 00006 short ARRAY_HIGHLOW[] = { 2461, 543, 1290, 514, 692, 507, 1289, 514, 692, 507, 1290, 514, 691, 507, 690, 508, 1289, 516, 717, 481, 00007 690, 508, 689, 508, 692, 25634, 2487, 517, 1289, 516, 688, 510, 1289, 515, 689, 509, 1289, 518, 686, 510, 00008 664, 534, 1288, 516, 691, 507, 690, 509, 689, 508, 690, 25635, 2490, 515, 1289, 515, 691, 508, 1288, 516, 00009 691, 508, 1288, 515, 691, 508, 690, 507, 1291, 513, 693, 507, 689, 506, 692, 509, 689, 25635, 2490, 515, 00010 1288, 516, 692, 506, 1289, 516, 691, 507, 1289, 516, 691, 506, 690, 508, 1291, 514, 691, 507, 690, 508, 00011 690, 509, 689, 25616, 2508, 515, 1290, 515, 690, 508, 1289, 516, 690, 508, 1288, 516, 690, 509, 688, 509, 00012 1289, 515, 689, 509, 690, 508, 690, 508, 690, 25636, 2489, 515, 1290, 517, 688, 508, 1289, 517, 689, 507, 00013 1290, 516, 690, 507, 692, 506, 1289, 515, 691, 507, 692, 507, 690, 506, 692,}; 00014 00015 DigitalIn g_dpinButton(p30); 00016 PwmOut g_pwmout(p21); 00017 00018 void sendSignal() 00019 { 00020 g_pwmout.period_us( 26 ); // 38KHz => 1/38000[s] = 26.315 * 10 ^ -6 [s] = 26.315 [us] 00021 00022 int iCountHighLow = sizeof( ARRAY_HIGHLOW ) / sizeof( ARRAY_HIGHLOW[0] ); 00023 for( int iIndexHighLow = 0; iIndexHighLow < iCountHighLow; iIndexHighLow++ ) 00024 { 00025 g_pwmout.write( 0.5 * (1 - (iIndexHighLow % 2)) ); // iIndexHighLow : even number -> 0.5, uneven number -> 0 00026 wait_us( ARRAY_HIGHLOW[iIndexHighLow] ); 00027 } 00028 } 00029 00030 int main() 00031 { 00032 Timer timer; 00033 timer.start(); 00034 int iMilliSec_prev = timer.read_ms(); 00035 int iButtonState_prev = 0; 00036 00037 while(1) 00038 { 00039 int iButtonState = g_dpinButton; 00040 00041 if( 0 == iButtonState_prev 00042 && 1 == iButtonState ) 00043 { 00044 int iMilliSec = timer.read_ms(); 00045 if( DEBOUNCEDELAY < (iMilliSec - iMilliSec_prev) ) 00046 { 00047 sendSignal(); 00048 } 00049 00050 iMilliSec_prev = iMilliSec; 00051 } 00052 00053 iButtonState_prev = iButtonState; 00054 } 00055 }
Generated on Wed Jul 13 2022 01:14:49 by
1.7.2
Nobuki HIRAMINE