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

Committer:
tony63
Date:
Fri Jun 21 01:11:57 2019 +0000
Revision:
0:ac878535ba97
RELOJ CUKOO VER 2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tony63 0:ac878535ba97 1 /*
tony63 0:ac878535ba97 2 CONTROL DE RELOJ CUCU
tony63 0:ac878535ba97 3 produce sonidos mp3 almacenados en un moduludo de audio YX5300
tony63 0:ac878535ba97 4 usa un modulo BLUEPILL STM32F103XX
tony63 0:ac878535ba97 5 los sonidos se reproducen desde una tarjeta micro SD que los almacena y son 3:
tony63 0:ac878535ba97 6 -sonido de cucu
tony63 0:ac878535ba97 7 -sonido de apertura de puerta
tony63 0:ac878535ba97 8 -sonido de cierre de puerta
tony63 0:ac878535ba97 9 los sonidos se reproducen enviando el comando respectivo en formato HEX
tony63 0:ac878535ba97 10 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
tony63 0:ac878535ba97 11 para asi conformar un pulso Bajo que dura mas de 30ms.
tony63 0:ac878535ba97 12 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
tony63 0:ac878535ba97 13 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
tony63 0:ac878535ba97 14 */
tony63 0:ac878535ba97 15
tony63 0:ac878535ba97 16
tony63 0:ac878535ba97 17 #include "mbed.h"
tony63 0:ac878535ba97 18 #include "DebouncedIn.h"
tony63 0:ac878535ba97 19 int i=0,j=0,k=0;
tony63 0:ac878535ba97 20
tony63 0:ac878535ba97 21 //...............salidas el sistema.....................
tony63 0:ac878535ba97 22 DigitalOut led(PC_13);// LED INDICADOR
tony63 0:ac878535ba97 23 DigitalOut m1(PB_15);// motor casita
tony63 0:ac878535ba97 24 DigitalOut m2(PB_14);// motor casita
tony63 0:ac878535ba97 25 DigitalOut m3(PB_13);// plunger pajaro
tony63 0:ac878535ba97 26 DigitalOut m4(PB_12);// plunger pajaro
tony63 0:ac878535ba97 27 //............entradas ........al sistema
tony63 0:ac878535ba97 28
tony63 0:ac878535ba97 29 DebouncedIn button(PC_15);
tony63 0:ac878535ba97 30 Serial bird(PB_6,PB_7); //Configura puerto UART de la BLUEPILL
tony63 0:ac878535ba97 31
tony63 0:ac878535ba97 32 //comandos del modulo YX5300 PARA HACER SONAR EL CUCU y otras cosas
tony63 0:ac878535ba97 33 const char cucu1[8]={0x7E, 0xFF, 0x06, 0x03, 0x00, 0x00, 0x01, 0xEF};// CUCU
tony63 0:ac878535ba97 34 const char openP[8]={0x7E, 0xFF, 0x06, 0x03, 0x00, 0x00, 0x02, 0xEF};// ABRIR PUERTA
tony63 0:ac878535ba97 35 const char closeP[8]={0x7E, 0xFF, 0x06, 0x03, 0x00, 0x00, 0x03, 0xEF};// CERRAR PUERTA
tony63 0:ac878535ba97 36 const char slep[8]={0x7E, 0xFF, 0x06, 0x0A, 0x00, 0x00, 0x00, 0xEF};// modo sleep
tony63 0:ac878535ba97 37 const char awake[8]={0x7E, 0xFF, 0x06, 0x0B, 0x00, 0x00, 0x00, 0xEF};// despertar el modulo
tony63 0:ac878535ba97 38
tony63 0:ac878535ba97 39 //...entrar en modo sleep para ahorar bateria........................
tony63 0:ac878535ba97 40 //.....................SLEEP.........................................
tony63 0:ac878535ba97 41 void slp(){
tony63 0:ac878535ba97 42 for(i=0;i<8;i++){
tony63 0:ac878535ba97 43 bird.printf("%c",slep[i]);
tony63 0:ac878535ba97 44 }
tony63 0:ac878535ba97 45 }
tony63 0:ac878535ba97 46
tony63 0:ac878535ba97 47 //.....................AWAKE.........despierta el modulo...............
tony63 0:ac878535ba97 48 void awak(){
tony63 0:ac878535ba97 49 for(i=0;i<8;i++){
tony63 0:ac878535ba97 50 bird.printf("%c", awake[i]);
tony63 0:ac878535ba97 51 }
tony63 0:ac878535ba97 52 }
tony63 0:ac878535ba97 53
tony63 0:ac878535ba97 54 //.....................CLOSE.......sonido..............................
tony63 0:ac878535ba97 55 void closed(){
tony63 0:ac878535ba97 56 for(i=0;i<8;i++){
tony63 0:ac878535ba97 57 bird.printf("%c", closeP[i]);
tony63 0:ac878535ba97 58 }
tony63 0:ac878535ba97 59 }
tony63 0:ac878535ba97 60 //.....................OPEN........sonido..............................
tony63 0:ac878535ba97 61 void open(){
tony63 0:ac878535ba97 62 for(i=0;i<8;i++){
tony63 0:ac878535ba97 63 bird.printf("%c", openP[i]);
tony63 0:ac878535ba97 64 }
tony63 0:ac878535ba97 65 }
tony63 0:ac878535ba97 66
tony63 0:ac878535ba97 67 //.....................SONIDOS DEL CUCU SEGUN LA HORA...............
tony63 0:ac878535ba97 68 // esta funcion produce el sonido del cucu segun la hora se encarga de accionar todos los mecanismos del cucu
tony63 0:ac878535ba97 69 // como la puerta y el pajaro, h es el valor de la hora de 1-12
tony63 0:ac878535ba97 70 void cucu(int h){
tony63 0:ac878535ba97 71 //.....................abrir la puerta..............................
tony63 0:ac878535ba97 72 awak();
tony63 0:ac878535ba97 73 wait(1);
tony63 0:ac878535ba97 74 m1=1;
tony63 0:ac878535ba97 75 m2=0;
tony63 0:ac878535ba97 76 open();//sonido abrir sonido de puerta chirriando..
tony63 0:ac878535ba97 77 wait(1);
tony63 0:ac878535ba97 78
tony63 0:ac878535ba97 79 //..................................................................
tony63 0:ac878535ba97 80 m1=0;
tony63 0:ac878535ba97 81 m2=0;
tony63 0:ac878535ba97 82 //....termina apertura de puerta
tony63 0:ac878535ba97 83 for(j=0;j<k;j++){//
tony63 0:ac878535ba97 84 //.....................acciona plunger pico.........................
tony63 0:ac878535ba97 85 m3=1;
tony63 0:ac878535ba97 86 m4=0;
tony63 0:ac878535ba97 87 for(i=0;i<8;i++){
tony63 0:ac878535ba97 88 bird.printf("%c", cucu1[i]);
tony63 0:ac878535ba97 89 }
tony63 0:ac878535ba97 90 wait_ms(200);
tony63 0:ac878535ba97 91 m3=0;
tony63 0:ac878535ba97 92 m4=0;
tony63 0:ac878535ba97 93 wait_ms(800);
tony63 0:ac878535ba97 94 //...............se desenergiza el plunger pico.....................
tony63 0:ac878535ba97 95
tony63 0:ac878535ba97 96 }
tony63 0:ac878535ba97 97
tony63 0:ac878535ba97 98 //..............se sierra la puerta..termino de sonar el cucu.......
tony63 0:ac878535ba97 99 m1=0;
tony63 0:ac878535ba97 100 m2=1;
tony63 0:ac878535ba97 101 closed();//...sonido de puerta cerrada...........................
tony63 0:ac878535ba97 102 wait(1);
tony63 0:ac878535ba97 103 m1=0;
tony63 0:ac878535ba97 104 m2=0; //desenergiza puerta para ahorrar bateria................
tony63 0:ac878535ba97 105 slp();
tony63 0:ac878535ba97 106 wait(1);
tony63 0:ac878535ba97 107
tony63 0:ac878535ba97 108 }
tony63 0:ac878535ba97 109
tony63 0:ac878535ba97 110 int main( ){
tony63 0:ac878535ba97 111 led=0;
tony63 0:ac878535ba97 112 wait(1);
tony63 0:ac878535ba97 113 led=1;
tony63 0:ac878535ba97 114 m1=0;
tony63 0:ac878535ba97 115 m2=0;
tony63 0:ac878535ba97 116 m3=0;
tony63 0:ac878535ba97 117 m4=0;
tony63 0:ac878535ba97 118
tony63 0:ac878535ba97 119 while(1) {
tony63 0:ac878535ba97 120 if (button.falling()){
tony63 0:ac878535ba97 121 ++k;
tony63 0:ac878535ba97 122 if(k>12){
tony63 0:ac878535ba97 123 k=1;
tony63 0:ac878535ba97 124 }
tony63 0:ac878535ba97 125 cucu(k);
tony63 0:ac878535ba97 126 }
tony63 0:ac878535ba97 127
tony63 0:ac878535ba97 128
tony63 0:ac878535ba97 129 }//while
tony63 0:ac878535ba97 130 } //main
tony63 0:ac878535ba97 131
tony63 0:ac878535ba97 132