Clase 9 Programacion Basica Arduino Uno 12OCT23
Clase 9 Programacion Basica Arduino Uno 12OCT23
Principios de programación
CLASE 9 PROGRAMACION BASICA DE ARDUINO UNO
Presentación de Arduino Uno.
Entorno de programación: UnoArduSim
Programando Arduino.
Funciones de Arduino.
Primeros pasos para escribir un sketch.
Las instrucciones de control.
Tipos de Arduino.
Presentación de Arduino Uno
OJO!!
Shield WiFi
Interface de
programación
Elementos
disponibles
para la
simulación
1
IJSF. Electrónica Industrial. Año 2023.
Programando en Arduino
Un programa de Arduino se denomina sketch o proyecto y tiene la extensión .ino
Para que un sketch funcione, deberá estar guardado en una carpeta que tenga el
mismo nombre que el sketch.
Es así como setup() solo se ejecutará una vez, después de cada encendido o
reinicio de la placa Arduino. Entonces tenemos que setup() es la encargada de
recoger la configuración.
Loop()
Prácticas complementarias 1 y 2
Recordemos
la estructura Copie y ejecute en ArduUnoSim los sketchs mostrados en las imágenes:
básica
Compare los resultados. Qué cambios detectó? Cambie los tiempos de encendido.
Utilizamos: pinMode (establecimos como funciona el pin), digitalWrite (indicamos el estado del pin), int
(definimos el nombre del pin), delay (pusimos un tiempo de espera en milisegundos).
2
IJSF. Electrónica Industrial. Año 2023.
Funciones de Arduino
Existe un elemento de los lenguajes de programación, independientemente de cual sea, que mantiene
una relación directa con las Estructuras de Control, los Diagramas de Flujo y el lenguaje de programación:
se trata de las Funciones.
Las Funciones son un conjunto de instrucciones que permiten realizar determinadas acciones
integradas en el sketch de Arduino. A cada función se le asigna un nombre único, y esto permite que el
programa principal la “llame”, es decir que la utilice, en cualquier momento y cuantas veces sea
necesario.
Las Funciones pueden recibir parámetros y operar con ellos. Inclusive pueden entregar un resultado.
Inclusive, estas pueden ser creadas por el programador. Por ejemplo,
para realizar una tarea repetitiva dentro de un sketch no es necesario
reescribir varias veces una porción dedicada a dicha tarea, sino que
simplemente la escribimos una única vez y luego la llamamos toda vez
que es necesario.
suma_dígitos()
Las Variables se utilizan para almacenar un valor temporalmente, y
dichos valores pueden ir cambiando durante el transcurso del programa.
int variableSuma = 0;
variableSuma = 10+8;
3
IJSF. Electrónica Industrial. Año 2023.
4
IJSF. Electrónica Industrial. Año 2023.
Recordemos que tenemos un sector para configurar el Arduino, y otro para repetir las instrucciones. La
doble // permite escribir notas, muy útiles para recordar que operación o sentido tiene cada línea del
código. Todo lo que se escriba dentro de las llaves { }, será ejecutado en el orden en que aparece
escrito.
Para el sketch que se muestra más abajo será primero el bucle 1, luego el bucle 2, etc., hasta llegar a la
llave final. Luego Arduino vuelve ejecutar bucle 1, etc. La cantidad de repeticiones dependerá del
programa, en tanto que los tiempos de repetición son prácticamente instantáneos y dependen de la
velocidad del micro.
En la parte superior del sketch, antes de void setup () y void loop () y de ser necesario, se pueden definir
las variables, que son nombres donde se pueden guardar datos.
En el siguiente ejemplo, ya realizado, le habíamos otorgado un valor (13) a una nueva variable (llamada
led1), y la asociamos al pin del mismo valor (pin digital 13). Arduino comandará un led que está
conectado al pin 13.
Ahora con Arduino operaremos el led en forma intermitente (hasta que se apague la placa).
Para tal fin debemos escribir dentro de las {} de void setup(), y nuestro pin 13 será configurado como
salida mediante el comando:
En Arduino un pin digital puede ser una salida o una entrada (OUTPUT o INPUT). En el siguiente paso, le
señalamos a Arduino que ponga un valor HIGH (uno digital o 5V) en el pin 13, donde está el led.
Entonces hacemos uso del comando:
Donde pin será nuestra variable led1 y valor será HIGH. De este modo el led se enciende y mantiene el
estado:
5
IJSF. Electrónica Industrial. Año 2023.
Para lograr que led sea intermitente debemos incluir un texto que lo apague
(LOW), y también un retardo de tiempo para que se pueda apreciar el cambio de
estado del led:
delay(tiempo en ms);
Sin embargo cabe destacar que en este caso no era estrictamente necesario
declarar una variable para identificar el pin.
Ejercicio1: escriba y simule un sketch con dos led (uno verde y otro rojo).
Cuando enciende el verde el rojo está apagado. Delay 1 segundo.
Las instrucciones más comunes son: if, else, for, while, do, while.
FOR
6
IJSF. Electrónica Industrial. Año 2023.
Práctica Complementaria 5
Habilitamos la
comunicación serie, el
valor 9600 indica la
velocidad de comunicación
Acción
WHILE
La instrucción while ejecuta las sentencias por tiempo indefinido, hasta que se
cumpla la condición que está dentro de sus (). Se usa para la lectura de sensores,
por ejemplo.
IF
7
IJSF. Electrónica Industrial. Año 2023.
Práctica Complementaria 6:
Usamos un potenciómetro
lineal conectado al pin A0
(simulando un sensor que
mide una magnitud física
variable en el tiempo).
El ejemplo anterior, en la
práctica se vería así +
En void setup() inicializamos en puerto serie, mediante:
Mostramos “valor” en el monitor serie. Agregamos ln para que los datos sean
mostrados uno debajo del otro:
Serial.println(valor);
8
IJSF. Electrónica Industrial. Año 2023.
Al cambiar el rango de operación por el que se muestra más abajo, podemos usar
AND:
IF ELSE
Usando ELSE el código nos queda más corto, ya que nos ahorramos en
segundo IF:
9
IJSF. Electrónica Industrial. Año 2023.
Ejercicio 5:
Notas:
Para simular el detector de movimiento usamos un pulsador. Con
movimiento habrá una señal HIGH, caso contrario LOW.
La Función analogWrite()
10
IJSF. Electrónica Industrial. Año 2023.
Mediante analogRead se pueden leer datos de los pines analógicos, los cuales
tienen saltos que van de 0 a 1023. Suficiente para darle sensibilidad a la lectura de
un sensor (en este caso un potenciómetro).
11
IJSF. Electrónica Industrial. Año 2023.
NOTA:
En el sitio de Arduino podremos encontrar detalles de las Variables, Funciones y Estructura necesarias
para ayudarnos a darle forma a un sketch.
https://www.arduino.cc/reference/en/
Tipos de Arduino
Cada una cuenta con el mismo microcontrolador, esto significa que funcionan con el mismo programa,
pero tienen diferente cantidad de entradas/salidas.
Controlino
Arduino Ind
12