[go: up one dir, main page]

0% encontró este documento útil (0 votos)
21 vistas72 páginas

Curso Arduino FULL

El documento presenta un taller de integración tecnológica centrado en Arduino, explicando su definición, modelos, y el uso de shields para expandir funcionalidades. Se incluyen prácticas sobre encendido y apagado de LEDs, así como el uso de simuladores como Wokwi, Tinkercad y SimulIDE para aprender a programar en Arduino. Además, se detalla la estructura de programación básica y ejemplos de código para realizar ejercicios prácticos.

Cargado por

brianks500
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas72 páginas

Curso Arduino FULL

El documento presenta un taller de integración tecnológica centrado en Arduino, explicando su definición, modelos, y el uso de shields para expandir funcionalidades. Se incluyen prácticas sobre encendido y apagado de LEDs, así como el uso de simuladores como Wokwi, Tinkercad y SimulIDE para aprender a programar en Arduino. Además, se detalla la estructura de programación básica y ejemplos de código para realizar ejercicios prácticos.

Cargado por

brianks500
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 72

TALLER DE

INTEGRACIÓN
TECNOLÓGICA I

Primeros pasos con Arduino


Prácticas
Autores de la presentación: Diego Brengi, Gerardo García y Gabriela Vallés 07/09/2024
¿Qué es Arduino?

https://www.arduino.cc
Arduino es una familia de
circuitos de control
(microcontroladores) y un
software de fácil uso.

Muy popular entre


hobbistas y entusiastas de
la electrónica y la robótica.

Es HARDWARE ABIERTO
(Están los diseños y se los
puede usar, fabricar y
modificar libremente)

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


¿Qué modelos hay? POPULARES

https://www.arduino.cc/en/Main/Products
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
¿Qué modelos hay? MEJORADOS/AVANZADOS

https://www.arduino.cc/en/Main/Products
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
¿Qué modelos hay? PARA IoT

https://www.arduino.cc/en/Main/Products
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
¿Qué modelos hay? PARA WEARABLES

https://www.arduino.cc/en/Main/Products
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
¿Qué modelos hay? RETIRADOS

https://www.arduino.cc/en/Main/Products
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
¿Qué es un SHIELD (Escudo)?
Los SHIELDS son placas de expansión
que se conectan al Arduino y le agregan
funcionalidades.

Existe una gran variedad de SHIELDs


para todo tipo de aplicaciones.
Los SHIELDS son apilables y pueden
colocarse más de uno si no interfieren
entre sí.

Algunos SHIELDS:

● Control de servomotores.
● Control de motores.
● Comunicación BlueTooth,
GSM, Zigbee.
● Display LCD.
● Wi-Fi.
● GPS.
● Acelerómetros

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


¿Qué es un SHIELD (Escudo)?
Shield Joystick, shield LCD, shield Ethernet y shield
protoboard.

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Ecosistema Arduino

PLACAS SHIELDS
ARDUINO
MÓDULOS
ELECTRÓNICOS
SOFTWARE, IDE,
SIMULADORES

BIBLIOTECAS DE
CÓDIGO COMUNIDAD
USUARIOS

APLICACIONES Makers, DIY,


aficionados,
artistas,
prototipado
electrónico,
estudiantes, etc.
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Arduino UNO R3

El Arduino Uno R3 es una


de las versiones más
populares de Arduino.

Tiene un microcontrolador
Atmega328 de AVR con 32
KB de memoria de
programa, RAM de 2KB y
EEPROM de 1 KB

Tiene un conector de
expansión para los
SHIELDS.
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Esquema de PINOUT Arduino UNO
USB
ALIMENTACIÓN

RESET

PROGRA
MACIÓN
BAJO
NIVEL

CONECTORES DE EXPANSIÓN

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Esquema de Alimentación
ALIMENTACIÓN
POR USB
Al comprar, fijarse que trabaje con
(5V DC) niveles lógicos de 5V. Porque algunos
modelos usan niveles lógicos de 3,3V
y esos necesitan de más cuidado y
son menos compatibles con los
módulos más comunes.

