sábado, 27 de septiembre de 2014

La magia del cristal de 32.768KHz y alimentando canitos

Siempre me habia preguntado por que carajos los relojes "digitales" usan un cristal de cuarzo de 32.768KHz, digo

Se podria usar uno de 1KHz  o 1Mhz o cualquier valor "exacto" y generar la frecuencia de 1 Hz

(una vez cada segundo)

Entonces me puse a dividir por todos los numeros y en en 32 paso algo interesante, resulta que el cociente de

32.768/32 = 1.024

Dicho valor se asemeja a 1024, que es 2exp10, y este valor es una valor binario, de los que usan las computadoras, despues prosigui dividiendo y en el 64 paso nuevamente algo...

32.768/64= 0.512


Ahi fue cuando me di cuenta que no era coincidencia, y los valores binarios(2^n)  estaban ( estan) relacionados con dicho valor...

es por ello que se prefieren, porque en llegan a limite de la cuenta binaria y automaticamente se desbordan.

Osea...

en las computadoras y cualquier sistema digital ocurre algo, un fenomeno llamado desbordamiento, ese desbordamento sirve para iniciar nuevamente un ciclo y ese momento puede definir otras acciones.

Las computadoras solo pueden contar hasta ciertos numeros por ejemplo... un microcontrolador de 8 bits solo puede contar hast el 255, en caso de necesitar mas de ese numero, es necesario usar de la imaginacion para hacer un programa para que usando 2 bytes se pueda seguir contando...

Pero bueno, ya me perdi, el hecho es que este valor, es el mas optimo (tambien podria ser algun multiplo), y ahora entiendo porque se usa dicho valor.

-----------------------------------------------------------------------------------------------------------


Lo anterior fue deducido de la inquietud de hacer un alimentador automatico de mascotas...

Siempre que mis padres vacacionan y me encargan alimentar a su perro, gato, pez o mascota en cuestion, mi madre lo dice:

"Deberias hacer algo que le de de comer a los animales"

Y creanme que yo pienso lo mismo.

De primera mano pense que contectar un RTC ( reloj en tiempo real) a un micro el cual solo compararia el valor del RTC con el que se quiera ( la hr a al  cual se debe aliementar a la mascota.

Pero ciertamente es mucho, es como matar una mosca con un cañon y la parte del hardware es un tanto compleja, sin mencionar que jamas he usado comunicacion serie :(

Siempre he sido partidario del diseño minimalista, pero eso es un arte... que sinceramente no domino muy bien.

Quiza la parte complicada es la interfaz de usuario, es lo que mas acompleja este proyecto.

La interfaz de usuario es la forma en la que el usuario se comunica con la maquina.

Lo mas sencillo y tambien caro es usar uno de estos:
se llaman displays LCD y son muy amigables con el usuario, pero su costo hace que el costo total ( osea el de producto) se incremente.

La segunda opcion son estas cosas:

Se llaman displays de 7 segmentos y ocupan mucho hardware, no son tan caros.

Finalmente una opcion es usar LED asi como tal... Pero si se usan LEDs, como debe ser la forma en la que indiquen lo que uno desea?


mas despacio...

El dispositivo hace basicamente una sola cosa: Compara 2 tiempos, uno fijo; la hr a la cual se deber alimentar a la mascota y uno variable ;el tiempo.

El dispositivo debe ser capaz de decirle al usuario ambas, puede ser permanentemente o solo cual el usuario lo solicite, considero esta ultima mejor ya que reduce el consumo de corriente.

En el display LCD es posible desplegar ambas, lo cual para el usuario es muy comodo, pero en el caso de los displays de 7 segmentos, tiene sentido tener un par de displays para la hr de comer y otro para la hora actual?


Pues NO.

Aqui viene un concepto muy interesante llamado "Multiplexacion", que consiste a grandes rasgos en usar una misma cosa para varias cosas....

Como por ejemplo el hoyito del pene, el limon, los cuchillos, los celulares, bueno hay muchos ejemplos.

Pero como es posible usar una cosa para varias cosas?

Mediante un boton o quiza un switch, mientras presionamos el boton nos mostrará la hr de alimentar y cuando este de libere ( se deje de presionar) entonces observareos la hr actual...

Con esto se resuelve mucho...

Otro gran problema es la configuracion inicial, es decir, cuando prendamos el aparato este comenzara  contar desde 00:00 y su hr de alimentar es 00:00,

es necesario poder modificar ambas horas ya que esto nos permite tener el control de la alimentacion, de lo contrario tendriamos que encender el aparato a las 12:00 am/pm,

Bueno, entonces ya pasa no hacerla larga.

Me decidi por los leds.

son necesarios solamente...

 2 LEDs
3 botones
1 Switch o boton
el actuador ( el que hara que se mueva el motor o solenoide)


ahi va la explicacion

Los leds son para indicar uno las hrs y el otro los minutos.

Los botones son para fijar: hr, min y el botor de revisar

con el cual al presionarlo hara que parpadeen el numero de hrs y minutos en los cuales se programo.

un boton o switch para seleecionar si se esta observando la hr actual o la hr de comer.

Iba a poner un dibujo pero ya me dio hueva :(