Ir al contenido principal

Entradas

Mostrando entradas de agosto, 2016

Divisor de frecuencia para reloj de 1Hz en VHDL

Los circuitos digitales, a no ser que sean asíncronos, van comandados por un reloj cuya frecuencia puede variar según el tipo de sistema digital del que se trate. Desde microprocesador 6502 que funcionaba con un reloj de 1Mhz hasta los actuales, que funcionan en el orden de los gigahercios, no han pasado ni cuatro décadas. En un sistema digital complejo es habitual que necesitemos obtener diferentes frecuencia de reloj para diferentes subsistemas. Un ejemplo muy claro puede ser el de un reloj digital que tiene que contar los segundos, por lo tanto, necesita un reloj de 1Hz (un pulso por segundo). En este artículo vamos a ver un ejemplo práctico de cómo obtener un reloj de 1Hz a partir de otro de 50Mhz en VHDL, y vamos a probarlo un una FPGA. La técnica usada para dividir la frecuencia de un reloj es usar biestables conectados en cascada. En la siguiente esquema se detalla el funcionamiento. Cada biestable divide la frecuencia a la mitad, así que la idea es ir acoplando biesta...

Placa de control para seis servos basada en Atmega328 (Arduino)

A la hora de diseñar un robot que utilice varios motores servo, nos encontramos con un problema: hay que alimentarlos y son bastante glotones. Un robot articulado normalmente necesitará al menos cuatro servos, lo cual es un problema ya que, dependiendo del tipo de servos, un Arduino podría no ser capaz de proporcionar la intensidad de corriente necesaria para manejarlos. Hay que alimentarlos aparte, lo que también es engorroso, ya que hay que andar distribuyendo cables de alimentación para cada motor. Hay varias soluciones comerciales, pero como es más divertido hacérselo uno mismo, os presento una placa basada en Atmega328 con seis conectores alimentados para servos. Sin más preámbulo, os muestro el esquema y comentamos sobre él. El circuito se ha diseñado para trabajar con 9V, y un 7805 , junto con el condensador electrolítico C4, se encarga de regular la tensión a 5V. La salida de 5V se distribuye a las patillas 7 y 20 del Atmega328, pero también a los seis conecto...

Un (molesto) theremin con Arduino y un HC-SR04

El theremin o eterófono es un instrumento muy peculiar. Se basa en el hecho físico de que un cuerpo dentro de un campo electromagnético producido por un modulación de radiofrecuencia, produce cambios de frecuencia en dicho campo. El theremin usa dos circuitos con dos antenas: uno de volumen y otro de tono. Construir un theremin no es sencillo, pero usando un Arduino y un sensor de ultrasonidos podemos crear algo mucho más básico que no nos va a servir para hacer música, pero sí divertirnos un poco. Si te gusta la serie Big Bang Theory, seguramente recuerdas al doctor Sheldon Cooper tocando un theremin. Si no recuerdo mal, la sintonía de inicio de Star Trek. Con este montaje vamos a poder emularlo, no tanto como músico, sino más bien como compañero de piso molesto. Además del Arduino, necesitamos un sensor de ultrasonidos como el económico HC-SR04 y un buzzer (yo he usado un TMB12A05). Y el código para Arduino es éste. #define MIN_DISTANCIA 30 int echo = 9; // Pi...

Proyecto IoT: Sensor de temperatura wifi con Wifly y DHT11

Hace tiempo que tengo un sensor de temperatura y humedad DTH11 dando vueltas por los cajones, así que ha llegado el momento de probarlo. Junto con un Arduino y un módulo Wifly, voy a mostraros un sensor de temperatura y humedad que envíe datos periódicamente por WiFi a un servidor. Es la base de cualquier proyecto enmarcado en el Internet de las cosas (IoT). El sensor DHT11 Este sensor es muy barato y fácil de usar, así que es perfecto para un pequeño proyecto como éste. El siguiente esquema sacado del datasheet del fabricante muestra cómo ha de conectarse el sensor. Se puede encontrar en versión de tres y cuatro patillas. En la versión de cuatro, una simplemente está desconectada y no se utiliza. Además de los dos pines de alimentación (a 5V), la información se transmite por un único pin conectado al microcontrolador a través de una resistencia pull-up de 5K. En mi diseño he añadido un condensador entre VCC y GND para filtrar la entrada de alimentación. En la...