Mostrando entradas con la etiqueta microcontrolador. Mostrar todas las entradas
Mostrando entradas con la etiqueta microcontrolador. Mostrar todas las entradas

domingo, 6 de noviembre de 2011

ARDUINO, la manera más sencilla y al mínimo precio para iniciarse con los microcontroladores

Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos.

Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basasdo en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).

Las placas pueden ser hechas a mano o compradas montadas de fábrica; el software puede ser descargado de forma gratuita. Los ficheros de diseño de referencia (CAD) están disponibles bajo una licencia abierta, así pues eres libre de adaptarlos a tus necesidades.

Arduino recibió una Mención Honorífica en la sección Digital Communities de la edición del 2006 del Ars Electronica Prix. El equipo Arduino (Arduino team) es: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis. Credits

Fuente: Pagina oficial de Arduino



sábado, 25 de diciembre de 2010

PWM: Una manera sencilla de controlar un nivel de tensión

En muchos casos se necesita hacer un control preciso de la tensión analógica. Por ejemplo, en el caso de un motor de contínua, la velocidad de giro es directamente proporcional a una tensión (o voltaje) aplicado.

Desde un dispositivo digital, como pueda ser un microcontrolador, no es sencillo el obtener un nivel de tensión analógico preciso. Es necesario de la utilización de dispositivos DAC, que convierten codificaciones digitales en niveles de tensión dentro de un rango.

Además la precisión alcanzada no es del todo aceptable en casos de un microcontrolador de 8 bits. Por ejemplo, si necesitamos reproducir una señal con un rango de valores de 5V, con una precisión de 8 bits, podemos tener 256 niveles diferentes de entre 0 y 5 V, o lo que es lo mismo, saltos mínimos de 5/256= 19.5 mV. El aspecto de esta señal presentará escalones como mínimo de incrementos o decrementos de 19.5mV.




El PWM, o modulación por anchura de pulsos, permite el uso de señales de dos niveles (pulsos que conmutan por ejemplo de o a 5V) para conformar ondas de cualquier aspecto de entre 0 y 5 voltios y solucionar en parte el problema de la poca precisión explicada anteriormente. El aspecto se consigue añadiendo un pequeño filtro paso bajo.

Si generamos una señal cuadrada (pulsos de duración determinada que conmutan de 0 a 5V) éstos tendrán un nivel de tensión continua que será el valor medio de los niveles. Es fácil de comprender: si tenemos durante un segundo la señal a 5 voltios y durante otro segundo 0 voltios, el nivel medio en 2 segunsdos habrá sido de 2.5 V exactos. Esto es lo que se consigue con el filtro pasobajo sobre la señal, que provoca destruir la señal con frecuencia alta, la pulsante, quedandose exclusivamente con la señal media.

Si esto lo extrapolamos a frecuencias mucho mas rápidas, del orden de decenas de kiloherzios o centenas de kilohercios podremos ir conformando señales con niveles de tensión variable, ajustando la duración del tiempo en el que esa señal permance a nivel alto, o lo que se denomina el ciclo de trabajo.


En el ejemplo explicado, el ciclo de trabajo era del 50%, puesto que la mitad de tiempo estaba a 5V y la mitad de tiempo a nivel bajo. Esto daba como resultado una señal de un 50% de nivel del máximo, los 2.5V. Si utilizamos una señal, por ejemplo, que esté el 70% a nivel alto, tendremos un nivel medio, tras el filtro, de 3.5V (0.70*5).

Por tanto, lo que se trata es de traducir el tanto por ciento del máximo de tensión que se quiere en tanto por ciento de duración de nivel alto de la señal cuadrada o pulsante. Esto se realiza sin cambiar la frecuencia de la señal consiguiendose un control sencillo del nivel de tensión.

Si por ejemplo, según la respuesta del filtro de la figura con una frecuencia de corte a 5khz, utilizamos una señal cuadrada de, por ejemplo 100 khz, esta señal quedará atenuada prácticamente al completo, pasando las componentes más bajas, que son exclusivamente las de 0 herzios, o las del la tensión media.


sábado, 11 de diciembre de 2010

Medición de velocidad de viento


Explico conceptualmente algunas de las maneras para intentar medir la velocidad instantánea del viento.


Opción 1

Haciendo uso de anemómetro casero, es posible medir el número de vueltas por cada cierto tiempo que se producen por efecto del viento. La velocidad del viento lineal se otiene al conocer la velocidad angular (vueltas/s). Si el radio del giro de las cazoletas es de cierto valor (x m) y gira 1 (vuelta/s), la velocidad lineal será 2*pi*x (m/s), o lo que es lo mismo 2*pi*x*3600/1000 (km/h).


La idea es realizar un anemómetro casero, con una pequeña electrónica añadida. En el terminal de giro se añade un detector de paso (para contar las vueltas). Este detector de paso generará eventos capturados por una entrada de capturadel microcontrolador. Las opciones que planteo para la realización del detector de paso son:
  • Contacto mecánico al paso: cada vez que se complete un giro se cerrará el circuito. Puedo utilizar unas escobillas que contacten con un metal
  • Detector luminoso: con un fototransistor y un fotodiodo romper el haz que los interconecta al completarse un ciclo
  • Detector magnético: de igual manera que realizan la gran mayoría de contadores de vuelta de los habituales velocímetros de las bicicletas, el paso del imán puede inducir corriente al completarse una vuelta

Opción 2

Una opción diferente de creación de anemómetro casero es mediante una un motor DC sin escobillas. Esta opción puede ser más sencilla aunque necesita de una calibración diferente.

Haciendo uso del efecto inverso de un motor de contínua que convierte energía eléctrica en energía mecánica, o movimiento, si se fuerza un movimiento en el rotor (mediante el efecto del viento), se induce una fuerza tensión electromotriz en los terminales eléctricos de este motor, actuando como un generador eléctrico. La tensión será tanto mayor cuanta mayor velocidad exista en el rotor. Este es el principio de acción de un aerogenerador.


Mediante una entrada analógica del microcontrolador, será posible convertirla en el ADC y sacar una relación lineal de tensión-velocidad de viento. Quizás sea necesario una adaptación de la tensión previa a la entrada del microcontrolador, pues ésta puede ser de valor muy pequeño.

Dejo un vídeo explicativo del comportamiento de l motor como generador eléctrico y como generador de movimiento (video motor)

Algunas opciones más?

¿Qué electrónica usar para control de la estación?

Como dispongo de una placa de evaluación de un RS12x de Freescale de 16 bits, éste será nuestro punto de partida para recoger las informaciones de los sensores que vaya realizando.




La placa de evaluación que integra este microcontrolador es la siguiente:



Este microcontrolador, de automoción, dispone de mucho más de lo que necesito (enlace al microcontrolador en Freescale)

Me haré con una versión de CodeWarrior para la programación en C de las rutinas necesarias.

Dejo el enlace de la herramienta de programación.

No tendré que hacerme con un programador BDM, ya que en la propia placa se integra un microcontrolador para programación desde USB.