PROGRAMA QUE EMITE MANDOS IRDA DE TV HYUNDAY

Dependencies:   mbed

ESTE PROGRAMA HACE USO DE UN PROGRAMA PREVIO https://os.mbed.com/users/tony63/code/CAPTURAS_IRDA1/

QUE CAPTURA TRAMAS DE CONTROLES REMOTOS ESTAS TRAMAS SE INCRUSTAN EN ESTE PROGRAMA Y CON EL SE REALIZA UN SISTEMA AUTONOMO QUE EMITE AL AZAR CODIGOS IRDA PARA CULTURIZAR UN USUARIO QUE DE FORMA NEUROTICA CAMBIA Y CAMBIA LOS CANALES ESTO HACE PERDER LA PACIENCIA DE QUIEN LO ACOMPAÑAN.

ESTE APARATO SE INSTALA OCULTA Y LE PASA UNA VERDADERA BROMA AL OPERADOR DEL CONTROL. QUE TERMINA DESISITIENDO DE SU CONDUCTA ENFERMIZA Y TERMINA POR APAGAR EL TV O LLAMAR AL TECNICO.

Revision:
0:1886145e8e33
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Sep 29 14:37:25 2017 +0000
@@ -0,0 +1,194 @@
+/******************** 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 pwrHY[]={575,548,548,575,549,549,575,548,1686,1686,1686,1687,1685,1687,549,1686,
+                         1686,1686,576,548,549,576,549,549,576,549,1687,1687,1686,1686,1687,1686};
+const unsigned vol_upHY[]={556,582,557,557,581,555,556,583,1693,1692,1694,1693,1694,1694,556,
+                          1693,556,1695,1695,583,1695,583,557,557,1694,558,583,1695,585,1695,1696,1696};                         
+const unsigned vol_dwnHY[]={563,564,590,563,562,588,563,563,1700,1700,1699,1700,1700,1699,589,
+                            1700,588,1700,587,1699,1699,562,588,562,1699,561,1699,561,561,1699,1699,1699};
+const unsigned ch_upHY[]={581,580,1694,581,580,580,581,580,1695,1696,605,1694,1695,1695,1695,1694,580,
+                          580,579,580,580,579,579,581,1695,1695,1695,1696,1696,1696,1695,1697,};
+const unsigned ch_dwnHY[]={608,607,1700,607,608,608,608,584,1699,1700,608,1699,1698,1698,1699,1699,1699,
+                           607,583,606,583,607,584,583,608,1699,1700,1700,1699,1699,1698,1699};                         
+                                
+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