ALIMENTACIÓN
7 a 12 V DC

ALIMENTACIÓN
POR CONECTOR DE
Copyright (c) 2020 - Diego Brengi y Gabriela Valles EXPANSIÓN
Entorno de sofwtare (IDE)

Permite:
● Programar
● Grabar el programa
● Comunicación serie

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Flujo básico de trabajo
Conectar el Arduino al USB

Abrir la IDE

Seleccionar el modelo
arduino y el puerto de
comunicación

Escribir el código

Transferir/grabar el programa

Observar los resultados

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Estructura de Programación en Arduino
La función setup() se invoca una sola
vez cuando el programa empieza. Se
void setup() { utiliza para las configuraciones varias
que requieran las librerías en uso o el
Escriba código proyecto en si, invariantes durante
de
toda la ejecución del programa, por
} Programación
aquí ejemplo: inicializar los modos de
trabajo de los pins, o el puerto serie.
Debe ser incluido en un programa
aunque no haya declaración que
void loop() { ejecutar.

Escriba código La función loop() hace precisamente


de
Programación lo que sugiere su nombre, se ejecuta
} aquí de forma cíclica, lo que posibilita que
el programa este respondiendo
continuamente ante los eventos que
se produzcan en la tarjeta .
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
PODES EMPEZAR USANDO UN
SIMULADOR PARA APRENDER,
PRACTICAR Y PROBAR SI AÚN NO TENÉS
TU ARDUINO

WOKWI TINKERCAD SIMULIDE


(Simulador online) (Simulador online) (Corre en tu PC)

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Wokwi

● Es una herramienta de
simulación para
sistemas Arduino,
ESP32, STM32 y Rpi
Pico.
● Es web, no hay que
instalar nada en tu PC.
● No es libre pero se
puede usar
gratuitamente. Algunas
funciones avanzadas
requieren membresía
paga.
https://wokwi.com/
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Tinkercad

● Tinkercad es una herramienta de simulación electrónica, que


también te permite usar un Arduino simulado.
● Es web, no hay que instalar nada en tu PC.
● No es libre pero se puede usar gratuitamente.
https://www.tinkercad.com/circuits

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


SimulIDE

SimulIDE es un programa libre y gratuito de simulación


electrónica.

Se puede utilizar para aprendizaje de electrónica y para


realizar algunos ejercicios.
Página web:
https://www.simulide.com/p/home.html
Descargas: https://launchpad.net/simulide

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


SimulIDE

Si te interesa aprender
SIMULIDE, podés ver el
curso online que se dictó
en la UNLaM.
Actualmente hay
versiones más nuevas de
Simulide, pero su uso es
similar.

https://youtu.be/B6Rsham_ch4

El uso de SIMULIDE es opcional, podés usar los simuladores


ONLINE que son más sencillos ya que no necesitan
instalación.

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Primeros pasos con Arduino
TALLER DE
INTEGRACIÓN
TECNOLÓGICA I PRÁCTICA 1

Encendido y Apagado de Led Onboard

Vamos a hacer que un


LED del Arduino titile
(prenda y apague).

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 1: Salidas Digitales - Encendido y Apagado de Led Externos

Preparación del Hardware en SimulIDE:

Materiales a utilizar:

● Arduino UNO

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 1: Salidas Digitales - Encendido y Apagado de Led Onboard
Conceptos teóricos aplicados:
Al declarar una variable del tipo int se indica al
● Declaración de variables tipo ‘int’ programa que dicha variable podrá tomar cualquier
valor del tipo ´entero´.
ejemplo: int num1 = 5 ;
La función pinMode( ... , … )
configura un pin determinado de
la placa de Arduino como Entrada
● Utilización de las siguientes funciones: (INPUT) o Salida (OUTPUT).
Por ejemplo, se puede observar
o pinMode ( pin , INPUT / OUTPUT ) en el ejemplo que el pin 8
ejemplo: pinMode ( 8 , OUTPUT ); (GPIO8) es seteado como Salida.

En el caso de haber seteado un pin como Salida,


luego se puede utilizar la función digitalWrite( ... , …
o digitalWrite ( pin , HIGH / LOW ) ) que escribe sobre el pin indicado un valor de
ejemplo: digitalWrite ( 8 , HIGH ); tensión de 5V (HIGH) o puede escribir un valor de
tensión de 0V (LOW).

La función delay ( … ) genera una demora en el


o delay ( tiempo ) programa de un determinado tiempo. La variable de
ejemplo: delay (1000 ); entrada es en milisegundos, por lo cual si utilizamos
delay ( 1000) estaremos ejecutando una demora de
1 segundo.

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 1: Salidas Digitales - Encendido y Apagado de Led Onboard
Ejemplo de Código: Se declara una variable llamada
ledPin donde se indica que
corresponderá al Pin 13 (GPIO13)
de la placa Arduino.
int ledPin = 13; Se decide usar una variable para
guardar el número del pin, para
que posteriormente se llame a las
funciones con la variable, y no con
void setup() { el número del pin directamente
pinMode( ledPin, OUTPUT );
} El pin 13 (ledPin) es seteado
como una Salida Digital

void loop() { Se escribe un ‘1’ lógico en el pin 13 (ledPin).


digitalWrite( ledPin, HIGH ); El Led de la Placa Arduino se Enciende

delay(5000); Demora de 5 segundos

digitalWrite( ledPin, LOW ); Se escribe un ‘0’ lógico en el


pin 13 (ledPin).
delay(5000); El Led de la Placa Arduino se
} Apaga

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 1: Salidas Digitales - Encendido y Apagado de Led Onboard
Diagrama de Flujo:

int ledPin = 13;

void setup() {
pinMode( ledPin, OUTPUT);
}

void loop() {
digitalWrite( ledPin, HIGH);
delay(5000);
digitalWrite( ledPin, LOW);
delay(5000);
}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 1: Salidas Digitales - Encendido y Apagado de Led Onboard
Agregando el código en la IDE de Arduino y SimulIDE:

Compilar
Compilar
Abrir
*.ino

Resultado
de la
Compilación

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 1: Salidas Digitales - Encendido y Apagado de Led Onboard
Simulando el ejercicio en SimulIDE: Cargar programa
Encender circuito en Arduino

Led Onboard
Encendido
Programa
cargado
exitosamente

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 1: Salidas Digitales - Encendido y Apagado de Led Onboard
Simulación con Tinkercad:

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 1: Salidas Digitales - Encendido y Apagado de Led Onboard
Fotos del Resultado:

Led Onboard Encendido Led Onboard Apagado

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Primeros pasos con Arduino
TALLER DE
INTEGRACIÓN
TECNOLÓGICA I
PRÁCTICA 2

Encendido y Apagado de Leds externos

Vamos a conectar dos


leds y hacer que titilen.

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


La patita más larga es La resistencia es necesaria para
el positivo (ánodo) que no se queme el led.

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Símbolos utilizados
para el resistor
Dependiendo de los colores de las
bandas es el valor del resistor
(Código de colores para resistores)

https://www.digikey.com/es/resources/conv
ersion-calculators/conversion-calculator-res
istor-color-code-5-band
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Práctica Nº 2: Salidas Digitales - Encendido y Apagado de Led Externos

Preparación del Hardware:

Diagrama de conexión:
Materiales a utilizar:

● Arduino UNO

● Protoboard

● 2 Leds

● 2 Resistencias de 220 Ω

● Cables de conexión

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 2: Salidas Digitales - Encendido y Apagado de Led Externos

Preparación del Hardware en SimulIDE:

Diagrama de conexión:
Materiales a utilizar:

● Arduino UNO

● 2 Leds

● 2 Resistencias de 220 Ω

