MODULO - III Arduino
MODULO - III Arduino
MODULO - III Arduino
Elaboró: Docente del área Revisó: Coord. Académica y Técnica Aprobó: Padre Rector
280501090-2 Intervenir sistemas electrónicos micro-controlados según la orden de trabajo y normas de la empresa.
Desarrollar en el estudiante un pensamiento crítico y reflexivo para que actúe como agente constructor de su propio conocimiento,
“saber hacer”, de acuerdo a su contexto y las necesidades del sector eléctrico en el país, fortaleciendo el desarrollo y la personalidad
en la toma de decisiones, el trabajo en equipo, el uso creativo de los recursos naturales, el manejo de conflictos, la solución de
problemas y aprovechamiento del tiempo libre; todo lo anterior dentro del marco de la formación técnica salesiana, coherente con la
misión y visión del PEI de la institución.
Concienciar al estudiante como miembro de una sociedad activa con capacidad de transformar la realidad que lo rodea, con un
fintrascendente hacia a la formación de un individuo honesto crítico, con principios religiosos y con posibilidades de generar y disfrutar
una mejor calidad de vida. Estimular al estudiante para que adquiera y aplique el sentido y el hábito de valores tales como la
responsabilidad, la justicia, el orden, la libertad, la convivencia y el respeto a los derechos ajenos, como miembro activo de una
comunidad.
Desarrollar habilidades y destrezas que le permitan al estudiante razonar en forma lógica, crítica y objetivamente mediante actividades
de análisis de situaciones de problema reales que se desarrollan dentro de su contexto.
Estimular y desarrollar en los estudiantes un espíritu científico mediante la investigación, experimentación y aplicación de principios de
la ciencia y la tecnología en la solución de problemas relacionados con las situaciones que se presentan en su especialidad.
Once:
Identificar y conocer los circuitos digitales y las instalaciones eléctricas residenciales, sus aplicaciones, modos de operación para el
desarrollo de procesos electrónicos residenciales e industriales y la competitividad dentro de un marco de salud ocupacional y
preservación del medio ambiente.
Once:
Diseñar circuitos electrónicos digitales y simularlos en el programa Proteus, aplicando criterios de calidad en la producción, medidas,
cálculos y selección de dispositivos apropiados según el propósito del producto Realizar el montaje de circuitos en la Protoboard
utilizando las técnicas apropiadas para su funcionamiento
Realizar diseños y planos eléctricos de las instalaciones eléctricas residenciales Aplicar adecuadamente las normas vigentes en los
diseños de las instalaciones eléctricas residenciales.
2. Circuitos secuenciales
3. Micro controladores
MODULO III
FASE DE INICIO
MOTIVACIÓN Y JUSTIFICACIÓN:
Conocer el funcionamiento de las cosas es algo que el hombre se ha planteado desde el inicio de
los tiempos; hoy en día nos enfrentamos a una realidad donde abundan la automatización, la
Domótica, la interacción de las personas con las máquinas, la electrónica, la mecánica y la
programación.
Los microcontroladores están siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden
ser juguetes, horno microondas, frigoríficos, televisores, ordenadores, impresoras, módems, el sistema de arranque de
nuestro vehiculo, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentación
electrónica, control de sistemas en una nave espacial, etc. Una aplicación típica podría emplear varios microcontroladores
para controlar pequeñas partes del sistema. Estos pequeños controladores podrían comunicarse entre ellos y con un
procesador central, probablemente más potente, para compartir la información y coordinar sus acciones, como, de hecho,
ocurre ya habitualmente en cualquier PC.
Sistemas de comunicación: en grandes automatismos como centrales y en télefonos fijos, móviles, fax, etc.
Electrodomésticos: lavadoras, hornos, frigoríficos, lavavajillas, batidoras, televisores, vídeos, reproductores DVD,
equipos de música, mandos a distancia, consolas, etc.
Industria informática: Se encuentran en casi todos los periféricos; ratones, teclados, impresoras, escáner, etc.
Automoción: climatización, seguridad, ABS, etc.
Industria: Autómatas, control de procesos, etc
Sistemas de supervisión, vigilancia y alarma: ascensores, calefacción, aire acondicionado, alarmas de incendio,
robo, etc.
Otros: Instrumentación, electromedicina, tarjetas (smartcard), sistemas de navegación, etc.
Una tercera parte se absorbe en las aplicaciones relacionadas con los ordenadores y sus periféricos.
La cuarta parte se utiliza en las aplicaciones de consumo (electrodomésticos, juegos, TV, vídeo, etc.)
El 16% de las ventas mundiales se destinó al área de las comunicaciones.
Otro 16% fue empleado en aplicaciones industriales.
El resto de los microcontroladores vendidos en el mundo, aproximadamente un 10% fueron adquiridos por las
industrias de automoción.
FRASE EMBLEMÁTICA:
“Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y
maravilloso mundo del saber.” Albert Einstein.
ACTIVIDAD 1: ¿Cuáles son las expectativas que le generan aprender sobre Microcontroladores?
PRE – REQUISITOS:
Para abordar el módulo de microcontroladores el estudiante debe tener claridad sobre los siguientes
conceptos y haber alcanzado las siguientes competencias:
7. ¿Cuáles son los símbolos que se utilizan para representar dígitos en el sistema numérico binario?
a) 0 hasta el 8
b) 0,1,2
c) 0,1
d) 1,2
V
F
V
F
V
F
SEÑAL ANALOGA
Son aquellas que pueden tomar un número infinito devalores comprendidos entre dos límites. La mayoría de
los fenómenos de la vida real son señales de este tipo. (sonido, temperatura, voz, video, etc.)
Un ejemplo de sistema electrónico analógico es el altavoz, que se emplea para amplificar el sonido de forma
que éste sea oído por una gran audiencia. Las ondas de sonido que son analógicas en su origen, son
capturadas por un micrófono y convertidas en una pequeña variación analógica de tensión denominada señal
de audio.
SEÑAL DIGITAL
También llamadas variables discretas. Se caracterizan por tener dos estados diferenciados y por lo tanto se
pueden llamar binarias. Siendo estas variables más fáciles de tratar (en lógica serían los valores Verdadero
(V) y Falso (F) o podrían ser 1 ó 0 respectivamente).
Un ejemplo de una señal digital es el interruptor del timbre de tu casa, porque este interruptor tiene dos
estados pulsado y sin pulsar.
CONVERSORES ANALOGO – DIGITAL
Este es un buen momento para identificar fortalezas, debilidades y problemas, al final del periodo debe ser
revisado nuevamente y comparar resultados. Indique a cada temática F si es una fortaleza, D si es una
debilidad, P si no tiene al cien por ciento (100%) el manejo del tema.
Circuitos secuenciales ( )
Compuertas lógicas ( )
Circuitos MSI
Circuitos Combinacionales ( )
Flipflops( )
Contadores( )
Registros de desplazamiento( )
PREGUNTA PROBLEMA:
¿Cuál es la manera de aprovechar los beneficios que ofrece los microcontroladores?
¿Qué software necesita un microcontrolador para póderlo programar?
¿Qué elementos o dispositivos podemos manipular por medio de los microcontroladores?
¿Qué medidas de seguridad se deben tener en cuenta para manipular los microcontroladores?
“Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y
maravilloso mundo del saber.” Albert Einstein.
APRENDER A CONOCER
EL MICROCONTROLADOR
Un microcontrolador (abreviado μC,UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes
grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un
microcontrolador incluye en su interior las tres unidades funcionales principales: unidad central de procesamiento (CPU),
memoria y periféricos de entrada y salida.
Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la memoria EEPROM del
microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para
microcontroladores; sin embargo, para que el programa pueda ser grabado en la EEPROM del microcontrolador, debe ser
codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando
éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento.
Los microcontroladores representan la inmensa mayoría de los chips vendidos, sobre un 50% son controladores "simples"
y el restante corresponde a DSPs más especializados. Mientras se pueden tener uno o dos microprocesadores de
propósito general en casa (estás usando uno para esto), tienes distribuidos seguramente entre los electrodomésticos de tu
hogar una o dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo electrónico como
automóviles, lavadoras, hornos microondas, teléfonos, Arduino, etc.
Los microcontroladores utilizan la mayoría de su chip para incluir funcionalidad, como los dispositivos de entrada/salida o la
memoria que incluye el microcontrolador, con la gran ventaja de que se puede prescindir de cualquier otra circuitería
externa.
Los puertos de E/S (entrada/salida) en el microcontrolador, generalmente se agrupan en puertos de 8 bits de longitud, lo
cual permite leer datos del exterior o escribir en ellos desde el interior del microcontrolador, el destino habitual es el trabajo
con dispositivos simples como relés, LED, motores, fotoceldas, pulsadores o cualquier otra cosa que sele ocurra al
programador.
PROGRAMACION
La programación es un gran recurso que nos permite crear diversas secuencias de pasos lógicos que van a satisfacer
nuestras necesidades y las de nuestros sistemas. Programar es todo un arte que requiere de una gran habilidad lógica y
concentración por parte del programador.
Es el proceso de diseñar, escribir, probar, depurar y mantener el código fuente de programas computacionales. El código
fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un
comportamiento deseado.
El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del
dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar involucra áreas como el análisis y
diseño de la aplicación.
Para crear un programa que el computador interprete y ejecute las instrucciones escritas en él, debe usarse un lenguaje de
programación. En sus inicios los computadores interpretaban sólo instrucciones en un Lenguaje específico, del más bajo
nivel conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en
cadenas de números 1 y 0 (Sistema binario).
Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las
instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés, codificándolas así y creando un
lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra
A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo
en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de
números binarios.
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un
método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como
multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto
nivel bastará con sólo una.
LENGUAJE DE PROGRAMACION
Un lenguaje de programación es un idioma artificial diseñado para expresar operaciones que pueden ser llevadas a cabo
por máquinas como los computadores. Pueden usarse para crear programas que controlen el comportamiento físico y
lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el Significado de
sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código
fuente de un programa informático se le llama programación.
LENGUAJE MAQUINA
El Lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito micro programable, como el
microprocesador de un computador o un microcontrolador. Este lenguaje está compuesto por un conjunto de instrucciones
que determinan acciones a ser tomadas por la máquina. Estas instrucciones son normalmente ejecutadas en secuencia,
con eventuales cambios de flujo causados por el propio programa o eventos externos.
El lenguaje máquina trabaja con dos niveles de voltaje. Dichos niveles, por abstracción, se simbolizan con el cero (0) y el
uno (1), por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra
booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación.
LENGUIAJE ENSAMBLADOR
El lenguaje ensamblador o assembler es un lenguaje de programación de bajo nivel para los computadores,
microcontroladores, y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de
máquina. Esta representación es usualmente definida por el fabricante de hardware, y está basada en códigos
mnemotécnicos que simbolizan los pasos de procesamiento (las instrucciones).
Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura de computador física (o virtual). Esto está en
contraste con la mayoría de los lenguajes de programación de alto nivel que idealmente son portables.
Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la
capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas.
Para los lenguajes de alto nivel se requiere de ciertos conocimientos de programación para realizar las secuencias de
instrucciones lógicas. Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un problema de
procesamiento de datos de una manera más fácil y rápida.
ALGORITMO
Un algoritmo es un conjunto pre-escrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar
una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado
inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución.
Arduino se programa en el lenguaje de alto nivel C/C++ y generalmente tiene los siguientes componentes para elaborar el
algoritmo:
Estrutura
Variables
Operadores matemáticos, lógicos y booleanos.
Estructuras de control (condicionales y ciclos).
Funciones.
DIAGRAMAS DE FLUJO
Ciertas reglas que hay que tener en cuenta a la hora de realizar diagramas de flujo pueden ser las
siguientes:
Debe existir siempre un camino que permite llegar a una solución (finalización del algoritmo).
CARACTERISTICAS DE LA PLACA DE ARDUINO
Se trata de una placa open hardware por lo que su diseño es de libre distribución y utilización, que incluso podemos
construirnos nosotros mismos (En la Figura 1 se observa el aspecto de la placa). En la siguiente web puede encontrarse
mucha información relativa a la placa:
El programa se implementará haciendo uso del entorno de programación propio de arduino y se transferirá empleando un
cable USB. Si bien en el caso de la placa USB no es preciso utilizar una fuente de alimentación externa, ya que el propio
cable USB la proporciona, para la realización de algunos de los experimentos prácticos sí que será necesario disponer
de una fuente de alimentación externa ya que la alimentación proporcionada por el USB puede no ser suficiente. El
voltaje de la fuente puede estar entre 6 y 25 Voltios.
Entorno de desarrollo
Para programar la placa es necesario descargarse de la página web de Arduino el entorno de desarrollo (IDE). Se
dispone de versiones para Windows y para MAC, así como las fuentes para compilarlas en LINUX. En la Figura 2 se
muestra el aspecto del entorno de programación. En el caso de disponer de una placa USB es necesario instalar los
drivers FTDI. Estos drivers vienen incluidos en el paquete de Arduino mencionado anteriormente. Existen en la web
versiones para distintos sistemas operativos.
Figura 2. Entorno de desarrollo.
Lo primero que tenemos que hacer para comenzar a trabajar con el entorno de desarrollo de arduino es configurar las
comunicaciones entre la placa Arduino y el PC. Para ello deberemos abrir en el menú "Tools" la opción "Serial Port". En
esta opción deberemos seleccionar el puerto serie al que está conectada nuestra placa. En Windows, si desconocemos
el puerto al que está conectado nuestra placa podemos descubrirlo a través del Administrador de dispositivos (Puertos
COM & LPT/ USB Serial Port).
El primer paso para comprobar que todo lo que hemos hecho hasta ahora está bien y familiarizarnos con el interfaz de
desarrollo, es abrir uno de los ejemplos. Se recomienda abrir el ejemplo "Blink". Para ello debemos acceder a través del
menú File ( Sketchbook ( Examples ( Digital ( Blink.
El ejemplo "Blink" lo único que hace es parpadear un LED que está colocado en el pin número 13 de la placa. Vamos a
ver qué hay que hacer para subir el programa a la placa Arduino. Primero comprobamos que el código fuente es el
correcto. Para ello pulsamos el botón de verificación de código que tiene forma de triángulo inclinado 90 grados (Figura
3.a). Si todo va bien deberá aparecer un mensaje en la parte inferior de la interfaz indicando "Done compiling". Una vez
que el código ha sido verificado procederemos a cargarlo en la placa. Para ello tenemos que pulsar el botón de reset de
la placa (Figura 3.b) e inmediatamente después pulsar el botón que comienza la carga (Figura 3.c).
Durante la carga del programa, en la placa USB, se encenderán los LED que indican que se están enviando y recibiendo
información por el puerto serie: TX/RX. Si todo se ha realizado correctamente debe aparecer el mensaje "Done
uploading". Ahora tan sólo queda esperar unos 8 segundos aproximadamente para comprobar que todo ha salido bien. Si
el led colocado en el pin 13 de la placa se enciende y se apaga cada segundo entonces todo ha ido bien. Por fin tenemos
todo listo para empezar a trabajar con la placa Arduino.
Figura 3. a) Compilar programa. b) Botón de reset. c) Transferir programa a la placa.
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.).
void setup() {
inMode(pin, OUTPUT); // Establece 'pin' como salida
}
void loop() {
digitalWrite(pin, HIGH); // Activa 'pin'
delay(1000); // Pausa un segundo
digitalWrite(pin, LOW); // Desactiva 'pin'
delay(1000);
}
Como se observa en este bloque de código cada instrucción acaba con ; y los comentarios se indican con //. Al igual que
en C se pueden introducir bloques de comentarios con /* ... */.
Funciones
Una función es un bloque de código identificado por un nombre y que es ejecutado cuando la función es llamada. La
declaración de una función incluye en primer lugar el tipo de datos que devuelve la función (e.j. int si lo que devuelve es un
valor entero). Después del tipo de datos se especifica el nombre de la funció<bookmark>OLE_LINK1</bookmark>int
delayVal() {
int v; // crea una variable temporal 'v'
v = analogRead(pot); // lee el valor del potenciómetro
v /= 4; // convierte los valores 0-1023 a 0-255
return v; // devuelve el valor final de la variable
}
Variables
Una variable debe ser declarada y opcionalmente asignada a un determinado valor. En la declaración de la variable se
indica el tipo de datos que almacenará (int, float, long)
int inputVariable = 0;
Una variable puede ser declarada en el inicio del programa antes de setup(), localmente a una determinada función e
incluso dentro de un bloque como pueda ser un bucle. El sitio en el que la variable es declarada determina el ámbito de la
misma. Una variable global es aquella que puede ser empleada en cualquier función del programa. Estas variables deben
ser declaradas al inicio del programa (antes de la función setup()).
Tipos de datos
Operadores aritméticos
Empleando variables, valores constantes o componentes de un array pueden realizarse operaciones aritméticas y se
puede utilizar el operador cast para conversión de tipos. Ej. int a = (int)3.5; Además pueden hacerse las siguientes
asignaciones:
x ++. Lo mismo que x = x + 1.
x --. Lo mismo que x = x - 1, or decrements x by -1.
x += y. Lo mismo que x = x + y, or increments x by +y.
x -= y. Lo mismo que x = x - y .
x *= y. Lo mismo que x = x * y.
x /= y. Lo mismo que x = x / y.
Para su utilización en sentencias condicionales u otras funciones Arduino permite utilizar los siguientes operadores de
comparación:
x == y. x es igual a y.
x != y. x no es igual a y.
x < y, x > y, x <= y, x >= y.
Y los siguientes operadores lógicos:
Y lógico: if (x > 0 && x < 5). Cierto si las dos expresiones lo son.
O lógico: if (x > 0 || y > 0). Cierto si alguna expresión lo es.
NO lógico: if (!x > 0). Cierto si la expresión es falsa.
El lenguaje de Arduino presenta las siguientes constantes predefinidas:
TRUE / FALSE.
HIGH/LOW. Estas constantes definen los niveles de los pines como HIGH o LOW y son empleados cuando se leen o
escriben en las entradas o salidas digitales. HIGH se define como el nivel lógico 1 (ON) o 5 V. LOW es el nivel lógico 0,
OFF, o 0 V.
INPUT/OUTPUT. Constantes empleadas con la función pinMode() para definir el tipo de un pin digital usado como entrada
INPUT o salida OUTPUT. Ej. pinMode(13, OUTPUT);
Sentencias condicionales
El lenguaje de arduino permite realizar sentencias condicionales if, if... else, for, while, do... while. Su utilización es similar a
las funciones correspondientes en C.
Función usada en la function setup() para configurar un pin dado para comportarse como INPUT o OUTPUT. Ej.
pinMode(pin, OUTPUT); configura el pin número 'pin' como de salida. Los pines de Arduino funcionan por defecto como
entradas, de forma que no necesitan declararse explícitamente como entradas empleando pinMode().
Función digitalRead(pin)
Lee el valor desde un pin digital específico. Devuelve un valor HIGH o LOW. El pin puede ser especificado con una variable
o una constante (0-13). Ej. v = digitalRead(Pin);
Función analogRead(pin)
Lee el valor desde el pin analógico especificado con una resolución de 10 bits. Esta función solo funciona en los pines
analógicos (0-5). El valor resultante es un entero de 0 a 1023. Los pines analógicos, a diferencia de los digitales no
necesitan declararse previamente como INPUT o OUTPUT.
Escribe un valor pseudo-analógico usando modulación por ancho de pulso (PWM) en un pin de salida marcado como
PWM. Esta función está activa para los pines 3, 5, 6, 9, 10, 11. Ej analogWrite(pin, v); // escribe 'v' en el 'pin' analógico.
Puede especificarse un valor de 0 - 255. Un valor 0 genera 0 V en el pin especificado y 255 genera 5 V. Para valores de 0
a 255, el pin alterna rápidamente entre 0 V y 5 V, cuanto mayor sea el valor, más a menudo el pin se encuentra en HIGH (5
V). Por ejemplo, un valor de 64 será 0 V tres cuartas partes del tiempo y 5 V una cuarta parte. Un valor de 128 será 0 V la
mitad del tiempo y 5 V la otra mitad. Un valor de 192 será 0 V una cuarta parte del tiempo y 5 V tres cuartas partes.
delay(ms). Realiza una pausa en el programa la cantidad de tiempo en milisegundos especificada en el parámetro
(máximo 1000, mínimo 1).
millis(). Devuelve la cantidad de milisegundos que lleva la placa Arduino ejecutando el programa actual como un
valor long unsigned. Después de de 9 horas el contador vuelve a 0.
min(x,y). max(x,y). Devuelve el mínimo y el máximo respectivamente de entre sus parámetros.
Puerto serie
Serial.begin(rate). Abre un Puerto serie y especifica la velocidad de transmisión. La velocidad típica para
comunicación con el ordenador es de 9600 aunque se pueden soportar otras velocidades.
Serial.println(data). Imprime datos al puerto serie seguido por un retorno de línea automático. Este comando tiene
la misma forma que Serial.print() pero este último sin el salto de línea al final. Este comando puede emplearse para
realizar la depuración de programas. Para ello puede mandarse mensajes de depuración y valores de variables por
el puerto serie. Posteriormente, desde el entorno de programación de Arduino, activando el "Serial Monitor" se
puede observar el contenido del puerto serie, y, por lo tanto, los mensajes de depuración. Para observar
correctamente el contenido del puerto serie se debe tener en cuenta que el "Serial Monitor" y el puerto serie han de
estar configurados a la misma velocidad (Para configurar la velocidad del puerto serie se hará con el comando
Serial.begin(rate)).
Serial.read().Lee o captura un byte (un caracter) desde el puerto serie. Devuelve -1 si no hay ningún carácter en el
puerto serie.
Serial.available(). Devuelve el número de caracteres disponibles para leer desde el puerto serie.
Estructura de un programa
La estructura básica del lenguaje de programación de Arduino es bastante simple y se compone de al menos dos
partes. Estas dos partes necesarias, o funciones, encierran bloques que contienen declaraciones, estamentos o
instrucciones.
void setup() //Primera Parte
{
estamentos;
}
void loop() //Segunda Parte
{
estamentos;
}
En donde setup() es la parte encargada de recoger la configuración y loop() es la que contiene el programa que se
ejecutará cíclicamente (de ahí el término loop –bucle-). Ambas funciones son necesarias para que el programa
trabaje.
La función de configuración (setup) debe contener la declaración de las variables. Es la primera función a ejecutar
en el programa, se ejecuta sólo una vez, y se utiliza para configurar o inicializar pinMode (modo de trabajo de las
E/S), configuración de la comunicación en serie y otras.
La función bucle (loop) siguiente contiene el código que se ejecutara continuamente (lectura de entradas,
activación de salidas, etc) Esta función es el núcleo de todos los programas de Arduino y la que realiza la mayor
parte del trabajo.
setup()
La función setup() se invoca una sola vez cuando el programa empieza. Se utiliza para inicializar los modos de
trabajo de los pins, o el puerto serie. Debe ser incluido en un programa aunque no haya declaración que ejecutar.
Así mismo se puede utilizar para establecer el estado inicial de las salidas de la placa.
void setup()
{
pinMode(pin, OUTPUT); // configura el 'pin' como salida
digitalWrite(pin, HIGH); // pone el ‘pin’ en estado HIGH
}
loop()
Después de llamar a setup(), la función loop() hace precisamente lo que sugiere su nombre, se ejecuta de forma
cíclica, lo que posibilita que el programa esté respondiendo continuamente ante los eventos que se produzcan en
la placa.
void loop()
{
digitalWrite(pin, HIGH); // pone en uno (on, 5v) el 'pin'
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin, LOW); // pone en cero (off, 0v.) el 'pin'
delay(1000);
}
funciones
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. Las funciones se
declaran asociadas a un tipo de valor “type”. Este valor será el que devolverá la función, por ejemplo 'int' se
utilizará cuando la función devuelve un dato numérico de tipo entero. Si la función no devuelve ningún valor
entonces se colocará delante la palabra “void”, que significa “función vacía”. Después de declarar el tipo de dato
que devuelve la función se debe escribir el nombre de la función y entre paréntesis se escribirán, si es necesario,
los parámetros que se deben pasar a la función para que se ejecute.
type nombreFunción(parámetros)
{
instrucción;
}
La función siguiente devuelve un número entero, delayVal() se utiliza para poner un valor de retraso en un
programa que lee una variable analógica de un potenciómetro conectado a una entrada de Arduino. Al principio se
declara como una variable local, 'v' recoge el valor leído del potenciómetro que estará comprendido entre 0 y 1023,
luego se divide el valor por 4 para ajustarlo a un margen comprendido entre 0 y 255, finalmente se devuelve el
valor 'v' y se retornaría al programa principal. Esta función cuando se ejecuta devuelve el valor de tipo entero 'v'.
int delayVal()
{
int v; // crea una variable temporal 'v'
v= analogRead(pot); // lee el valor del potenciómetro
v /= 4; // convierte 0-1023 a 0-255
return v; // devuelve el valor final
}
{} entre llaves
Las llaves sirven para definir el principio y el final de un bloque de instrucciones. Se utilizan para los bloques de
programación setup(), loop(), if.., etc.
type funcion()
{
instrucciones;
}
Una llave de apertura “{“ siempre debe ir seguida de una llave de cierre “}”, si no es así el programa dará errores.
El entorno de programación de Arduino incluye una herramienta de gran utilidad para comprobar el total de llaves.
Sólo tienes que hacer click en el punto de inserción de una llave abierta e inmediatamente se marca el
correspondiente cierre de ese bloque (llave cerrada).
; punto y coma
El punto y coma “;” se utiliza para separar instrucciones en el lenguaje de programación de Arduino. También se
utiliza para separar elementos en una instrucción de tipo “bucle for”.
int x = 13; /* declara la variable 'x' como tipo entero de valor 13 */
Nota: Olvidaos de poner fin a una línea con un punto y coma o se producirá en un error de compilación. El texto de
error puede ser obvio, y se referirá a la falta de una coma, o puede que no. Si se produce un error raro y de difícil
detección lo primero que debemos hacer es comprobar que los puntos y comas están colocados al final de las
instrucciones.
/*… */ bloque de comentarios
Los bloques de comentarios, o comentarios multi-línea son áreas de texto ignorados por el programa que se
utilizan para las descripciones del código o comentarios que ayudan a comprender el programa. Comienzan con / *
y terminan con * / y pueden abarcar varias líneas.
/* esto es un bloque de comentario no se debe olvidar
cerrar los comentarios estos deben estar equilibrados */
Debido a que los comentarios son ignorados por el compilador y no ocupan espacio en la memoria de Arduino
pueden ser utilizados con generosidad. También pueden utilizarse para "comentar" bloques de código con el
propósito de anotar informaciones para depuración y hacerlo mas comprensible para cualquiera.
Nota: Dentro de una misma línea de un bloque de comentarios NO se puede escribir otro bloque de comentarios
(usando /*..*/).
// línea de comentarios
Una línea de comentario empieza con // y terminan con la siguiente línea de código. Al igual que los comentarios
de bloque, los de línea son ignoradas por el programa y no ocupan espacio en la memoria.
// esto es un comentario
Una línea de comentario se utiliza a menudo después de una instrucción, para proporcionar más información
acerca de lo que hace ésta o para recordarla más adelante.
Logros
Indicadores de logros
Logro
Indicadores de logro
Elabora y aplica estrategias personales para superar dificultades técnicas, utilizando distintos
recursos e instrumentos y valorando la conveniencia de cada uno de ellos.
Muestra una actitud positiva ante la resolución de problemas mediante la confianza en su propia
capacidad para enfrentarse a ellos con éxito.
Realiza auto-evaluación que relacione emociones y acciones que le permitan potencializar sus
cualidades y disminuir la impulsividad para mejorar su relación interpersonal.
ACTIVIDAD:
Realizar un trabajo donde muestre las normas de seguridad industrial del riesgo eléctrico.
Realizar una actividad didáctica donde se aplique el reglamento del área técnica.
APRENDER A CONVIVIR
Logro
Identifica y divulga acciones de tolerancia ante situaciones de dificultad para el desarrollo de sus
actividades técnicas entre sus compañeros de grupo, proponiendo posibles acciones de mejora grupal
e individual.
Indicadores de logro
Expresa su opinión ante el desarrollo de sus actividades teórico práctica, propone acciones de mejora
pertinentes a las actividades técnicas
Sugiere alternativas de procesos, que optimicen tiempos y recursos, en talleres grupales realizados en
el laboratorio.
Escucha con atención las indicaciones y sugerencias de sus compañeros en trabajo grupal, llegando a
consensos en la realización de los mismos para la realización de las actividades teórico prácticas.
Presenta y escucha opiniones y juicios acerca de la influencia de las TIC y recursos tecnológicos en la
adquisición de información con sentido crítico.
ACTIVIDAD
Realizar una actividad didáctica donde se aplique el reglamento del área técnica para una mejor
convivencia.
CORRELACION – INTERDISCIPINARIEDAD.
EVALUCACION
PROYECCION
El estudio de los microcontroladores permite que el estudiante construya soluciones a problemas cotidianos en la
construcción y automatización de artefactos electrónicos, como son automatizar el ingreso a parqueaderos, a aéreas
estériles.