ESTA VERSION CUENTA LOS PULSOS DEL INTERUPTOR HORARIO, SIN INTERRUPCIÓN PERO CON ANTI-REBOTE

Dependencies:   mbed DebouncedIn

Este esquema corresponde a un circuito que se emplea para reparar un reloj CUKOO marca KAISER de forma estraña estos relojes dejan de funcionar con el tiempo.

El circuito diseñado acciona los mismos elementos electromecánicos originales que son:

Motor apertura de puerta y pista de salida del pájaro Solenoide que mueve las alas del pájaro.

Para accionar estos dispositivos se instalo un driver de bajo voltaje como muestra el circuito esquemático Para el sonido del CUKOO usamos un reproductor MP3 . este lee tres sonidos almacenados en una memoria micro SD de 4GB .

un sonido para el chirrido de una puerta que se abre. un sonido que es el golpe sonoro del CUKOO. un sonido de una puerta que se cierra de forma agresiva.

El circuito determina cuando el reloj acciona el suiche horario y cuenta la pulsación. según el numero de pulsaciones suena de 1 a 12 veces y repite.

un circuito de condensadores conforma la onda a ingresar al micro controlador que se ve en el esquema ya que el accionamiento inicial presenta demasiado rebote.

se le implemento amplificación de audio con control de volumen y se adiciono un banco de baterías de 4.5 voltios por el uso de tres pilas medianas de 1.5V.

Tanto el porta pilas de 4.5v como la caja que aloja el circuito electronico se imprimió en una impresora 3D el PCB se diseño en EASYEDA y se fabrico bajo pedido a CHINA.

Si requiere los archivos de audio contácteme y se los enviare

/media/uploads/tony63/cucucircuito.png

main.cpp

Committer:
tony63
Date:
2019-06-21
Revision:
0:ac878535ba97

File content as of revision 0:ac878535ba97:

/*
CONTROL DE RELOJ CUCU
produce sonidos mp3 almacenados en un moduludo de audio YX5300
usa un modulo BLUEPILL STM32F103XX
los sonidos se reproducen desde una tarjeta micro SD que los almacena y son 3:
-sonido de cucu
-sonido de apertura de puerta
-sonido de cierre de puerta
los sonidos se reproducen enviando el comando respectivo en formato HEX
se tomo la señal de suicheo que acciona la caja de sonido de un reloj de pendulo TIKROUND y se le filtro el rebote del microsuiche
para asi conformar un pulso Bajo que dura mas de 30ms.
Este pulso horario marca la hora dedel CUCU y verifica que dura mas de 30ms procede a hacer sonar el cucu con todo su acionamiento respectivo
el conteo se hace de 1 a 12, se puede incorporar una señal proveniente de una foto resistencia para que el cucu no suene en la oscuridad
*/


#include "mbed.h"
#include "DebouncedIn.h"
int i=0,j=0,k=0;

//...............salidas el sistema.....................
DigitalOut led(PC_13);// LED INDICADOR
DigitalOut m1(PB_15);// motor casita
DigitalOut m2(PB_14);// motor casita
DigitalOut m3(PB_13);// plunger pajaro
DigitalOut m4(PB_12);// plunger pajaro
//............entradas ........al sistema

DebouncedIn button(PC_15);
Serial bird(PB_6,PB_7); //Configura puerto UART de la BLUEPILL

//comandos del modulo YX5300 PARA HACER SONAR EL CUCU y otras cosas
const char cucu1[8]={0x7E, 0xFF, 0x06, 0x03, 0x00, 0x00, 0x01, 0xEF};//   CUCU
const char openP[8]={0x7E, 0xFF, 0x06, 0x03, 0x00, 0x00, 0x02, 0xEF};//   ABRIR PUERTA
const char closeP[8]={0x7E, 0xFF, 0x06, 0x03, 0x00, 0x00, 0x03, 0xEF};//  CERRAR PUERTA
const char slep[8]={0x7E, 0xFF, 0x06, 0x0A, 0x00, 0x00, 0x00, 0xEF};//    modo sleep
const char awake[8]={0x7E, 0xFF, 0x06, 0x0B, 0x00, 0x00, 0x00, 0xEF};//   despertar el modulo

//...entrar en modo sleep para ahorar bateria........................
//.....................SLEEP.........................................
void slp(){
    for(i=0;i<8;i++){
    bird.printf("%c",slep[i]);    
                    }
          }
       
//.....................AWAKE.........despierta el modulo...............
void awak(){
    for(i=0;i<8;i++){
    bird.printf("%c", awake[i]);    
                    }
           } 
      
//.....................CLOSE.......sonido..............................
void closed(){
    for(i=0;i<8;i++){
    bird.printf("%c", closeP[i]);    
                    }
             } 
//.....................OPEN........sonido..............................
void open(){
    for(i=0;i<8;i++){
    bird.printf("%c", openP[i]);    
                    }
           } 

//.....................SONIDOS DEL CUCU SEGUN LA HORA...............
// esta funcion produce el sonido del cucu segun la hora se encarga de accionar todos los mecanismos del cucu
// como la puerta y el pajaro, h es el valor de la hora de 1-12
void cucu(int h){
//.....................abrir la puerta..............................
    awak();
    wait(1);
    m1=1;
    m2=0;
    open();//sonido abrir sonido de puerta chirriando..
    wait(1);
      
//.................................................................. 
    m1=0;
    m2=0;
//....termina apertura de puerta    
     for(j=0;j<k;j++){//
//.....................acciona plunger pico.........................
     m3=1;
     m4=0;
     for(i=0;i<8;i++){
     bird.printf("%c", cucu1[i]);
                     }
     wait_ms(200);
     m3=0;
     m4=0;                
     wait_ms(800);                         
//...............se desenergiza el plunger pico.....................
     
                    }
                        
//..............se sierra la puerta..termino de sonar el cucu.......
    m1=0;
    m2=1;
    closed();//...sonido de puerta cerrada...........................
    wait(1);
    m1=0;
    m2=0;  //desenergiza puerta para ahorrar bateria................
    slp();
    wait(1);
    
       }                 

int main( ){
    led=0;
    wait(1);
    led=1;
    m1=0;
    m2=0;
    m3=0;
    m4=0;
   
    while(1) {
             if (button.falling()){
               ++k;  
                if(k>12){
                       k=1;
                       }
                cucu(k);  
                                   }
             
                                           
             }//while
}         //main