● Cables de conexión

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 2: Salidas Digitales - Encendido y Apagado de Led Externos
Ejemplo de código:
Se declaran las variables llamadas
int led1 = 8; ledPin1 y ledPin2 donde se indica
int led2 = 9; que corresponderán a los Pines 8 y
9 correspondientemente de la
placa Arduino
void setup() {
pinMode( led1, OUTPUT); El pin 8 (led1) y pin 9 (led2) son
seteados como Salidas Digitales
pinMode( led2, OUTPUT);
}

void loop() { 1) Se enciende el led1


digitalWrite( led1, HIGH); 2)Demora de 1 segundo
delay(1000); 3)Se enciende el led2

digitalWrite( led2, HIGH); 4)Demora de 1 segundo

delay(1000); 5)Se apaga de led1


6)Demora de 1 segundo
digitalWrite( led1, LOW);
7)Se apaga el led2
delay(1000);
8)Demora de 1 segundo
digitalWrite( led2, LOW); 9)Vuelvo a comenzar la secuencia de
delay(1000); apagado y encendido
}
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Práctica Nº 2: Salidas Digitales - Encendido y Apagado de Led Externos
Diagrama de Flujo:
int led1 = 8;
int led2 = 9;

void setup() {
pinMode( led1, OUTPUT);
pinMode( led2, OUTPUT);
}

void loop() {
digitalWrite( led1, HIGH);
delay(1000);
digitalWrite( led2, HIGH);
delay(1000);
digitalWrite( led1, LOW);
delay(1000);
digitalWrite( led2, LOW);
delay(1000);
}
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Práctica Nº 2: Salidas Digitales - Encendido y Apagado de Led Externos
Agregando el código en la IDE de Arduino y SimulIDE:

Abrir
*.ino

Resultado
de la
Compilación

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 2: Salidas Digitales - Encendido y Apagado de Led Externos
Cargar Firmware:

Programa
cargado
exitosamente
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Práctica Nº 2: Salidas Digitales - Encendido y Apagado de Led Externos
Simulando el ejercicio:
1° 2°

3° 4°

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 2: Salidas Digitales - Encendido y Apagado de Led Externos
Fotos del Resultado:

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Primeros pasos con Arduino
TALLER DE
INTEGRACIÓN
TECNOLÓGICA I
PRÁCTICA 3

Lectura de pulsador (Entrada digital)

Vamos a leer el estado


de un pulsador
(entrada digital) y
encender un led en
función de la lectura.

Incorporamos es uso
de un condicional (IF).

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 3: Entrada digital – Encendido de Led externo mediante llave
Preparación del Hardware:

Materiales a utilizar: Diagrama de conexión:


● Arduino UNO

● Protoboard

● 1 Led

● 1 Botón pulsador para


protoboard

● 1 Resistencia de 220 Ω

● 1 Resistencia de 10K Ω

● Cables de conexión
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Práctica Nº 3: Entrada digital – Encendido de Led externo mediante llave

Preparación del Hardware en SimulIDE:

Materiales a utilizar: Diagrama de conexión:


● Arduino UNO

● 1 Led

● 1 Botón pulsador para


protoboard

● 1 Resistencia de 220 Ω

● 1 Resistencia de 10K Ω

● Cables de conexión

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 3: Entrada digital – Encendido de Led externo mediante llave
Nuevos conceptos teóricos aplicados:
Al declarar una variable del tipo const se indica al
● Declaración de variables tipo ‘const’ programa que dicha variable tendrá siempre fijo el
mismo valor y no cambiará a lo largo de la ejecución
del programa.
● Utilización de las siguientes funciones:
En el caso de haber seteado un pin como Entrada,
o digitalRead ( pin ) luego se puede utilizar la función digitalRead( ... ) que
lee el valor de tensión que ingresa en ese pin de la
placa de Arduino. Los valores posibles que se puede
leer son 5V (HIGH) o 0V (LOW).
● Utilización del condicional Este condicional es usado para ejecutar una instrucción
if {…} else {…} o bloque de instrucciones solo si una condición es
cumplida. Su forma es:

