Estructura de Un Sketch

5
Estructura de un Sketch. Está bien, ya sabemos hacer que un led parpadee. A algunos ingenieros de telecomunicaciones esto les costó 3 años y nosotros lo hemos hecho en apenas 10 minutos. Imagina lo que seremos capaces de hacer en el ejercicio 20. Llegados a ese punto debemos hacer un pequeño alto y explicar algunas cosas referentes a un Sketch (programa de Arduino). El lenguaje con el que se programan nuestras Arduinos es un derivado del lenguaje de programación Wiring . Su estructura y su sintaxis es igual que la de C, por eso suelo bromear diciendo que todo el que sepa programar en C sabe programar una Arduino. De hecho todas las librerías de C y algunas de C++ se pueden utilizar con Arduino. La estructura básica de un sketch es muy similar a la de cualquier programa en C con algunas diferencias impuestas por el hecho de que nuestra plataforma interactúa directamente con el medio físico que le rodea. Así la primera parte de un Sketch será la declaración de variables, donde definiremos las variables globales del Sketch declarando su tipo y, si queremos, su valor inicial. Estas variables serán accesibles desde cualquier parte de nuestro Sketch al contrario que las variables locales, que son las que se declaran dentro de una función o dentro de una estructura de control (por ejemplo un bucle For). Ejemplos: int pin; // crea la variable de tipo entero pin int numero = 1; // crea la variable de tipo entero numero y le asigna el // valor 1 Los tipos de variables los veremos en profundidad más adelante. La segunda parte de un Sketch es una parte que solo se ejecuta una vez tras el arranque de la placa Arduino, el Setup. Void Setup() { ...

description

arduino

Transcript of Estructura de Un Sketch

Page 1: Estructura de Un Sketch

Estructura de un Sketch.Está bien, ya sabemos hacer que un led parpadee. A algunos ingenieros

de telecomunicaciones esto les costó 3 años y nosotros lo hemos hecho

en apenas 10 minutos. Imagina lo que seremos capaces de hacer en el

ejercicio 20.

Llegados a ese punto debemos hacer un pequeño alto y explicar algunas

cosas referentes a un Sketch (programa de Arduino).

El lenguaje con el que se programan nuestras Arduinos es un derivado

del lenguaje de programación Wiring. Su estructura y su sintaxis es igual

que la de C, por eso suelo bromear diciendo que todo el que sepa

programar en C sabe programar una Arduino. De hecho todas las

librerías de C y algunas de C++ se pueden utilizar con Arduino.

La estructura básica de un sketch es muy similar a la de cualquier

programa en C con algunas diferencias impuestas por el hecho de que

nuestra plataforma interactúa directamente con el medio físico que le

rodea.

Así la primera parte de un Sketch será la declaración de variables, donde

definiremos las variables globales del Sketch declarando su tipo y, si

queremos, su valor inicial. Estas variables serán accesibles desde

cualquier parte de nuestro Sketch al contrario que las variables locales,

que son las que se declaran dentro de una función o dentro de una

estructura de control (por ejemplo un bucle For).

Ejemplos:int pin;   //  crea la variable de tipo entero pinint numero = 1;   // crea la variable de tipo entero numero y le asigna el// valor 1

Los tipos de variables los veremos en profundidad más adelante.

La segunda parte de un Sketch es una parte que solo se ejecuta  una vez tras el

arranque de la placa Arduino, el Setup.

Void Setup(){.........}

Suele utilizarse para definir los pines que vamos a utilizar y declararlos como

entradas o como salidas, sobre todo en los ejemplos que encontraremos en la web

y en los ejercicios que haremos en este curso, y esto suele inducirnos a algunos

errores como creer que un pin solo se puede utilizar como entrada o como salida

Page 2: Estructura de Un Sketch

en un sketch, lo cual no es cierto, se puede cambiar durante la ejecución del

Sketch.

El Setup () debe considerarse como lo que es: un conjunto de código que solo se

ejecuta una vez cuando Arduino arranca. Esto nos dará una increíble flexibilidad a

la hora de programar.

Siguiente parte importante de un Sketch: el Loop. Es la parte principal de nuestro

programa pues en el tendremos que poner el código para que el microcontrolador

