Blog de indusele

arduino

EJEMPLO 2. Cómo hacer parpadear un LED sin emplear 'delay'

Escrito por indusele 03-09-2014 en arduino. Comentarios (0)

¿Qué tal? ¿Os salió el ejemplo 1? De ser así es el momento de seguir avanzando con Arduino. Vamos a probar a intentar hacer el parpadeo sin emplear 'delay'. 

En este caso van a entrar en juegos otras variables. En primer lugar, defino la variable LED en 13 como antes ya que no he cambiado el montaje (sólo me voy a centrar en cambiar la programación). Luego tengo que definir:

·  Una variable entero “estado” (indico que inicialmente el LED está apagado).

·  Una variable long sin signo llamada “previoMillis”

·  El intervalo de segundos que quiero para el parpadeo (en este caso, el led permanecerá apagado/encendido durante 1 segundo).

Dentro del programa principal tengo que definir una tercera variable “contajeMillis” la cual coincide con el resultado de aplicar el comando millis() el cual se emplea para devolver el tiempo en milisegundos desde que el programa arranca. Si el tiempo que tarda en arrancar menos la variable de tiempo previo es mayor o igual al intervalo que he especificado se ejecuta el comando if (si el LED está encendido se tiene que apagar y viceversa) y el valor previo de Millis pasa a ser el del contaje porque cada parpadeo ejecuta el programa sin tener en cuenta lo anterior.

Para entenderlo, es como si un alumno acude a clase y le pregunta una duda al profesor. Evidentemente el profesor no puede decir que esa duda ya la explicó el año pasado porque ese alumno no asistía todavía a sus clases, tendrá que impartir su asignatura como si fuera la primera vez que lo hace sin pensar en que ya lo ha dado otros años.

 

Y con esto se pueden hacer muchas otras pruebas, en mi caso, intenté mantener parpadeando el de 10, encendidos el 11 y 12 y apagado el 13 pero hay múltiples combinaciones.

“Dime y lo olvido, enséñame y lo recuerdo, involúcrame y lo aprendo.” Benjamin Franklin


EJEMPLO 1. Cómo hacer parpadear varios LEDs empleando la función delay

Escrito por indusele 06-08-2014 en arduino. Comentarios (0)

Lo primero de todo es definir las variables con las que vamos a trabajar en el sistema. Como yo he hecho la prueba con un LED verde, otro rojo, otro azul y otro amarillo tengo que definir dichas variables y darlas el valor del pin donde están insertadas. El cátodo (la patilla corta) siempre se conectará a GND y el ánodo (patilla más larga) al pin 13, 12, 11 y 10 tal y como se observa (recuadrado en verde).

Lo segundo es definir si dichos pines son de entrada o de salida y en este caso serán los tres de salida (recuadrado en rosa).

Lo tercero va a ser definir el programa principal, qué queremos hacer. Por ejemplo, he optado porque cada LED se mantenga encendido durante 1 segundo. Para definir estos tiempos utilizamos el comando delay teniendo en cuenta que se define en milisegundos por lo que 1 segundo se define como delay(1000). Se puede ver en el recuadro en morado. Si quisiera que el LED verde se mantenga encendido durante 1 segundo, el rojo durante 5 y el amarillo durante 10 simplemente jugaría con los valores de delay: 1 segundo se define como delay(1000), 5 segundos como delay(5000) y 10 segundos como delay(10000). Tampoco importa demasiado el color de los LEDs empleados aunque alguno (los blancos) os pueden dar problemas por funcionar a un voltaje algo mayor de 5V que son con los que estamos trabajando.

Por último recordaros que disponéis de un enlace a la simulación online donde podéis ver el código que he empleado y su funcionamiento al compilarlo. Tened la precaución de conectar bien todo, de no confundir los cátodos y los ánodos en el montaje, de que habéis enchufado el USB (a veces los errores más obvios son los que dan más problemas), de que habéis usado // antes de cada comentario y no habéis cambiado los nombres de las variables que definisteis al principio... Repito que podéis usar tantos LEDs y de tantos colores como se os ocurra...

¡a entrenar la imaginación!



Instalación de Arduino

Escrito por indusele 03-08-2014 en arduino. Comentarios (0)

