Está en la página 1de 25

Robótica y domótica

con Arduino
Sesión II
Funciones
Una función es un conjunto de instrucciones que
ejecuta una tarea determinada y que está encapsulado
en un formato estándar para que sea muy sencillo de
manipular y reutilizar.

Ejemplos
delay(1000)

pinMode(8, OUTPUT)

digitalWrite(8, LOW)

digitalRead(5)
Funciones
Supongamos que tenemos la función.

𝑓 𝑥 = { 2𝑥 + 1 }

Donde:
𝑓: nombre de la función
𝑥: variable o parámetro de la función

• 𝑓 5 = 2 5 + 1 = 11

• delay(1000) = {...} = pausa de 1 seg.


Funciones
Supongamos que tenemos la función.

𝑓 𝑥, 𝑦 = {𝑥 + 2𝑦 + 3 }

Donde:
𝑓: nombre de la función
𝑥, 𝑦: variables o parámetros de la función

• 𝑓 5, 4 = 5 + 2 4 + 3 = 16

• digitalWrite(8, HIGH) = {...} = envía 5v al PIN 8


Proyecto

Crear un programa en
Arduino que realice lo
siguiente:

- Si está oscuro, que


ambos leds parpadeen
juntos.

- Si no está oscuro, que


los leds parpadeen de
forma intercalada.

Usar funciones
PROYECTO 01: Robot seguidor de
líneas
Motor DC (Corriente
continua)
Son motores que pueden girar 360
grados y podemos controlar su
velocidad y dirección de giro.

Los motores consumen sobre unos


60mA cada uno y aceptan un
voltaje entre 3 y 6 voltios.

Por eso se puede utilizar un


conjunto de 4 o 6 pilas para
alimentarlo cómodamente, a través
del conector de alimentación
externa de tu Arduino
Controlador de motores DC
Driver Puente-H L298N

Nos permite controlar la velocidad


y la dirección de dos motores de
corriente continua de una forma muy
sencilla.
El rango de tensiones en el que
trabaja este módulo va desde 3V
hasta 35V, y una intensidad de
hasta 2A.
Además incluye un regulador de
tensión que nos permite obtener del
módulo una tensión de 5V.
Módulo Puente-H L298N

Los pines IN1 e IN2 nos sirven para controlar el sentido de giro
del motor A, y los pines IN3 e IN4 el del motor B.

Funcionan de forma que si IN1 = HIGH e IN2 = LOW el motor A gira en


un sentido, y si IN1 = LOW e IN2 = HIGH el motor A cambia el sentido
de giro. Lo mismo con los pines IN3 e IN4 y el motor B.
Módulo Puente-H L298N

Para controlar la velocidad de giro de los motores tenemos que


quitar los jumpers y usar los pines ENA y ENB. Los conectaremos
a dos salidas PWM de Arduino de forma que le enviemos un valor
entre 0 y 255 que controle la velocidad de giro.
Las baterías LiPo
Una batería LiPo (polímero de
Litio) es un tipo de batería
recargable muy habitual en el mundo
de la robótica.

Son muy recomendables ya que


ofrecen prestaciones superiores a
las NiCd y NiMH.

Una batería LiPo puede almacenar


una gran cantidad de energía y
puede fabricarse en medidas
personalizadas. Además ofrecen una
tasa de descarga muy alta.
Las baterías LiPo
Las baterías LiPo
Control de 2 motores DC

ENA -> Pin 6


ENB -> Pin 5
IN1 -> Pin 13
IN2 -> Pin 12
IN3 -> Pin 11
IN4 -> Pin 10
Control de 2 motores DC

MOTOR A
IN1 IN2 RESULTADO
El motor A gira en
1 0
un sentido
El motor A gira en
0 1
el sentido contrario
1 1 El motor se detiene
0 0 El motor se detiene
Control del motor A
VARIABLES
IN1, IN2, IN3, IN4, ENA, ENB

INICIO

Escribir en IN1 el valor digital 1 Dirección del


Motor A
Escribir en IN2 el valor digital 0
Escribir en ENA el valor analógico 100 Velocidad
Motor A
del

FIN
Control del motor A
Control de los motores A y B
Funciones para los
movimientos de los motores
Funciones para los
movimientos de los motores
función adelante()
Girar el Motor A en sentido horario
Girar el Motor B en sentido horario
fin_adelante

función atras()
Girar el Motor A en sentido antihorario
Girar el Motor B en sentido antihorario
fin_atras
Funciones para los
movimientos de los motores
función derecha()
Girar el Motor A en sentido horario
Girar el Motor B en sentido antihorario
fin_derecha

función izquierda()
Girar el Motor A en sentido antihorario
Girar el Motor B en sentido horario
fin_izquierda
Funciones para los
movimientos de los motores
Funciones para los
movimientos de los motores

También podría gustarte