control loco

Dependencies:   mbed

Committer:
Cam53
Date:
Tue Jul 16 20:52:52 2019 +0000
Revision:
0:ec6950d9a18d
ok

Who changed what in which revision?

UserRevisionLine numberNew 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 //************************************************