Archivos Mensuales: octubre 2012
Semáforo
VARIABLES
Definición del concepto de Variable
Podemos definir de manera coloquial que una variables es un cajón con un nombre en donde podemos dejar algo, ya de una manera algo mas técnica, una variable es un espacios reservados en la memoria que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Dependiendo del área reservada en la memoria principal del ordenador, las variables pueden ser de longitud fija (cuando el tamaño de la misma no varia a lo largo de la ejecución del programa) o de longitud variable ( cuando el tamaño de la misma puede variar a lo largo de la ejecución).
Declaración de Variable
Todas las variables tienen que ser declaradas antes de que puedan ser usadas y, opcionalmente, se le puede asignada un valor. Solo se debe declarar una vez en un programa
Para declarar una variable hay que:
Definir su tipo de valor (int, long, float, etc.,)
Opcionalmente, asignar un valor inicial.
Ámbito de la Variable
Una variable puede ser declarada en cualquier lugar del programa, pero dependiendo en donde se declarada, determina el ámbito de la variable, o la habilidad de ciertas partes de un programa de hacer uso de la variable.
Una variable global se declara al comienzo del programa, antes de la función setup() y puede ser vista y usada por cualquier parte del programa.
Una variable local se declara dentro de una función o como parte de un bucle for, sólo es visible y sólo puede ser usada dentro de la función en la cual fue declarada.
Nombrar Variables
Las variables deben tomar nombres claros y descriptivos, para hacer el código más legible, fácil e intuitivo. Variables con nombres como “pulsadorCerrar” o “servoDelantero” o “tiempoLedAmarillo” pueden ayudar al programador o a cualquier otra persona a entender lo que representa la variable. Nombres de variables como “var1” o “dato” o “total”, no facilitan la lectura del código y lo convierte en un trabajo tipo jeroglífico.
Existen palabras reservadas para el sistema que no pueden ser utilizadas como nombre de variables.
Tipo de Variables o clase de datos
Variable |
Tipo |
Rango |
byte |
Byte, 8 bits sin puntos decimales | 0 a 255 |
int |
Enteros sin puntos decimales – 16 bits | -32.768 a 32.767 |
long |
Enteros largos, sin puntos decimales – 32 bits | -2,146,483,648 a 2,147,483,647 |
float / double |
Números en punto flotante – 32 bits | -3.4028235E+38 a 3.4028235E+38 |
arrays |
Colección de valores que son accedidos con un índice numérico | – |
boolean |
Un único byte | false/true |
char |
Valor de un carácter, ocupa un byte | El valor ASCII desde -128 hasta 127 |
unsigned int |
Enteros sin puntos decimales – 16 bits | 0 a 65.535 |
unsigned long |
Enteros largos, sin puntos decimales – 32 bits | 0 a 4.294.967.295 |
La palabra reservada void se usa sólo en la declaración de funciones. Indica que se espera que no devuelva información a la función donde fue llamada |
Existen otros tipos de datos que se derivan de los anteriores.
CONVERSIONES ENTRE TIPOS DE DATOS
Descripción
Convierte un valor a un tipo de dato.
Sintaxis
char(x) byte(x) int(x) long(x) flota(x)
Parámetros
x: un valor de cualquier tipo
Devuelve
char byte int long flota
Ejemplos
Char(65) int(1200) long(32000) flota(62)
CONSTANTES
Definición del concepto de Constantes
En Arduino una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.
Tipos de Constantes
El lenguaje Arduino tiene tres grupos de constantes que se usan para hacer los programas más legibles:
true/false. Son constantes Booleanas (false vale 0 y true vale 1 o un valor distinto de 0).
high/low. Son constantes de los niveles de pin (high vale 1 lógico, ON ó 5 V, mientras que low es el nivel lógico 0, OFF ó 0 V.
Imput/output. Son constantes usadas con la función pinMode() (imput define el pin como entrada y output como salida).
Integer Constants
Son números utilizados directamente en un sketch, por defecto, éstos números son tratados como int, pero puedes cambiarlo con las letras U y L.
Con una ‘u’ ó ‘U’ forzamos la constante a un formato de datos unsigned.
Con una ‘l’ ó ‘L’ forzamos la constante a un formato de datos long.
Con un ‘ul’ ó ‘UL’ forzamos la constante a un formato de datos unsigned long.
Normalmente, las constantes int son tratadas como enteros base 10, pero se puede utilizar notación especial para ingresar números en otras bases.
Base | Ejemplo | Formateador | Rango |
10 | 354 | – | – |
2 | B101101 | B | 8 bits (0 to 255) 0 y 1 |
8 | 0251 | 0 | Caracteres válidos -> de 0 a 7 |
16 | 0x2A | 0x |
Caracteres válidos -> 0-9, A-F, a-f |
Ya estamos listos para realizar nuestro segundo proyecto
Semáforo
Esquema Eléctrico:
Esquema Práctico:
Código del Programa:
Código fuente:
Ficha del Proyecto:
Vídeo resumen:
Primer Programa – Hola Mundo
Cuando se empieza a programar en un nuevo lenguaje, el primer programa que por convenio de manera no escrita se realiza es el denominado “Hola Mundo”, se trata de que en la pantalla del ordenador apareciese “Hola Mundo”, pero para realizar esto en arduino sería un poco complicado como primera experiencia.
Nuestro “Hola Mundo” será realizar un programa para conseguir que un led parpadee.
Antes de comenzar es necesario establecer unos conceptos básicos que posteriormente serán ampliados.
En el lenguaje de programación Arduino existe dos funciones básicas que al menos siempre deben estar para que el programa funcione.
void setup() {
declaraciones;
}
void loop() {
declaraciones;
}
La función setup se utiliza para declarar variable, modos de trabajo de los pinMode, inicializar las comunicaciones serie… Se ejecuta solo una vez y aunque no tengamos que realizar nada de lo anterior debe de estar aunque sea vacía.
La función loop se ejecuta a continuación y como su propio nombre indica es un bucle que se ejecuta indefinidamente, con lo que posibilita que el programa sea capaz de dar respuesta a los eventos exteriores. Incluye el código de lectura de entradas, activación de salidas, esperas, comunicaciones serie, etc.
Es posible declarar una función de usuario para realizar tareas repetitivas y para realizar una programación más ordenar, clara e intuitiva.
Una función es un conjunto de códigos que tiene un nombre y es ejecutada al ser llamada. Este tipo de funciones no son imprescindibles como las dos anteriores, pero si convenientes para obtener una programación estructurada y clara.
En primer lugar se declara el tipo de la función, que será el valor retornado por la función (int, byte, long, flota, void). A continuación del tipo, se declara el nombre de la función y, entre paréntesis, los parámetros que se pasan a la función. Si la función no devuelve ningún valor entonces se colocara delante la palabra “void”.
tipo nombreDeLaFuncion(parametro) {
código;
}
Para definir el principio y el final de un bloque de instrucciones, declaraciones y sentencias, se utiliza las llaves “{}”. Una llave de apertura “{“ siempre debe ir seguida de una llave de cierre “}”. Las llaves no balanceadas provocan errores de compilación.
El punto y coma “;” se utiliza al final de cada declaración para separa los elementos del programa o también para separar los elementos en un bucle for (ya explicaremos las distintas estructuras de control de flujos). El olvido del punto y coma producirá un error de compilación, además es un error de difícil detección por lo que si obtenéis un error raro, esto es de lo primero que hay que comprobar.
Existen dos tipos de comentarios que se pueden realizar al código:
- Comentario a una línea de código y se realiza con una doble barra inclinada //
código // Comentario
- Bloque de comentario o comentario multilínea y se realiza empezando con una barra inclinada y un asterisco “/*”, luego el comentario y se termina con un asterisco y una barra inclinada “*/”
código
/* Comentario multilínea
en el que ocupa más de una línea */
código
Con estos conceptos básicos que más adelante seguiremos ampliando, ya podemos realizar nuestro primer programa.
Parpadeo de un LED por la salida digital 13
Esquema práctico:
Código del programa:
Código Fuente
Vídeo Resumen
Ficha de Proyecto
Configurando el programa de Arduino
Pues bien, una vez que ya tenemos descargado y listo para ejecutar, ahora viene la hora de configurar el programa para que funcione:
Ejecutamos el archivo “Arduino.exe”
Obtendremos algo parecido a esto
Ahora toca conectar la placa Arduino al ordenador, previamente habremos instalado en el ordenador el drivers adecuado de la placa( “Primeros Pasos”).
Seleccionamos en el menú “Tools” el apartado “Board”, y en este la placa que hayamos conectado, en este caso “ Duemilanover or Nano w/ ATmega 328”
Seleccionamos en el menú “Tools” el apartado “Serial Port” y en este el puerto al que hayamos conectado la placa, en este casa “COM5”.
Ya tenemos el programa configurado, listo para comunicarse con la placa Arduino.
Breve descripción de la barra de menú del programa: