Laura Duque
/
CONTROLLOCOIRDA
control loco
Diff: main.cpp
- Revision:
- 0:ec6950d9a18d
diff -r 000000000000 -r ec6950d9a18d main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jul 16 20:52:52 2019 +0000 @@ -0,0 +1,189 @@ +/******************** ENLOQUECEDOR DE CONTROL REMOTO TV SMART HYUNDAI************************************************* +//este programa interfiere de forma loca la operacion de un televisor +//emite codigos de tv con el fin de fastidiar al televidente +/*la emision es aleatoria para + 1 mute + 2 on/off + 3 vol+ + 4 vol- + 5 canal + + 6 canal - +*/ +#include "mbed.h" +DigitalOut ledA (LED1); +DigitalOut ledR (LED2); +DigitalOut ledV (LED3); + +DigitalOut led(PTE31);//al transistor del led infrarrojo pin +int i,j; +int t; +//*********************TIEMPO PARA TELEVISOR HYUNDAI START TV**************************************** +int cabeceraL=9000; +int cabeceraH=4555; +int Tdescanso=500; +int Tlow=630; +int Thigh=1750; +int duracion; //duracion de un pulso bajo +int numb = 33; +void mute(); +void vol_up(); +void vol_dwn(); +void ch_up(); +void ch_dwn(); +void pwr(); +void repeat(); +int sendcode(int numb, int *code, int cabeceraL, int cabeceraH, int Tdescanso, int Tlow, int Thigh); +int code[65]; +int dato[65]; +int descanso(int duracion); +//const unsigned muteHY[] = {581,556,555,582,554,556,581,556,1693,1692,1692,1693,1691,1692, +// 555,1692,1694,554,1692,554,1692,554,556,581,554,1692,555,1693,554,1692,1692,1692}; +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}; +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}; +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}; +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}; +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}; + +int main() { + ledA=1; + ledR=1; + ledV=1; + ledA=0; + //for(i=0;i<numb;i++){ + // code[i]=muteHY[i]; + // } + + while(1){ + + mute(); + wait(2); + mute(); + wait(2); + vol_up(); + wait(1); + vol_dwn(); + wait(1); + ch_up(); + wait(1); + ch_dwn(); + wait(1); + pwr(); + wait(5); + pwr(); + wait(3); + //sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); + //wait(5); + } +} +//la funcion descanso hace una modulacon, osea un pulso bajo por el tiempo indicado en duracion +int descanso(int duracion){ + Timer t; + t.reset(); + t.start(); + while(1) + { + led=1; + wait_us(8); + led=0; + led=0; + wait_us(9); + if(t.read_us() > duracion) return 0; + + } + } + +int sendcode(int numb, int *code, int cabeceraL, int cabeceraH, int Tdescanso, int Tlow, int Thigh) +{ + led=0; + wait_ms(100); + descanso(cabeceraL); + wait_us(cabeceraH); + + for(i=0;i<numb;i++){ + if (code[i]>1000){ + descanso(Tdescanso); + wait_us(Thigh); + } + if (code[i]<1000){ + descanso(Tdescanso); + wait_us(Tlow); + } + } + descanso(Tdescanso); + return 0; +} +//*************************rutinas estrategicas de accionar controles********************* +void vol_up(){ +for(i=0;i<numb;i++){ + code[i]=vol_upHY[i]; + } +sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); +repeat(); +for(i=0;i<15;i++){ + for(j=0;j<2;j++){ + wait_ms(56); + repeat(); + } + } +} +//********************************** +void vol_dwn(){ +for(i=0;i<numb;i++){ + code[i]=vol_dwnHY[i]; + } +sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); +repeat(); +for(i=0;i<15;i++){ + for(j=0;j<2;j++){ + wait_ms(56); + repeat(); + } + } +} +//***************************************************** +void ch_up(){ +for(i=0;i<numb;i++){ + code[i]=ch_upHY[i]; + } + for(i=0;i<30;i++){ + sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); + wait(3); + + } + +} +//********************************************************* +void ch_dwn(){ +for(i=0;i<numb;i++){ + code[i]=ch_dwnHY[i]; + } +for(i=0;i<30;i++){ +sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); + wait(3); + + } + } +//****************************************************** +void mute(){ + for(i=0;i<numb;i++){ + code[i]=muteHY[i]; + } +sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); + wait(2); +} +//********************************************************** +void pwr(){ + for(i=0;i<numb;i++){ + code[i]=pwrHY[i]; + } +sendcode(numb,code,cabeceraL, cabeceraH, Tdescanso, Tlow, Thigh); +} +//**************************** + +void repeat(){ + wait_ms(42); + descanso(8800); + wait_us(2240); + descanso(560); + } +//************************************************ \ No newline at end of file