Introducción a Arduino Uno
El curso definitivo para aprender electrónica y programación con Arduino. Desde conceptos básicos hasta proyectos avanzados, con teoría, ejemplos prácticos y ejercicios para consolidar tu aprendizaje.
Bienvenido al Curso de Arduino Uno
¡Bienvenido al curso de Introducción a Arduino Uno! Utiliza el menú de navegación superior para explorar cada módulo a tu propio ritmo. Cada módulo incluye explicaciones claras, ejemplos prácticos y ejercicios para consolidar tu aprendizaje.
Arduino es una plataforma de creación de electrónica de código abierto que combina hardware y software fácil de usar. Es perfecta para principiantes y expertos que quieren crear proyectos interactivos.
Microcontrolador
ATmega328P
Entradas/Salidas
14 pines digitales
Voltaje
5V operación
Módulo 1: Conceptos Básicos de Arduino
Arduino es una plataforma de hardware y software libre que permite crear dispositivos interactivos. Está basada en una placa con un microcontrolador y un entorno de desarrollo para programarla.
Partes principales de Arduino Uno:
- Microcontrolador ATmega328P: El cerebro de Arduino que ejecuta los programas.
- Pines Digitales (0-13): Pueden funcionar como entradas o salidas digitales.
- Pines Analógicos (A0-A5): Leen valores analógicos de sensores.
- Alimentación: Puede ser a través de USB o conector de barril (7-12V).
- LED integrado (pin 13): Útil para pruebas básicas.
Microcontrolador ATmega328P
Pines Digitales
Pines Analógicos
Alimentación
Módulo 2: Configuración Inicial
Para comenzar a trabajar con Arduino necesitas instalar el software (IDE) y conectar tu placa. El entorno de desarrollo de Arduino (IDE) es donde escribirás y cargarás tus programas (sketches) a la placa.
Pasos de configuración:
- Descarga el IDE: Visita arduino.cc y descarga la última versión para tu sistema operativo.
- Instala los drivers: Conecta tu Arduino al PC y permite que se instalen los drivers necesarios.
- Selecciona la placa: En el IDE ve a Herramientas > Placa y selecciona «Arduino Uno».
- Selecciona el puerto: En Herramientas > Puerto, selecciona el puerto COM donde está conectado.
- Carga un ejemplo: Abre Ejemplos > 01.Basics > Blink y haz clic en Subir.
// Inicializa el pin digital 13 como salida
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Enciende el LED
delay(1000); // Espera un segundo
digitalWrite(LED_BUILTIN, LOW); // Apaga el LED
delay(1000); // Espera un segundo
}
Módulo 3: Programación Básica
Los programas de Arduino se llaman sketches y están escritos en un lenguaje basado en C/C++. Cada sketch tiene dos funciones principales: setup() que se ejecuta una vez al inicio, y loop() que se repite continuamente.
Conceptos básicos de programación:
- Variables: Espacios para almacenar datos (int, float, char, boolean).
- Estructuras de control: if, else, for, while para controlar el flujo del programa.
- Funciones: Bloques de código reutilizables que realizan tareas específicas.
- Entradas/Salidas digitales: pinMode(), digitalRead(), digitalWrite().
- Entradas analógicas: analogRead() para leer valores de 0 a 1023.
const int ledPin = 13; // LED en pin 13
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
Módulo 4: Sensores y Lectura de Datos
Los sensores permiten a Arduino interactuar con el mundo físico. Convierten fenómenos físicos (temperatura, luz, movimiento) en señales eléctricas que Arduino puede leer.
Sensores comunes:
LM35
Sensor de temperatura
LDR
Sensor de luz
HC-SR04
Sensor ultrasónico
void setup() {
Serial.begin(9600); // Inicia comunicación serial
}
void loop() {
int sensorValue = analogRead(sensorPin);
float voltage = sensorValue * (5.0 / 1023.0);
float tempC = voltage * 100; // 10mV por grado
Serial.print(«Temperatura: «);
Serial.print(tempC);
Serial.println(» °C»);
delay(1000);
}
Módulo 5: Actuadores y Control
Los actuadores permiten a Arduino interactuar con el mundo físico mediante movimiento, luz o sonido. Son componentes que convierten señales eléctricas en acción física.
Actuadores comunes:
LEDs
Emisión de luz
Servomotores
Control de posición
Motores DC
Movimiento continuo
Servo myservo; // Crea objeto servo
int pos = 0; // Variable de posición
void setup() {
myservo.attach(9); // Servo en pin 9
}
void loop() {
// Mueve de 0 a 180 grados
for (pos = 0; pos <= 180; pos++) {
myservo.write(pos);
delay(15);
}
// Mueve de 180 a 0 grados
for (pos = 180; pos >= 0; pos–) {
myservo.write(pos);
delay(15);
}
}
Módulo 6: Proyectos Integrados
Ahora que conoces los fundamentos, es hora de combinar sensores y actuadores para crear proyectos más complejos. Estos proyectos integrados te permitirán aplicar todo lo aprendido.
Proyectos sugeridos:
- Sistema de riego automático: Usa un sensor de humedad de suelo para activar una bomba de agua cuando la tierra esté seca.
- Estación meteorológica: Mide temperatura, humedad y presión atmosférica y muestra los datos en una pantalla LCD.
- Sistema de seguridad: Usa un sensor PIR para detectar movimiento y activar una alarma.
- Brazo robótico: Controla un brazo con servomotores usando potenciómetros o una interfaz de computadora.
Un semáforo que cambia según la presencia de vehículos detectados con sensores ultrasónicos:
- Sensor HC-SR04 mide distancia a los vehículos
- Si hay vehículos esperando, cambia a verde más rápido
- LEDs rojo, amarillo y verde muestran el estado
- Pantalla LCD muestra el tiempo restante
Módulo 7: Temas Avanzados
Una vez dominados los conceptos básicos, puedes explorar funcionalidades más avanzadas que amplían las capacidades de Arduino.
Temas avanzados:
- Comunicación I2C y SPI: Protocolos para conectar múltiples dispositivos usando pocos pines.
- Interrupciones: Permiten responder inmediatamente a eventos externos sin bloquear el programa principal.
- Sleep Modes: Reducen el consumo de energía para proyectos con batería.
- Comunicación inalámbrica: Usando módulos como HC-12, NRF24L01 o ESP8266 para WiFi.
- Control PID: Algoritmo avanzado para control preciso de sistemas (temperatura, posición).
const int buttonPin = 2; // Pin de interrupción 0 (pin 2)
volatile bool state = LOW; // volatile para variables en ISR
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
// Asocia la interrupción a la función blink
attachInterrupt(digitalPinToInterrupt(buttonPin), blink, FALLING);
}
void loop() {
digitalWrite(ledPin, state);
}
void blink() {
state = !state; // Cambia el estado del LED
}
Módulo 8: Errores Comunes y Próximos Pasos
Al comenzar con Arduino es normal cometer errores. Conocer los más comunes te ayudará a resolver problemas más rápido y avanzar en tu aprendizaje.
Errores frecuentes:
- Olvidar resistencia limitadora: Conectar LEDs sin resistencia puede dañarlos o dañar el Arduino.
- Confundir pines analógicos y digitales: Los pines A0-A5 pueden funcionar como digitales, pero los digitales no como analógicos.
- Falta de declaración de variables: Usar variables sin declararlas primero.
- Conexiones eléctricas incorrectas: Conectar componentes con polaridad invertida o voltajes incorrectos.
- No inicializar el puerto serial: Intentar usar Serial.print() sin Serial.begin().
Si tu Arduino no responde:
- Verifica las conexiones eléctricas
- Comprueba que seleccionaste la placa y puerto correctos
- Revisa que no hay cortocircuitos
- Prueba con un programa simple como Blink
- Busca mensajes de error en el IDE
