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.,)

Definir un nombre específico

 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:

Semaforo.pde

Ficha del Proyecto:

Semaforo_Ficha_2

Vídeo resumen:

Anuncios

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 eléctrico:

Esquema práctico:

Código del programa:

Código Fuente

Led_Parpadeo.pde

Vídeo Resumen

Ficha de Proyecto

LED_Parpadeomdo_Ficha_1

 

 

 

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: