![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
control loco
main.cpp@0:ec6950d9a18d, 2019-07-16 (annotated)
- Committer:
- Cam53
- Date:
- Tue Jul 16 20:52:52 2019 +0000
- Revision:
- 0:ec6950d9a18d
ok
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Cam53 | 0:ec6950d9a18d | 1 | /******************** ENLOQUECEDOR DE CONTROL REMOTO TV SMART HYUNDAI************************************************* |
Cam53 | 0:ec6950d9a18d | 2 | //este programa interfiere de forma loca la operacion de un televisor |
Cam53 | 0:ec6950d9a18d | 3 | //emite codigos de tv con el fin de fastidiar al televidente |
Cam53 | 0:ec6950d9a18d | 4 | /*la emision es aleatoria para |
Cam53 | 0:ec6950d9a18d | 5 | 1 mute |
Cam53 | 0:ec6950d9a18d | 6 | 2 on/off |
Cam53 | 0:ec6950d9a18d | 7 | 3 vol+ |
Cam53 | 0:ec6950d9a18d | 8 | 4 vol- |
Cam53 | 0:ec6950d9a18d | 9 | 5 canal + |
Cam53 | 0:ec6950d9a18d | 10 | 6 canal - |
Cam53 | 0:ec6950d9a18d | 11 | */ |
Cam53 | 0:ec6950d9a18d | 12 | #include "mbed.h" |
Cam53 | 0:ec6950d9a18d | 13 | DigitalOut ledA (LED1); |
Cam53 | 0:ec6950d9a18d | 14 | DigitalOut ledR (LED2); |
Cam53 | 0:ec6950d9a18d | 15 | DigitalOut ledV (LED3); |
Cam53 | 0:ec6950d9a18d | 16 | |
Cam53 | 0:ec6950d9a18d | 17 | DigitalOut led(PTE31);//al transistor del led infrarrojo pin |
Cam53 | 0:ec6950d9a18d | 18 | int i,j; |
Cam53 | 0:ec6950d9a18d | 19 | int t; |
Cam53 | 0:ec6950d9a18d | 20 | //*********************TIEMPO PARA TELEVISOR HYUNDAI START TV**************************************** |
Cam53 | 0:ec6950d9a18d | 21 | int cabeceraL=9000; |
Cam53 | 0:ec6950d9a18d | 22 | int cabeceraH=4555; |
Cam53 | 0:ec6950d9a18d | 23 | int Tdescanso=500; |
Cam53 | 0:ec6950d9a18d | 24 | int Tlow=630; |
Cam53 | 0:ec6950d9a18d | 25 | int Thigh=1750; |
Cam53 | 0:ec6950d9a18d | 26 | int duracion; //duracion de un pulso bajo |
Cam53 | 0:ec6950d9a18d | 27 | int numb = 33; |
Cam53 | 0:ec6950d9a18d | 28 | void mute(); |
Cam53 | 0:ec6950d9a18d | 29 | void vol_up(); |
Cam53 | 0:ec6950d9a18d | 30 | void vol_dwn(); |
Cam53 | 0:ec6950d9a18d | 31 | void ch_up(); |
Cam53 | 0:ec6950d9a18d | 32 | void ch_dwn(); |
Cam53 | 0:ec6950d9a18d | 33 | void pwr(); |
Cam53 | 0:ec6950d9a18d | 34 | void repeat(); |
Cam53 | 0:ec6950d9a18d | 35 | int sendcode(int numb, int *code, int cabeceraL, int cabeceraH, int Tdescanso, int Tlow, int Thigh); |
Cam53 | 0:ec6950d9a18d | 36 | int code[65]; |
Cam53 | 0:ec6950d9a18d | 37 | int dato[65]; |
Cam53 | 0:ec6950d9a18d | 38 | int descanso(int duracion); |
Cam53 | 0:ec6950d9a18d | 39 | //const unsigned muteHY[] = {581,556,555,582,554,556,581,556,1693,1692,1692,1693,1691,1692, |
Cam53 | 0:ec6950d9a18d | 40 | // 555,1692,1694,554,1692,554,1692,554,556,581,554,1692,555,1693,554,1692,1692,1692}; |
Cam53 | 0:ec6950d9a18d | 41 | const unsigned pwr[]={1664,1663,1689,545,570,544,570,571,1663,1664,1690,546,570,543,544,570,544,1689,542,570,570,545,570,545,1689,544,1663,1662,1663,1688,1663,1662}; |
Cam53 | 0:ec6950d9a18d | 42 | const unsigned vol_up[]={1659,1662,1658,538,539,545,539,537,1687,1658,1657,540,540,536,541,538,1658,1688,1661,534,543,568,536,539,569,537,540,1658,1662,1654,1685,1685}; |
Cam53 | 0:ec6950d9a18d | 43 | const unsigned vol_dwn[]={1659,1657,1662,538,539,567,539,539,1663,1604,1658,541,541,538,541,540,1658,1659,538,1663,538,537,568,537,566,539,1660,540,1657,1660,1659,1659}; |
Cam53 | 0:ec6950d9a18d | 44 | const unsigned ch_up[]={1687,1659,1656,542,536,540,544,538,1659,1657,1661,537,540,541,538,545,538,1656,569,536,1659,536,540,542,1656,568,1654,1689,536,1661,1658,1658}; |
Cam53 | 0:ec6950d9a18d | 45 | const unsigned ch_dwn[]={1689,1662,1690,543,547,570,544,545,1664,1662,1689,570,570,544,543,571,542,571,569,544,1662,543,543,570,1662,1690,1662,1690,544,1689,1662,1689}; |
Cam53 | 0:ec6950d9a18d | 46 | |
Cam53 | 0:ec6950d9a18d | 47 | int main() { |
Cam53 | 0:ec6950d9a18d | 48 | ledA=1; |
Cam53 | 0:ec6950d9a18d | 49 | ledR=1; |
Cam53 | 0:ec6950d9a18d | 50 | ledV=1; |
Cam53 | 0:ec6950d9a18d | 51 | ledA=0; |
Cam53 | 0:ec6950d9a18d | 52 | //for(i=0;i<numb;i++){ |
Cam53 | 0:ec6950d9a18d | 53 | // code[i]=muteHY[i]; |
Cam53 | 0:ec6950d9a18d | 54 | // } |
Cam53 | 0:ec6950d9a18d | 55 | |
Cam53 | 0:ec6950d9a18d | 56 | while(1){ |
Cam53 | 0:ec6950d9a18d | 57 | |
Cam53 | 0:ec6950d9a18d | 58 | mute(); |
Cam53 | 0:ec6950d9a18d | 59 | wait(2); |
Cam53 | 0:ec6950d9a18d | 60 | mute(); |
Cam53 | 0:ec6950d9a18d | 61 | wait(2); |
Cam53 | 0:ec6950d9a18d | 62 | vol_up(); |
Cam53 | 0:ec6950d9a18d | 63 | wait(1); |
Cam53 | 0:ec6950d9a18d | 64 | vol_dwn(); |
Cam53 | 0:ec6950d9a18d | 65 | wait(1); |
Cam53 | 0:ec6950d9a18d | 66 | ch_up(); |
Cam53 | 0:ec6950d9a18d | 67 | wait(1); |
Cam53 | 0:ec6950d9a18d | 68 | ch_dwn(); |
Cam53 | 0:ec6950d9a18d | 69 | wait(1); |
Cam53 | 0:ec6950d9a18d | 70 | pwr(); |
Cam53 | 0:ec6950d9a18d | 71 | wait(5); |
Cam53 | 0:ec6950d9a18d | 72 | pwr(); |
Cam53 | 0:ec6950d9a18d | 73 | wait(3); |
Cam53 | 0:ec6950d9a18d | 74 | //sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); |
Cam53 | 0:ec6950d9a18d | 75 | //wait(5); |
Cam53 | 0:ec6950d9a18d | 76 | } |
Cam53 | 0:ec6950d9a18d | 77 | } |
Cam53 | 0:ec6950d9a18d | 78 | //la funcion descanso hace una modulacon, osea un pulso bajo por el tiempo indicado en duracion |
Cam53 | 0:ec6950d9a18d | 79 | int descanso(int duracion){ |
Cam53 | 0:ec6950d9a18d | 80 | Timer t; |
Cam53 | 0:ec6950d9a18d | 81 | t.reset(); |
Cam53 | 0:ec6950d9a18d | 82 | t.start(); |
Cam53 | 0:ec6950d9a18d | 83 | while(1) |
Cam53 | 0:ec6950d9a18d | 84 | { |
Cam53 | 0:ec6950d9a18d | 85 | led=1; |
Cam53 | 0:ec6950d9a18d | 86 | wait_us(8); |
Cam53 | 0:ec6950d9a18d | 87 | led=0; |
Cam53 | 0:ec6950d9a18d | 88 | led=0; |
Cam53 | 0:ec6950d9a18d | 89 | wait_us(9); |
Cam53 | 0:ec6950d9a18d | 90 | if(t.read_us() > duracion) return 0; |
Cam53 | 0:ec6950d9a18d | 91 | |
Cam53 | 0:ec6950d9a18d | 92 | } |
Cam53 | 0:ec6950d9a18d | 93 | } |
Cam53 | 0:ec6950d9a18d | 94 | |
Cam53 | 0:ec6950d9a18d | 95 | int sendcode(int numb, int *code, int cabeceraL, int cabeceraH, int Tdescanso, int Tlow, int Thigh) |
Cam53 | 0:ec6950d9a18d | 96 | { |
Cam53 | 0:ec6950d9a18d | 97 | led=0; |
Cam53 | 0:ec6950d9a18d | 98 | wait_ms(100); |
Cam53 | 0:ec6950d9a18d | 99 | descanso(cabeceraL); |
Cam53 | 0:ec6950d9a18d | 100 | wait_us(cabeceraH); |
Cam53 | 0:ec6950d9a18d | 101 | |
Cam53 | 0:ec6950d9a18d | 102 | for(i=0;i<numb;i++){ |
Cam53 | 0:ec6950d9a18d | 103 | if (code[i]>1000){ |
Cam53 | 0:ec6950d9a18d | 104 | descanso(Tdescanso); |
Cam53 | 0:ec6950d9a18d | 105 | wait_us(Thigh); |
Cam53 | 0:ec6950d9a18d | 106 | } |
Cam53 | 0:ec6950d9a18d | 107 | if (code[i]<1000){ |
Cam53 | 0:ec6950d9a18d | 108 | descanso(Tdescanso); |
Cam53 | 0:ec6950d9a18d | 109 | wait_us(Tlow); |
Cam53 | 0:ec6950d9a18d | 110 | } |
Cam53 | 0:ec6950d9a18d | 111 | } |
Cam53 | 0:ec6950d9a18d | 112 | descanso(Tdescanso); |
Cam53 | 0:ec6950d9a18d | 113 | return 0; |
Cam53 | 0:ec6950d9a18d | 114 | } |
Cam53 | 0:ec6950d9a18d | 115 | //*************************rutinas estrategicas de accionar controles********************* |
Cam53 | 0:ec6950d9a18d | 116 | void vol_up(){ |
Cam53 | 0:ec6950d9a18d | 117 | for(i=0;i<numb;i++){ |
Cam53 | 0:ec6950d9a18d | 118 | code[i]=vol_upHY[i]; |
Cam53 | 0:ec6950d9a18d | 119 | } |
Cam53 | 0:ec6950d9a18d | 120 | sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); |
Cam53 | 0:ec6950d9a18d | 121 | repeat(); |
Cam53 | 0:ec6950d9a18d | 122 | for(i=0;i<15;i++){ |
Cam53 | 0:ec6950d9a18d | 123 | for(j=0;j<2;j++){ |
Cam53 | 0:ec6950d9a18d | 124 | wait_ms(56); |
Cam53 | 0:ec6950d9a18d | 125 | repeat(); |
Cam53 | 0:ec6950d9a18d | 126 | } |
Cam53 | 0:ec6950d9a18d | 127 | } |
Cam53 | 0:ec6950d9a18d | 128 | } |
Cam53 | 0:ec6950d9a18d | 129 | //********************************** |
Cam53 | 0:ec6950d9a18d | 130 | void vol_dwn(){ |
Cam53 | 0:ec6950d9a18d | 131 | for(i=0;i<numb;i++){ |
Cam53 | 0:ec6950d9a18d | 132 | code[i]=vol_dwnHY[i]; |
Cam53 | 0:ec6950d9a18d | 133 | } |
Cam53 | 0:ec6950d9a18d | 134 | sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); |
Cam53 | 0:ec6950d9a18d | 135 | repeat(); |
Cam53 | 0:ec6950d9a18d | 136 | for(i=0;i<15;i++){ |
Cam53 | 0:ec6950d9a18d | 137 | for(j=0;j<2;j++){ |
Cam53 | 0:ec6950d9a18d | 138 | wait_ms(56); |
Cam53 | 0:ec6950d9a18d | 139 | repeat(); |
Cam53 | 0:ec6950d9a18d | 140 | } |
Cam53 | 0:ec6950d9a18d | 141 | } |
Cam53 | 0:ec6950d9a18d | 142 | } |
Cam53 | 0:ec6950d9a18d | 143 | //***************************************************** |
Cam53 | 0:ec6950d9a18d | 144 | void ch_up(){ |
Cam53 | 0:ec6950d9a18d | 145 | for(i=0;i<numb;i++){ |
Cam53 | 0:ec6950d9a18d | 146 | code[i]=ch_upHY[i]; |
Cam53 | 0:ec6950d9a18d | 147 | } |
Cam53 | 0:ec6950d9a18d | 148 | for(i=0;i<30;i++){ |
Cam53 | 0:ec6950d9a18d | 149 | sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); |
Cam53 | 0:ec6950d9a18d | 150 | wait(3); |
Cam53 | 0:ec6950d9a18d | 151 | |
Cam53 | 0:ec6950d9a18d | 152 | } |
Cam53 | 0:ec6950d9a18d | 153 | |
Cam53 | 0:ec6950d9a18d | 154 | } |
Cam53 | 0:ec6950d9a18d | 155 | //********************************************************* |
Cam53 | 0:ec6950d9a18d | 156 | void ch_dwn(){ |
Cam53 | 0:ec6950d9a18d | 157 | for(i=0;i<numb;i++){ |
Cam53 | 0:ec6950d9a18d | 158 | code[i]=ch_dwnHY[i]; |
Cam53 | 0:ec6950d9a18d | 159 | } |
Cam53 | 0:ec6950d9a18d | 160 | for(i=0;i<30;i++){ |
Cam53 | 0:ec6950d9a18d | 161 | sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); |
Cam53 | 0:ec6950d9a18d | 162 | wait(3); |
Cam53 | 0:ec6950d9a18d | 163 | |
Cam53 | 0:ec6950d9a18d | 164 | } |
Cam53 | 0:ec6950d9a18d | 165 | } |
Cam53 | 0:ec6950d9a18d | 166 | //****************************************************** |
Cam53 | 0:ec6950d9a18d | 167 | void mute(){ |
Cam53 | 0:ec6950d9a18d | 168 | for(i=0;i<numb;i++){ |
Cam53 | 0:ec6950d9a18d | 169 | code[i]=muteHY[i]; |
Cam53 | 0:ec6950d9a18d | 170 | } |
Cam53 | 0:ec6950d9a18d | 171 | sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); |
Cam53 | 0:ec6950d9a18d | 172 | wait(2); |
Cam53 | 0:ec6950d9a18d | 173 | } |
Cam53 | 0:ec6950d9a18d | 174 | //********************************************************** |
Cam53 | 0:ec6950d9a18d | 175 | void pwr(){ |
Cam53 | 0:ec6950d9a18d | 176 | for(i=0;i<numb;i++){ |
Cam53 | 0:ec6950d9a18d | 177 | code[i]=pwrHY[i]; |
Cam53 | 0:ec6950d9a18d | 178 | } |
Cam53 | 0:ec6950d9a18d | 179 | sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); |
Cam53 | 0:ec6950d9a18d | 180 | } |
Cam53 | 0:ec6950d9a18d | 181 | //**************************** |
Cam53 | 0:ec6950d9a18d | 182 | |
Cam53 | 0:ec6950d9a18d | 183 | void repeat(){ |
Cam53 | 0:ec6950d9a18d | 184 | wait_ms(42); |
Cam53 | 0:ec6950d9a18d | 185 | descanso(8800); |
Cam53 | 0:ec6950d9a18d | 186 | wait_us(2240); |
Cam53 | 0:ec6950d9a18d | 187 | descanso(560); |
Cam53 | 0:ec6950d9a18d | 188 | } |
Cam53 | 0:ec6950d9a18d | 189 | //************************************************ |