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

Revision:
0:ac878535ba97
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Jun 21 01:11:57 2019 +0000
@@ -0,0 +1,132 @@
+/*
+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
+
+