Autor Tema: (Ayuda)Alarma antirrobo para mi carro  (Leído 3569 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado luis_santillan

  • PIC10
  • *
  • Mensajes: 5
(Ayuda)Alarma antirrobo para mi carro
« en: 16 de Septiembre de 2008, 23:37:02 »
Hola que tal amigos del foro..

 Bueno resulta que se me ocurrio ponerle una proteccion extra a mi carro y me di a la tarea de hacer un proyectito nada dificil, al principio pense que no tendria problemas pero resulta que ahora funciona en ocaciones y en ocaciones se pone loco...

 La logica es la siguiente... Cuando yo abro el switch de mi carro el circuito se prende y no deja que encienda el carro hasta que yo toque un sensor de tacto... Luego del arranque todo es normal hasta que por algun motivo abro cualquier puerta de mi carro, entonces el circuito detecta esto y espera a que se cierre la puerta para comenzar un conteo  y su durante el minuto y medio siguiente no se toca el sensor el circuito manda una señal sonora de que aun no se ah hecho, posteriormente si aun no se toca el sensor en el siguiente medio minuto, el carro se apaga y se queda ciclado infinitamente hasta tocar el sensor nuevamente... Cada vez que toco el sensor de tacto manda una señal sonora tambien.

 Bueno la verdad soy nuevo en esto y se muy poco pero ojala me puedan ayudar pues no se si el problema es mi codigo o mi circuito, al primcipio es algo sencillo pero pues pienso ponerle algunas otras cosas.

 De antemano gracias


Codigo:
Código: CSS
  1. #include <16F84A.h>
  2. #FUSES NOWDT,XT,PUT,NOPROTECT    //FUSIBLES
  3. #use delay(clock=4000000)
  4.  
  5.  
  6. #define BUZER     PIN_B0
  7. #define SALIDA1   PIN_B1
  8. #define SALIDA2   PIN_B2
  9. #define RETRO     PIN_B3
  10. #define PUERTA    PIN_B5
  11. #define TACTO     PIN_B7
  12.  
  13. #use fast_io(B)
  14.   /*  Variables */
  15.  
  16.   int i;
  17.   int j=0;
  18.   int k=0;
  19.  
  20.  /*   **********PROGRAMA  PRINCIPAL********  */
  21.  
  22.  void main(void)
  23. {
  24.  
  25.  
  26. set_tris_b( 0b11111000 ); // configuracion de puertos
  27.  
  28. /**** Permiso de Arranque inicial ****/
  29.   output_low( BUZER );      //Apago buzer
  30.   output_low( SALIDA1 );    //Apago carro
  31.   output_low( SALIDA2 );    //hasta....    
  32.   delay_ms(200);
  33.   while(!input(TACTO)){}    //....Tocar Sensor
  34.  
  35.     // ****************************************
  36.          output_high( BUZER );    //Prendo buzer
  37.          delay_ms(200);
  38.          output_low( BUZER );
  39.      //*********************************************
  40.                  
  41.   output_high( SALIDA1 );    //Ya hay permiso de prender carro
  42.          if(!input(RETRO))
  43.          {output_low( SALIDA1 );      //Checo que este activada la salida
  44.           output_high( SALIDA2 ); }   //Aseguro que se prenda el carro
  45.            
  46.            
  47.  do{                            //bucle infinito
  48.  
  49.  
  50.  
  51.       if(!input(PUERTA))        //Puerta Abierta?
  52.  
  53.       {
  54.         while(input(PUERTA)){}   //....Espero a que se cierre la puerta
  55.      
  56.       //  *******  Puerta abierta  y cerrada inicia conteo  ******* //
  57.      
  58.          delay_ms(100);          // Espero a que pasen 100 ms y inicio conteo
  59.      
  60.          j=0; //Flag de sensor no tocado
  61.          for (i=0;i<190;i++)            //Conteo de 1.5 minutos      
  62.              {
  63.                   if(input(TACTO))    //Toque Sensor?
  64.                    {
  65.                  
  66.                      j=1;   //Flag de ya no siguiente bucle
  67.        // ****************************************
  68.                   output_high( BUZER );    //Prendo buzer
  69.                   delay_ms(200);
  70.                   output_low( BUZER );
  71.       //*********************************************
  72.                     break;  
  73.                    }
  74.                      delay_ms(500);
  75.              }
  76.            
  77.              
  78.          if(j==0) {      //Si ya toque sensor salto este bucle
  79.          
  80.       // Hasta este punto han pasado 1.5 Minutos damos alarma y
  81.       // si no se activa el sensor se apaga el carro
  82.                       K=0;   // Flag de sensor no tocado
  83.                      
  84.                      
  85.         // ********* Aviso sonore de sensor no todaco ******
  86.        
  87.                 for (i=1;i<4;i++)
  88.                 { output_high( BUZER );    //Prendo buzer y apago 3 veces
  89.                   delay_ms(200);
  90.                   output_low( BUZER );
  91.                   delay_ms(200);
  92.                  }
  93.                 for (i=0;i<65;i++)    //Bucle de .5 minutos aprox
  94.                     {
  95.                       if(input(TACTO))    //Toque Sensor?
  96.                          { output_high( SALIDA1 );    //Da permiso de prender carro
  97.                            
  98.                            k=1; //Flag de ya no apagar carro
  99.                   // ****************************************
  100.                   output_high( BUZER );    //Aviso que ya toque sensor
  101.                   delay_ms(200);
  102.                   output_low( buzer );
  103.                   //*********************************************
  104.                            break;  
  105.                          }  
  106.                            delay_ms(500);
  107.                            k=0;
  108.                      }  
  109.                      if(k==0);{
  110.                          output_low( SALIDA1 );    //Apaga SALIDA1 hasta....    
  111.                          output_low( BUZER );      //Apaga BUZER hasta....    
  112.                          output_low( SALIDA2 );    //Apaga SALIDA2 hasta....    
  113.                          while(!input(TACTO)){}    //....Tocar Sensor
  114.              // ****************************************
  115.                   output_high( BUZER );    //Aviso que ya se toco el sensor
  116.                   delay_ms(200);
  117.                   output_low( BUZER );
  118.              //*********************************************    
  119.                            output_high( SALIDA1 ); }   //Apaga carro hasta....    
  120.                    }
  121.                    
  122.       }
  123.      
  124.       else                      // Puerta CERRADA funcionamiento normal
  125.       {
  126.        output_high( SALIDA1 );    //Da permiso de prender carro
  127.        output_low( BUZER );       //APAGO BUZER
  128.        if(!input(RETRO))
  129.           {output_low( SALIDA1 );      //Checo que este activada la salida
  130.            output_high( SALIDA2 ); }   //Aseguro que se prenda el carro
  131.        delay_ms(500);
  132.       }
  133.          
  134.       }while(TRUE);                                                
  135. }


****************El esquema no pude subirlo pero lo adjunto, ojala alguien me puda decir como hcerle ******************

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: (Ayuda)Alarma antirrobo para mi carro
« Respuesta #1 en: 17 de Septiembre de 2008, 11:31:50 »
Hola Luis! Podrias decirnos cual es exactamente tu problema? proq entre tantas lineas de codigo es dificil identificarlo.
saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado luis_santillan

  • PIC10
  • *
  • Mensajes: 5
Re: (Ayuda)Alarma antirrobo para mi carro
« Respuesta #2 en: 18 de Septiembre de 2008, 01:42:13 »
Hola gera

Es verdad enrede mucho mi pregunta...

 Bueno lo que esta mal en mi circuito es que no me responde en algunas veces en el inicio, es decir que luego cuando abro el switch, el programa detecta que ya se toco y activa el rele parap oder dar marcha, esto no pasa siempre pero una de cada 10 veces lo llega hacer, la verdad no se si sera mi circuito o el programa pues luego funciona pero como te manciono hay ocaciones que sin tocar el sensor se salta a la rutin del funcionamiento normal.

Saludos y gracias

Código: CSS
  1. void main(void)
  2. {
  3.  
  4.  
  5. set_tris_b( 0b11111000 ); // configuracion de puertos
  6.  
  7. /**** Permiso de Arranque inicial ****/
  8.   output_low( BUZER );      //Apago buzer
  9.   output_low( SALIDA1 );    //Apago carro
  10.   output_low( SALIDA2 );    //hasta....    
  11.   delay_ms(200);
  12.   while(!input(TACTO)){}    //....Tocar Sensor
  13.  
  14.     // ****************************************
  15.          output_high( BUZER );    //Prendo buzer
  16.          delay_ms(200);
  17.          output_low( BUZER );
  18.      //*********************************************
  19.                  
  20.   output_high( SALIDA1 );    //Ya hay permiso de prender carro
  21.          if(!input(RETRO))
  22.          {output_low( SALIDA1 );      //Checo que este activada la salida
  23.           output_high( SALIDA2 ); }   //Aseguro que se prenda el carro

Sera mi circuito que tengo que poner un varistor o algo a la entrada?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: (Ayuda)Alarma antirrobo para mi carro
« Respuesta #3 en: 18 de Septiembre de 2008, 02:36:28 »
Quizás deberías probar a poner un antirrebotes en las entradas. Lo puedes hacer tanto por Hardware como por Software.
Mira aquí, por ejemplo: http://www.todopic.com.ar/foros/index.php?topic=12798.0

Desconectado luis_santillan

  • PIC10
  • *
  • Mensajes: 5
Re: (Ayuda)Alarma antirrobo para mi carro
« Respuesta #4 en: 19 de Septiembre de 2008, 01:54:18 »
Hola maestro nocturno, el simple echo de que leas mis humildes letras me alaga y esque la verdad por lo poco que llevo en esto tu pgina y la de redpic me han ayudado mucho.

Por otro lado te comento que mi problema no es el rebote de mi sensor de tacto pues ese funciona a la perfeccion, el problema esta en que al estar jugando en abrir el switch en algunas de las veces que se energiza el circuito se salta la parte de la espera a tocar el sensor.

Por tal razon yo apague todo en inicio y puse un "no hagas nada hasta que se toque el sensor" el problema es que el micro se hace "a veces" el desentendido y se salta a la parte de permiso para prender el carro.

Al principio pense que un simple retardo podria ayudar a que se estabilizara el circuito y si es que la parte de mi sensor mandaba una señal de "tocado" al ser energizado arreglaria todo.... Pero no me funciono pues hasta la parte del retardo se saltaba.

Estoy pensando en dejar energizado siempre el micro y en todo caso estar checando la parte de cuando se abre el switch para poder asi ya entrar a la rutina que me da lata.


Saludos. :)

Desconectado luis_santillan

  • PIC10
  • *
  • Mensajes: 5
Re: (Ayuda)Alarma antirrobo para mi carro
« Respuesta #5 en: 19 de Septiembre de 2008, 02:06:27 »
Bueno yo de nuevo

Ya pude subir mi circuito a unba pagina aqui esta haber si se pudo sibir bien:


[/URL][/img]

Desconectado luis_santillan

  • PIC10
  • *
  • Mensajes: 5
Re: (Ayuda)Alarma antirrobo para mi carro
« Respuesta #6 en: 19 de Septiembre de 2008, 02:09:34 »
Huy no salio bien hay va de nuevo haber si le atino jejejeje




o esta haber si es

[img=http://www.imaxenes.com/mini/alarme1gj54zg.jpg]


 

anything