if (condición) {
…;
Ejemplo: }
else {
if ( edad >= 18) { …;
mayor_de_edad = “SI”; }
}
else { Donde la condición es la expresión que será evaluada.
mayor_de_edad = “NO”; Si esta condición es verdadera, el extracto es
} ejecutado. Si esta es falsa, el extracto es ignorado (no
Copyright (c) 2020 - Diego Brengi y Gabriela Valles ejecutado) y el programa continua en la siguiente
Práctica Nº 3: Entrada digital – Encendido de Led externo mediante llave
Se declaran las variables llamadas led y
Ejemplo de código: llave donde se indica que corresponderán
a los Pines 10 y 4 correspondientemente
const int led1 = 9; de la placa Arduino
const int llave1 = 4; Se declara una variable del tipo `int`
int tension; llamada ´tension´

void setup() {
El pin 10 (led) es seteado como
pinMode(led1, OUTPUT); Salida Digital
pinMode( llave1, INPUT); El pin 4 (llave) es seteado como
Entrada Digital
}

void loop() {
tension = digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH); Condicional IF()….else…
} Se usará la estructura condicional IF para

else { determinar si se prende o no el Led en función


de la posición de la llave
digitalWrite( led1, LOW);
}
}
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Práctica Nº 3: Entrada digital – Encendido de Led externo mediante llave
Diagrama de Flujo:
const int led1 = 9;
const int llave1 = 4;
int tension;

void setup() {
pinMode(led1, OUTPUT);
pinMode( llave1, INPUT);
}

void loop() {
tension = digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH);
}
else {
digitalWrite( led1, LOW);
}
}
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Práctica Nº 3: Entrada digital – Encendido de Led externo mediante llave
Agregando el código en la IDE de Arduino y SimulIDE:

Abrir
*.ino

Resultado
de la
Compilación

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 3: Entrada digital – Encendido de Led externo mediante llave
Cargar Firmware:

Programa
cargado
exitosamente
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Práctica Nº 3: Entrada digital – Encendido de Led externo mediante llave
Simulando el ejercicio:

1° 2°

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Práctica Nº 3: Entrada digital – Encendido de Led externo mediante llave
Fotos del Resultado:

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Primeros pasos con Arduino
TALLER DE
INTEGRACIÓN
TECNOLÓGICA I
Programación

Elementos básicos
y un poco de HW

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: los circuitos.
Circuitos de entradas:
Pull-up Pull-down

1° 2°

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: los circuitos.
Circuitos de entradas:

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Variables:

AD
C

const int led1 = 9; RAM

const int llave1 = 4;


int tension; I2C

void setup() { Flash

pinMode(led1, OUTPUT); Serial

pinMode( llave1, INPUT);


RAM
}

void loop() {
tension = digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH);
} CPU
else {
digitalWrite( led1, LOW);
}
}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Detalle de partes: if

Diagrama de Flujo:
const int led1 = 9;
const int llave1 = 4;
int tension;

void setup() {
pinMode(led1, OUTPUT);
pinMode( llave1, INPUT);
}

void loop() {
tension = digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH);
}
else {
digitalWrite( led1, LOW);
}
}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Detalle de partes: Anatomía detallada (repaso)

const int led1 = 9;


const int llave1 = 4;
int tension;

void setup() {
pinMode(led1, OUTPUT);
pinMode( llave1, INPUT);
}

void loop() {
tension = digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH);
}
else {
digitalWrite( led1, LOW);
}
}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Partes if: anatomía

void loop() {
tension=digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH);
}
else {
digitalWrite( led1, LOW);
}
}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Partes del código e identación: código vs diagrama de flujo

void loop() {
tension=digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH);
}
else {
digitalWrite( led1, LOW);
}
}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Anatomía del if: repaso