Una vez que he visto cómo se trabaja con un simulador online voy a pasar a experimentar con una placa real; como novata he adquirido una placa básica: la mega 2560

El Arduino Mega 2560 es una placa electrónica basada en el Atmega2560. Cuenta con 53 entradas/salidas digitales de los cuales 14 se pueden utilizar como salidas PWM; 16 entradas analógicas, 4 puertos de hardware serie o UARTs, un oscilador de cristal de 16 MHz, un puerto USB de conexión, un conector de alimentación, una cabecera de ICSP y un botón de reinicio.

Sin embargo, centrémonos en las partes que pueden interesarnos más para estos primeros proyectos:

En resumen, las especificaciones generales del Arduino Mega 2560 son:

Microcontrolador

ATmega2560

Tensión de alimentación

5V

Tensión de entrada recomendada

7-12V

Límite de entrada

6-20V

Pines digitales

53 (14 para PWM)

Entradas analógicas

16

Corriente máxima por pin

40 mA

Corriente máxima para el pin 3,3V

50 mA

Memoria flash

256 kB

SRAM

8 kB

EEPROM

4 kB

Velocidad de reloj

16 MHz

Pasemos a instalar el software que necesitaremos para elaborar los programas. Lo primero que hay que hacer es bajarse un compilador:

A continuación hay que hacer la identificación de puertos:

Por hoy ha estado bien, el próximo día empezaremos con unos ejemplos básicos para ir aprendiendo las primeras instrucciones.

"La velocidad es buena para aprender que hay que ir despacio." Ángel Nieto


¿Qué tarjeta de Arduino necesito?

Escrito por indusele 25-07-2014 en arduino. Comentarios (0)

Hasta ahora hemos visto qué es Arduino y cómo funciona más o menos gracias al simulador online. Es el momento de decidir qué tarjeta adquirimos.

Tenemos distintos tipos de tarjetas y las más empleadas son:

ARDUINO DIECIMILA/DUEMILANOVE

Selecciona de forma automática la alimentación adecuada (USB o externa), eliminando la necesidad de utilizar un conmutador de selección de fuentes.

ARDUINO MEGA

Emplea un microcontrolador ATmeg1280 y dispone de 54 entradas/salidas digitales (de las cuales 14 proporcionan salida PWM), 16 entradas digitales 4 puertos serie, un cristal oscilador de 16 MHz, conexión USB, entrada de corriente, conector ICSP y botón de reset. Es compatible para los shields diseñados para Arduino Duemilanove o Diecimilia. Se puede conectar mediante fuente externa o por USB.

ARDUINO FIO

Emplea un microcontrolador ATmeg328P y funciona con un voltaje de 3,3 V y 8 MHz. Tiene 14 pines de entrada/salida digitales (de las cuales 6 proporcionan salida PWM), 8 entradas analógicas, 1 resonator en placa y botón de reset. Está diseñado para aplicaciones inalámbricas.

LILYPAD ARDUINO

Es la más reconocible por su forma circular y su pequeño tamaño. Para aplicaciones textiles, necesita un adaptador adicional para comunicarse con el PC.

ARDUINO BT (BLUETOOTH)

Placa de Arduino con el módulo Bluetooth incorporado para la comunicación inalámbrica, el cual se puede configurar con comandos enviados a través del puerto serie del ATmega168.

ARDUINO NANO

Como su nombre indica, es una pequeña placa basada en el ATmega328 y acoplable a una protoboard. Tiene la misma funcionalidad que el Arduino Duemilanove y se conecta mediante un cable USB Mini-B.

ARDUINO SERIAL

Placa básica que utiliza una interfaz RS232 para comunicarse con el ordenador o para la carga de sketches. Es recomendable si el usuario quiere montarla él mismo.

ARDUINO MINI

Emplea un microcontrolador ATmeg168 y está pensada para su empleo en placas de prototipado y en aplicaciones en las que no se dispone de mucho espacio para su instalación. Tiene 14 pines de entrada/salida digitales (de las cuales 6 proporcionan salida PWM), 8 entradas analógicas y un cristal de 16 MHz. Se conecta mediante un cable USB Mini-B u otros adaptadores USB o RS232 a TTL serial.

