Programación con Arduino
1. Competencias Especificas.
- Utilizar el micro controlador en aplicaciones de control electrónico
- Desarrollar y ejecutar programas en un micro-controlado
- Programar y configurar interfaces básicas del micro controlador.
2. Marco Teórico
Funciones de lectura y escritura digital en arduino
Una función es un conjunto de líneas de código que realizan una tarea específica y pueden retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento, por ejemplo algunas funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de códigos.
Nuestro Arduino no sólo puede enviar señales sino que también puede recibirlas con dos propósitos principales como son leer datos de sensores y recibir mensajes de otros dispositivos (shield, otro Arduino, PC, etc.). Las entradas las clasificaremos en analógicas y digitales
Estructura básica de un programa
La estructura básica de programación de Arduino es bastante simple y divide la ejecución en dos partes: setup y loop. Setup() constituye la preparación del programa y loop() es la ejecución. En la función Setup() se incluye la declaración de variables y se trata de la primera función que se ejecuta en el programa.
Esta función se ejecuta una única vez y es empleada para configurar el pinMode (p. ej. si un determinado pin digital es de entrada o salida) e inicializar la comunicación serie. La función loop() incluye el código a ser ejecutado continuamente (leyendo las entradas de la placa, salidas, etc.).
Funciones de lectura y escritura digital en arduino
Una función es un conjunto de líneas de código que realizan una tarea específica y pueden retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento, por ejemplo algunas funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de códigos.
Nuestro Arduino no sólo puede enviar señales sino que también puede recibirlas con dos propósitos principales como son leer datos de sensores y recibir mensajes de otros dispositivos (shield, otro Arduino, PC, etc.). Las entradas las clasificaremos en analógicas y digitales
Estructura básica de un programa
La estructura básica de programación de Arduino es bastante simple y divide la ejecución en dos partes: setup y loop. Setup() constituye la preparación del programa y loop() es la ejecución. En la función Setup() se incluye la declaración de variables y se trata de la primera función que se ejecuta en el programa.
Esta función se ejecuta una única vez y es empleada para configurar el pinMode (p. ej. si un determinado pin digital es de entrada o salida) e inicializar la comunicación serie. La función loop() incluye el código a ser ejecutado continuamente (leyendo las entradas de la placa, salidas, etc.).
Variables
Una variable puede ser declarada al inicio del programa antes de la parte de configuración setup(), a nivel local dentro de las funciones, y, a veces, dentro de un bloque, como para los bucles del tipo if.. for.., etc. En función del lugar de declaración de la variable así se determinará el ámbito de aplicación, o la capacidad de ciertas partes de un programa para hacer uso de ella.
Una variable global es aquella que puede ser vista y utilizada por cualquier función y estamento de un programa. Esta variable se declara al comienzo del programa, antes de setup().
Una variable local es aquella que se define dentro de una función o como parte de un bucle. Sólo es visible y sólo puede utilizarse dentro de la función en la que se declaró. Por lo tanto, es posible tener dos o más variables del mismo nombre en diferentes partes del mismo programa que pueden contener valores diferentes, pero no es una práctica aconsejable porque complica la lectura de código
El modificador de variable static, es utilizado para crear variables que solo son visibles dentro de una función, sin embargo, al contrario que las variables locales que se crean y destruyen cada vez que se llama a la función, las variables estáticas mantienen sus valores entre las llamadas a las funciones.
Los tipos de variables en Arduino son:
Una variable puede ser declarada al inicio del programa antes de la parte de configuración setup(), a nivel local dentro de las funciones, y, a veces, dentro de un bloque, como para los bucles del tipo if.. for.., etc. En función del lugar de declaración de la variable así se determinará el ámbito de aplicación, o la capacidad de ciertas partes de un programa para hacer uso de ella.
Una variable global es aquella que puede ser vista y utilizada por cualquier función y estamento de un programa. Esta variable se declara al comienzo del programa, antes de setup().
Una variable local es aquella que se define dentro de una función o como parte de un bucle. Sólo es visible y sólo puede utilizarse dentro de la función en la que se declaró. Por lo tanto, es posible tener dos o más variables del mismo nombre en diferentes partes del mismo programa que pueden contener valores diferentes, pero no es una práctica aconsejable porque complica la lectura de código
El modificador de variable static, es utilizado para crear variables que solo son visibles dentro de una función, sin embargo, al contrario que las variables locales que se crean y destruyen cada vez que se llama a la función, las variables estáticas mantienen sus valores entre las llamadas a las funciones.
Los tipos de variables en Arduino son:
Arrays: Un array es un conjunto de valores a los que se accede con un número índice. Cualquier valor puede ser recogido haciendo uso del nombre de la matriz y el número del índice. El primer valor de la matriz es el que está indicado con el índice 0, es decir el primer valor del conjunto es el de la posición 0. Un array tiene que ser declarado y opcionalmente asignados valores a cada posición antes de ser utilizado.
Operadores
El core de Arduino ofrece una serie de operadores según su reference:
Aritméticos:
- Asignación +, -, *, /
- Módulo
- Compuestos: ++, –: += , -= , *= , /= :
- Comparación: ==, !=, <, >, <=, >=:
- Booleanos:
Las estructuras de control en Arduino según el reference son:
- Estructuras de decisión
- if
- else
- switch case
- Estructuras de repetición
- for
- while
- do .. while
Una función es un bloque de código que tiene un nombre y un conjunto de instrucciones que son ejecutadas cuando se llama a la función. Son funciones setup() y loop() de las que ya se ha hablado.
Las funciones de usuario pueden ser escritas para realizar tareas repetitivas y para reducir el tamaño de un programa. Segmentar el código en funciones permite crear piezas de código que hacen una determinada tarea y volver al área del código desde la que han sido llamadas.
Diferencia entre PIC y Arduino.
PIC: El nombre verdadero de este microcontrolador es PICmicro (Peripheral Interface Controller), conocido bajo el nombre PIC. Su primer antecesor fue creado en 1975 por la compañía General Instruments. Este chip denominado PIC1650 fue diseñado para propósitos completamente diferentes. Diez años más tarde, al añadir una memoria EEPROM, este circuito se convirtió en un verdadero microcontrolador PIC. Hace unos pocos años la compañía Microchip Technology fabricó la 5 billonésima muestra.Todos los microcontroladores PIC utilizan una arquitectura Harvard, lo que quiere decir que su memoria de programa está conectada a la CPU por más de 8 líneas. Hay microcontroladores de 12, 14 y 16 bits, dependiendo de la anchura del bus.
Arduino: Arduino es una plataforma de hardware y software de código abierto, basada en una sencilla placa con entradas y salidas, analógicas y digitales, en un entorno de desarrollo que está basado en el lenguaje de programación Processing. Es decir, una plataforma de código abierto para prototipos electrónicos.
Al ser open source, tanto su diseño como su distribución, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin necesidad de licencia.
El proyecto fue concebido en Italia en el año 2005 por el zaragozano David Cuartielles, ingeniero electrónico y docente de la Universidad de Mälmo (Suecia) y Massimo Banzi, italiano, diseñador y desarrollador Web.
La comparacion entre Microcontroladores ATmel y MICROCHIP, aunque en parte se tomarán en cuenta sus características de Arquitectura. Empecemos con la siguiente afirmación, no existe comparación entre los microcontroladores actuales de 8 bits ATmel y los de MICROCHIP, los microcontroladores de ATmel son de una tecnología más reciente, mientras de los de MICROCHIP llevan muchos años en el mercado, por lo tanto no extraña que los ATmega sean mejores en sus características.
Por lo tanto un ATmega328 supera en creces a un PIC10F, PIC12F, PIC16F e incluso a un PIC18F. Pero también según reseñas que he leído el microcontrolador de MICROCHIP de 16 y 32 bits supera en creces a los Atmel de 16 y 32 bits.
Pero volvamos al tema de Arduino y PICAXE, así que te invito a que leas y sobre todo ANALICES la siguiente tabla
Evidencia:
Observaciones:
- Se uso los focos propios de la tarjeta para poder reconocer si la función establecida fue correcta.
- Se tuvo que cambiar el comp de la entrada para hacer efectiva la secuencia de comandos.
- Segun se indico los leds iluminaban en un sentido hasta que estos intercalen de acuerdo a un tiempo determinado.
Conclusiones:
- Al inicio de nuestro programa al dirigir nuestras entradas y salidas, se nombraran para que puedan ser mas sencillos de reconocer.
- Comandos como el VOID dentro de Arduino son esenciales para configurar o referir a una repetición continua de la función empleada.
- Arduino maneja alrededor de 32 bits por lo cual el nombrar cantidades mejores hace que sea una tarea mucho mas simple.
- Las variables a usar tienen que cumplir con un orden especifico.
- Los comados se usan de manera que sea lo mas simple posible, para cumplir directivas o condiciones.
No hay comentarios:
Publicar un comentario