lo ejecute de manera recursiva, es decir, esta parte del Sketch se repetirá una y

otra vez mientras la placa Arduino tenga energía.Void Loop(){.........}

No todo el código tiene que estar en el Loop, ciertas partes pueden ser escritas

fuera de este bucle: las funciones. Las funciones son fragmentos de código

separado al que se puede llamar desde el Setup o desde el Loop, pero eso lo

veremos más adelante.

Los Sketches generados desde el Arduino IDE se guardan en archivos con la

extensión .pde, esto es así por que el Arduino IDE es una adaptación del IDE de

Processing (del cual viene también el nombre Sketch). De hecho pde viene de

Processing Development Environment.

Ejercicio 1: BlinkEs el “Hola mundo” de Arduino, el sketch (programa) más sencillo que

podemos cargar y ejecutar en nuestra Arduino. Se trata de hacer que

un led se encienda y se apague según unos intervalos definidos en el

código del sketch.

Todo lo que necesitas para seguir este primer ejercicio es una

placa Arduino UNO y un LED.

¿Porque lo llamamos sketch y no programa? pues por que el IDE

de Arduino viene deProcessing y en este lenguaje de programación

enfocado al mundo gráfico cada código es considerado un boceto, en

inglés “sketch” y al heredar Arduino el IDE de Processing y su forma

de guardar el código generado (por eso nuestros sketches se guardan en

formato .pde) ha heredado también el nombre para los “programas”.

Page 3: Estructura de Un Sketch

Al hacer la traducción de la web Arduino.cc al español en julio de 2010

hubo que proponer un conjunto de normas de estilo para que los textos

traducidos fuesen lo más uniformes posibles. Dentro de esas normas de

estilo habían algunos términos que se acordó no traducir, uno de ellos

era “sketch” para recordar la procedencia del IDE de Arduino.

Las Arduino UNO están diseñadas para que hacer parpadear un LED sea

muy fácil usando el pin digital 13. Algunas (como la Diecimila, la LilyPad

y la UNO) tienen el LED directamente incorporado en la placa. En la

mayoría de las otras (como en la Mini y la BT), existe una resistencia de

1KOhm en el pin permitiéndote conectar un LED directamente. (para

conectar un LED a otro pin digital, deberías usar una resistencia

externa).

En la ilustración (generada con Fritzing) se utiliza una resistencia de 220

Ohms entre el pin 13 y el pin GND, pero esto solo es necesario si en

lugar del pin 13 se utiliza cualquier otro. El pin 13 ya viene con una

resistencia entre el y el pin GND contiguo.

Los LEDs tienen polaridad, lo que significa que solo encenderán si los

orientas debidamente. Generalmente el terminal mas largo es el positivo

y deberá estar conectado al pin 13. El terminal corto debe conectarse

con la tierra (GND); adicionalmente el bulbo del LED tiene un borde

plano en su extremo. Si el LED no enciende, trata de conectarlo de

manera opuesta, intercambiando los terminales de posición (no dañaras

el LED si lo conectas en sentido opuesto por un periodo de tiempo corto).

Page 4: Estructura de Un Sketch

Este ejemplo nos sirve también como primera aproximación a la

estructura de un sketch

Este es el código del sketch Blink (parpadeo), con los comentarios

ampliados y traducidos:

/* Este es un bloque de comentarios, su contenido será ignorado por el compilador. Su función es almacenar información que nos haga más sencilla la compresión del código o recordar su funcionamiento tiempo después, así que cuanto más descriptivos seamos mejor. BLINK Enciende un LED durante un segundo, lo apaga durante otro segundo, repetidamente. Este ejemplo de código es de dominio público. */

void setup() { // Esta en una línea comentada.

 // Establece un pin digital como salida. // El Pin 13 tiene un LED conectado a el.pinMode(13, OUTPUT);}

void loop() {digitalWrite(13, HIGH);   // enciende el LEDdelay(1000);              // espera un segundodigitalWrite(13, LOW);    // apaga el LEDdelay(1000);              // espera un segundo}

Este ejercicio está basado en los ejemplos de la página oficial:http://www.arduino.cc/en/Tutorial/Blinkhttp://www.arduino.cc/es/Tutorial/Blink