ARDUINO SERIAL MONOCAPA

Recomendable si el usuario quiere montarla él mismo. Son compatibles con la placa Diecimila pero el conector de pines para la programación ISCP no es compatible con otras placas.

ARDUINO UNO

Es una de las más empleadas debido a que es compatible con la gran mayoría de los shields existentes. Tiene 14 pines de entrada/salida digitales (de las cuales 6 proporcionan salida PWM), 6 entradas analógicas, una velocidad de reloj de 16 MHz, conexión USB, jack de alimentación y botón de reset.

LEONARDO

Forma similar a la UNO por lo que es compatible con sus shields. está basada en el procesador ATmega32u4, el cual tiene comunicación USB integrada, por lo que no requiere de un convertidor Serial-USB ni de un cable FTDI, Requiere menos componentes.

ARDUINO PRO

Incorpora el nuevo microcontrolador AVR Atmega328 con un cristal de 16Mhz, funcionando a 5V. También dispone de un pequeño interruptor para poder seleccionar la fuente de alimentación y un pulsador de reset miniatura. Incluye unos pines de conexión serie, por lo que es recomendable disponer de alguna interfaz USB para poder programarlo directamente. El espaciado de los pines son los mismos que la versión Duemilanove, por lo que podemos montar placas Shield al igual que la placa original. El Pro viene tanto en 3.3V/8MHz y 5V/16MHz. Tiene la misma cantidad de pines y periféricos que el Arduino UNO, pues está basado en el mismo microcontrolador (ATmega328) pero carece de convertidor Serial-USB por lo que requiere de un cable FTDI. Esto no tiene por qué suponer un inconveniente ya que lo convierte en una opción más barata al UNO para utilizar varias tarjetas a la vez (ya que sólo se requerirá un único cable). Existe una versión reducida para aplicaciones con poco espacio llamada PRO MINI.

¿Pero cuál escojo?

La cantidad de pines de entrada y salida es un factor a tener muy en cuenta, ya que de ellos dependerá la cantidad y el tipo de periféricos que podremos conectar a nuestra placa. Además, si vamos a emplear varios motores o servos también será importante consider el número de PWM ya que podemos confundirnos al optar por una Leonardo o una UNO porque corres el riesgo de quedarte corto y comprobar que necesitas más pines. Las entradas analógicas dependerán del número de sensores que queramos usar en nuestra aplicación.

Mi duda se planteó entre Arduino UNO y Mega 2560 dado que son ideales para principiantes como yo. UNO es uno de los modelos que más se emplean por lo que dispones de un gran número de tutoriales y librerías ya realizados en varios idiomas además de ideas de proyectos online con los que ir aprendiendo. El hecho de que tenga el microcontrolador en zócalo permite que sea fácil repararlo en el caso de que algún experimento vaya mal y se estropee.

En mi caso he optado por una Mega 2560 como inversión de futuro. Es cierto que es algo más caro pero quiero hacer un prototipo para mi Proyecto Fin de Carrera y no sé exactamente cuántos pines voy a necesitar. La ventaja es que es perfectamente compatible con UNO y con todos sus shields, me provee de más memoria que la UNO y de más UARTs por si quiero conectar dispositivos en serie pero no es tan compleja como la Arduino DUE.

¿Y tú? ¿Por cuál te decides?

http://www.reflexiona.biz/shop/content/10-guia-de-compra-de-arduino


Simulador de Arduino online

Escrito por indusele 17-07-2014 en arduino. Comentarios (0)

Tras recibir mi primera placa de Arduino llegó el momento de hacer pruebas pero me pareció un tanto arriesgado empezar a "cacharrear" directamente sin saber bien cómo funcionaba todo. Por eso, hablando con un buen amigo que siempre hace de maestro conmigo, me descubrió un simulador de arduino online por el que puedes construir, guardar y compartir tus circuitos dándote una idea de cómo funcionaría una placa real, del layout y mil aplicaciones más que podéis ver resumidas en este vídeo:


Si como yo preferís practicar un poco sin tener miedo de dañar ningún componente os dejo el enlace:

Simulador de Arduino online

¡Disfrutadlo!