Robotica. Programacion Con Arduino
Robotica. Programacion Con Arduino
CONTROL Y PROGRAMACION
CON ARDUINO
ESTUDIANTE:
MATRICULA: AULA
DOCENTE: :
ROBOTICA
INDICE
UNIDAD I:
A) ESTRUCTURAS DE CONTROL
B) SENTENCIAS IF, ELSE, SWITCH
C) BUCLES: FOR, WHILE, DO-WHILE
UNIDAD II:
B) FUNCIONES Y BIBLIOTECAS
C) CREACIÓN Y USO DE FUNCIONES PROPIAS
D) IMPORTACIÓN Y USO DE BIBLIOTECAS (EJEMPLO: SERVO.H,
LIQUIDCRYSTAL.H)
UNIDAD III:
A) FUNDAMENTOS DE PWM
B) APLICACIÓN DE PWM PARA CONTROL DE BRILLO DE LEDS Y
VELOCIDAD DE MOTORES
INTRODUCCION:
ROBOTICA
Aplicaciones Principales
Filosofía de Arduino
UNIDAD I:
ROBOTICA
ESTRUCTURAS DE CONTROL
Estructuras Condicionales
a. if (si)
b. if-else (si-sino)
d. switch-case (según-sea)
for (para)
while (mientras)
do-while (hacer-mientras)
Consejos Prácticos
Ejercicios Propuestos
CUESTIONARIO I
ROBOTICA
5. ¿Qué pines de Arduino son compatibles con PWM (salida analógica simulada)?
11. ¿Qué bucle se ejecuta al menos una vez, incluso si la condición es falsa?
ROBOTICA
13. ¿Qué código usarías para encender un LED cuando un sensor de luz detecte
oscuridad (valor < 500)?
UNIDAD II
ROBOTICA
FUNCIONES Y BIBLIOTECAS
Introducción Conceptual
b. Diferencias clave
Funciones en Profundidad
a. Tipos de funciones
2. Funciones personalizadas:
b. Estructura detallada
ROBOTICA
d. Funciones inline
e. Punteros a funciones
b. Tipos de bibliotecas
1. Bibliotecas estándar:
2. Bibliotecas de terceros:
3. Bibliotecas de sistema:
2. Instalación manual:
Desde GitHub:
cd ~/Documents/Arduino/libraries/
a. Estructura de directorios
MiGranBiblioteca/
├── src/
│ ├── MiGranBiblioteca.h
│ └── MiGranBiblioteca.cpp
├── examples/
│ └── DemoBasico/
ROBOTICA
│ └── DemoBasico.ino
b. Archivo library.properties
name=MiGranBiblioteca
version=1.0.0
category=Device Control
url=https://github.com/tu-usuario/mi-gran-biblioteca
architectures=avr,esp32
#if defined(ARDUINO_AVR_UNO)
#elif defined(ESP32)
#endif
/**
* @class Motor
*
ROBOTICA
*/
class Motor {
public:
};
Técnicas Avanzadas
a. Plantillas (Templates)
b. Sobrecarga de funciones
ROBOTICA
c. Herencia en bibliotecas
name: Arduino CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
ROBOTICA
steps:
- uses: actions/checkout@v2
uses: arduino/setup-arduino-cli@v1
run: |
done
c. Pruebas unitarias
a. Componentes
b. Diagrama de arquitectura
c. Código principal
ROBOTICA
Optimización y Rendimiento
a. Gestión de memoria
Depuración Profesional
a. Técnicas avanzadas
Trazas condicionales:
b. Análisis de rendimiento
Medición de ciclos:
ROBOTICA
Una función es un bloque de código reutilizable que realiza una tarea específica. En
Arduino, crear funciones propias permite:
Sintaxis General:
Paso de Parámetros
Ejemplos Prácticos
Funciones Recursivas
Buenas Prácticas
2. Una función, una tarea: Evitar funciones que hagan múltiples cosas no
relacionadas.
3. Comentarios útiles: Explicar qué hace, no cómo lo hace (a menos que sea
crítico).
5. Optimizar para SRAM: Usar PROGMEM para datos grandes y evitar variables
globales innecesarias.
Objetivo: Leer un sensor LM35, calcular promedio cada 10 lecturas y mostrar en Serial.
ROBOTICA
Depuración de Funciones
Técnicas comunes:
5. Serial.println():
Las funciones propias pueden combinarse con bibliotecas para crear sistemas
complejos:
Rendimiento y Optimización
DRY (Don't Repeat Yourself): Nunca duplicar código; siempre usar funciones.
Código en Arduino:
ROBOTICA
ROBOTICA
1. Definición de pines : Se definen los pines donde están conectados los LEDs (rojo,
amarillo y verde). En este caso, usamos los pines 8, 9 y 10.
4. Funciones modulares :
encenderRojo() : Enciende el LED rojo y apaga los demás.
Resistencias : Usa resistencias de 220 ohmios en serie con cada LED para
limitar la corriente.
Código en Arduino:
ROBOTICA
ROBOTICA
2. Menú de opciones :
El usuario puede seleccionar entre tres opciones:
ROBOTICA
Notas importantes:
Las bibliotecas son colecciones de código preescrito que simplifican el uso de hardware
complejo o implementan funcionalidades avanzadas. Contienen:
Funciones: Para interactuar con dispositivos (ej: mover un servo, escribir en una
pantalla LCD).
Instalación de Bibliotecas
a. Hardware Necesario
Arduino Uno.
b. Conexiones
a. Hardware Necesario
Arduino Uno.
b. Conexiones
ROBOTICA
Mejores Prácticas
2. Consultar documentación:
o Referencia de Servo.h
o Referencia de LiquidCrystal.h
3. Optimizar memoria:
UNIDAD III
FUNDAMENTOS DE PWM
¿Qué es PWM?
PWM (Pulse Width Modulation, o Modulación por Ancho de Pulso) es una técnica
utilizada para controlar la cantidad de energía entregada a un dispositivo mediante la
variación del ancho de los pulsos en una señal digital. En lugar de proporcionar una
tensión continua, PWM genera una señal periódica que alterna entre dos estados: alto
(ON) y bajo (OFF).
El ciclo de trabajo es la proporción del tiempo que la señal está en estado alto
(ON) respecto al período total de la señal. Se expresa como un porcentaje.
b) Frecuencia
La frecuencia de una señal PWM es el número de ciclos completos (alto + bajo) que
ocurren en un segundo. Se mide en Hertz (Hz).
c) Resolución
PWM tiene una amplia gama de aplicaciones en electrónica y robótica. Algunas de las
más comunes son:
3. Servomotores :
Arduino tiene pines específicos que admiten PWM. Estos pines están marcados con el
símbolo ~ (por ejemplo, ~3 , ~5 , ~6 , etc.). Para generar una señal PWM en Arduino,
Sintaxis de analogWrite()
ROBOTICA
Ventajas de PWM
Desventajas de PWM
Si necesitas convertir una señal PWM en una señal analógica continua, puedes
usar un filtro RC (resistencia-capacitor). Este filtro suaviza los pulsos de la señal
PWM para obtener un voltaje promedio.
ROBOTICA
CUESTIONARIO II
5. ¿Qué función se utiliza en Arduino para generar una señal PWM y qué
parámetros recibe?
6. ¿Cómo se puede convertir una señal PWM en una señal analógica continua?
ROBOTICA