Estructura de Un Sketch
-
Upload
elzytacogelona -
Category
Documents
-
view
213 -
download
0
description
Transcript of 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
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”.
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).
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