void loop() {
tension=digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH);
}
else {
digitalWrite( led1, LOW);
}
}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
loop(): atención con los corchetes

void loop()
{
tension=digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH);
}
else {
digitalWrite( led1, LOW);
}
}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Anatomía de if: corchetes en el if

void loop() {
tension=digitalRead( llave1);
if ( tension == HIGH ) {
digitalWrite( led1, HIGH);
}
else {
digitalWrite( led1, LOW);
}
}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
No bloqueante:

Como ejemplo vamos a implementar un LED que se va a encender y se apagará al


pasar 10s o cuando se presione un pulsador

While
Encender LED

Esperar 10s

Cond F Leer
ición PULSADOR

V PULSADOR
==
HIGH
Instrucciones
Apagar LED

Apagar LED

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Uso de millis();:
Como ejemplo vamos a implementar un LED que se va a encender y se apagará al pasar 10s o cuando se presione
un pulsador

Realiza paso por paso,


Encender LED termina uno y sigue con Encender LED
el próximo

t=millis(); Esperar 10s

tfinal = t + 10000; Leer


PULSADOR

F
millis()
<=
tfinal PULSADOR
==
V HIGH

Leer
¿Cuándo leo el
pulsador? Apagar LED
PULSADOR

PULSADOR
==
HIGH Apagar LED

tfinal=t;

Apagar LED

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Uso de millis();:
Como ejemplo vamos a implementar un LED que se va a encender y se apagará al pasar 10s o cuando se presione
un pulsador

digitalWrite(LED, HIGH);

t = millis();
tfinal = t + 10000;

while (millis() <= tfinal)


{
tension=digitalRead(PULSADOR);

if ( tension == HIGH ) {
tfinal=t;
}
}
digitalWrite(LED, LOW);

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Comprendiendo mejor: Programación.
Uso de while:
Como ejemplo vamos a implementar un LED que se va a encender y se apagará al pasar 10s o cuando se presione
un pulsador

digitalWrite(LED, HIGH);

t = millis();
tfinal = t + 10000;

while (millis() <= tfinal)


{
tension=digitalRead(PULSADOR);

if ( tension == HIGH ) {
break;
tfinal=t;
}
}
digitalWrite(LED, LOW);

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Primeros pasos con Arduino
TALLER DE
INTEGRACIÓN
TECNOLÓGICA I

Estructuras de
control de flujo de
programa

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Estructuras de control de flujo del programa

IF if(condición)
{ //acción}

IF ELSE if(condición)
{ //acción}
else
{ //otra acción}

ELSE IF if(condición)
{ //acción}
else if (condición2)
{ //otra acción}
else
{ //otra acción más}

FOR for(inicial , condicion , incremento)


{ //acción}

Copyright (c) 2020 - Diego Brengi y Gabriela Valles


Estructuras de control de flujo del programa

WHILE while(condición)
{ //acción}

DO WHILE do
{ //acción }
while (condición);

SWITCH CASE switch (variable)


{
case CASO1:
// acción
break;
case CASO2:
// acción 2
break;
default:
// acción
break;
Copyright (c) 2020 - Diego Brengi y Gabriela Valles }
Primeros pasos con Arduino
TALLER DE
INTEGRACIÓN RETO Nro. 2
TECNOLÓGICA I

Ejercicio pulsador y tres leds


A veces pienso en hacer los ejercicios
desafiantes que dan los profes

Luego recuerdo que no entran en


el parcial y se me pasa
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Llegamos al final del curso...

Me dijiste que este


curso de Arduino era Los anteriores nos
“El mejor”. salieron peores.
Copyright (c) 2020 - Diego Brengi y Gabriela Valles
Staff Docente
Dictado y prácticas
● Gerardo García
● Néstor Mariño
● Diego Romero
● Diego Brengi
● Federico Ducatelli

http://lacie-unlam.org/
https://www.facebook.com/lacie.unlam/
Copyright (c) 2020 - Diego Brengi y Gabriela Valles

También podría gustarte