Atmel
A continuación escribiré el código de un programa ejemplo donde se aplica una forma sencilla de generar ondas cuadradas. Para este ejemplo se han utlizado las interrupciones por CTC (Clear Timer on Compare) del Timer0, Timer1 y Timer 2. Con el Timer 0 generamos una frecuencia de 1kHz, con el Timer1 generamos 0.5kHz y con el Timer3 4kHz.
El programa principal o loop no hace nada, todas las acciones estan realizadas dentro de las respectivas interrupciones. Cada interrupción da vuelta 1 pin en el cual se encuentra conectado un LED. Sigue leyendo
Las interrupciones del timer hacen que el programa del bucle principal sea interrumpido a intervalos precisos de tiempo para realizar una tarea especifica. Una vez realizada esta tarea el procesador vuelve a hacer la tarea que habia interrumpido en el bucle principal. Sigue leyendo
El objeto de este articulo es programar en ANSI C standard utilizando una placa económica como Arduino basada en un microcontrolador Atmega328P. Para lo cual usaremos como herrmienta de trabajo AVR Studio 5, entorno de desarrollo integrado (IDE). Un entorno único para todos los dispositivos AVR, posee integrado el compilador gcc y es gratuito. El entorno está bien hecho, con una interfaz moderna y algunas funciones como la de autocompletar.
A continuación voy a explicar como configurar AVRDude en AVR Studio 5 para cargar en nuestra placa Arduino el codigo compilado. Sigue leyendo
La placa de proyectos Arduino es basicamente una placa donde podemos colocar nustro chip ATMEGA168/328 y con la cual podemos completar nuetro proyecto y no necesitar mas usar la placa de desarrollo de Arduino. Simplemente transferimos el chip programado en nuestra placa Arduino que usamos para desarrollar a la placa de nuestro proyecto. Es asi que nuestro proyecto terminado no necesita llevar la placa original de Arduino. He aquí algunas instrucciones básicas para su montaje y los primeros pasos… Sigue leyendo
El artículo describe de una manera muy sencilla para ampliar puertos I/O con un par de microcontroladores ATmega328. Este es un método mejor que el uso de un Arduino Mega porque todos los perifericos se pueden utilizar al mismo tiempo.
No es un diseño tan barato como usar un multiplexor, registros de desplazamiento o cualquier otro componente, pero es bastante simple. Esto es muy útil en el caso que debamos usar una gran cantidad de puertos o mas cantidad de shilds. Todo lo que se necesita es un par de Atmega328. Sigue leyendo
Introducción.
Bienvenidos al mundo inalámbrico de XBee. Quizás hayas escuchado de él, o quizás no, de cualquier manera sigue leyendo para conocer los detalles de estos dispositivos. Los XBee´s son pequeñísimos chip azules capaces de comunicarse de forma inalámbrica unos con otros. Pueden hacer cosas simples, como reemplazar un par de cables en una comunicación serial, lo cual es genial cuando deseas crear, por ejemplo, un vehículo radiocontrolado.
Pero ¿Cuántos módulos se necesitan? ¿Cuál es la diferencia entre XBee Series 1 y Series 2? ¿Por qué hay tantos tipos de antena para los XBee? ¿Por qué algunos se llaman XBee PRO?, o los que no dicen PRO ¿Son inadecuados? Sigue leyendo
Interrupciones!
Interrupciones, ¿qué son? Hay personas que intermitentemente te distraen de tu trabajo. Jaja, bueno, quizás… pero lo que en realidad queremos saber es que son las interrupciones en un contexto de microprocesadores y electrónica embebida.
Así que, ¿qué son las interrupciones en ese contexto? Bueno, hay una forma por la cual un procesador puede ejecutar su programa principal mientras monitorea continuamente la ocurrencia de algún tipo de evento, o interrupción. Este evento incluso puede ser activado por cualquier tipo de sensor o entrada, como un botón, o incluso internamente por un timer que cuente hasta un número en particular.
Vemos el evento, ¿y luego qué? Sigue leyendo
¿Que es el BB313?
El BB313 es una placa universal para el microcontrolador ATTiny2313/4313. Está diseñada para que el proceso de creación de prototipos sea más sencillo. Posee un conector para programación en circuito, un conector de 6 pines compatible con un cable FTDI, conexiones para un resonador cerámico externo, y un botón de reset.
La mayor parte de los pines del ATtiny se encuentran en fila sobre el borde de la placa lo cual da mas espacio para trabajar sobre el protoboard. También funciona como placa para los 2313/4313 y, con una simple modificación, pueden usarse los ATTiny25/45/85. Sigue leyendo
Para proyectos relativamente pequeños (con menos cantidad de pines que un ATmega328), es una buena opción utilizar las series ATtiny, ATtiny45 o Attiny85, dado su pequeño tamaño (8-DIP o 8-SOIC) y su bajo consumo.
Hay varias maneras de programarlo. Uno de los mas populares es el programador USBtinyISP que trabaja muy bien con WinAVR (AVRdude).
Me gustaría mostrar como programo ATtiny85 con JeonLab mini 1.3. La idea fue adaptada desde High-Low Tech Group y provideyourown.com. Una observacion, que falta de High-Low Tech Group es que necesitas agregar una resistencia de 110-120 ohm entre VCC y el “Reset” en el circuito del JeonLab mini (o Arduino) para prevenir el “Auto reset” en la linea serie. Sigue leyendo
El objetivo de este artículo es presentar los métodos fundamentales para la creación de software embebido con un enfoque en ANSI C sobre Arduino. La plataforma de desarrollo Arduino es un medio ideal para realizar esta tarea. Como tal, este trabajo presenta el desarrollo de software embebido utilizando el 100% ANSI C para el procesador ATmega328P el Arduino. Tengamos en cuenta que es fundamental crear software embebido en general enfocado en ANSI C dado que esta modalidad ahorra notoriamente la cantidad de memoria utilizada. Para hacerlo más sencillo vamos a implementar el programa clásico como ejemplo que cambia el pin de salida (blink) conectado al LED en la placa. Según el circuito de Arduino Uno indica que el LED está conectado al pin del chip PB5 del ATmega328P. Código Ejemplo.. Ejemplo Led Blink