0% encontró este documento útil (0 votos)
5 vistas6 páginas

Curso de C++ y Arduino

El curso de C++ aplicado en Arduino utiliza el simulador Tinkercad para enseñar los fundamentos de programación a través de proyectos prácticos. Se abordan temas como la introducción a Arduino, estructuras de control, manejo de sensores, arrays y la integración de todo lo aprendido en un proyecto final de semáforo interactivo. Los participantes aprenderán a crear circuitos y escribir código para controlar dispositivos electrónicos utilizando C++.
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)
5 vistas6 páginas

Curso de C++ y Arduino

El curso de C++ aplicado en Arduino utiliza el simulador Tinkercad para enseñar los fundamentos de programación a través de proyectos prácticos. Se abordan temas como la introducción a Arduino, estructuras de control, manejo de sensores, arrays y la integración de todo lo aprendido en un proyecto final de semáforo interactivo. Los participantes aprenderán a crear circuitos y escribir código para controlar dispositivos electrónicos utilizando C++.
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/ 6

Curso de C++ aplicado en Arduino utilizando el simulador

Tinkercad

Requisitos previos: Conocimientos básicos de programación en cualquier


lenguaje y una cuenta en Tinkercad.
Objetivo: Enseñar los fundamentos de C++ aplicados al control de Arduino
mediante proyectos prácticos en el simulador Tinkercad, con un enfoque
detallado y didáctico.

Sesión 1: Introducción a Arduino, Tinkercad y conceptos


básicos de C++

Objetivo: Comprender la plataforma Tinkercad, conocer el entorno de


programación de Arduino y repasar los fundamentos de C++.

Contenido:

1. Introducción a Arduino:
• ¿Qué es Arduino?
Arduino es una plataforma de hardware y software de código
abierto que permite crear proyectos electrónicos interactivos.
• Principales componentes de Arduino UNO:
• Pines digitales y analógicos.
• GND y 5V (alimentación).
• Puerto USB.
• ¿Por qué usar Arduino en Tinkercad?
• Es gratuito, fácil de usar y no requiere hardware físico.
2. Primeros pasos en Tinkercad:
• Crear una cuenta y acceder al simulador.
• Crear un nuevo circuito.
• Añadir componentes (Arduino UNO, LED, resistencias, botones).
3. Fundamentos básicos de C++ aplicados a Arduino:
• Variables: Cómo declarar variables para almacenar datos como
estados o valores de sensores.
• Funciones principales de Arduino:
• setup(): Se ejecuta una sola vez al iniciar.
• loop(): Se ejecuta en bucle continuamente.
• Funciones de entrada/salida:

Página 1 de 6
• pinMode(): Configura un pin como entrada o salida.
• digitalWrite(): Envía un valor HIGH o LOW a un pin.
• digitalRead(): Lee el estado de un pin digital.

Ejemplo práctico: Encender y apagar un LED desde un botón.

1. Configurar el circuito en Tinkercad:


• Arrastra un Arduino UNO.
• Añade un LED conectado al pin 13 (con resistencia de 220Ω a
GND).
• Conecta un botón al pin 2 con una resistencia pull-down (10kΩ).
2. Código explicado paso a paso:

// Declarar las variables para los pines


int ledPin = 13; // LED conectado al pin digital 13
int buttonPin = 2; // Botón conectado al pin digital 2
int buttonState = 0; // Variable para almacenar el estado del botón

void setup() {
pinMode(ledPin, OUTPUT); // Configurar el pin del LED como salida
pinMode(buttonPin, INPUT); // Configurar el pin del botón como entrada
}

void loop() {
buttonState = digitalRead(buttonPin); // Leer el estado del botón
if (buttonState == HIGH) { // Si el botón está presionado
digitalWrite(ledPin, HIGH); // Encender el LED
} else {
digitalWrite(ledPin, LOW); // Apagar el LED
}
}

Actividad:

1. Simula el circuito en Tinkercad y observa cómo el LED responde al botón.


2. Experimenta cambiando el pin del LED o añadiendo otro botón.

Sesión 2: Estructuras de control en C++

Objetivo: Comprender y aplicar estructuras de control ( if, else, for, while)


para programar comportamientos dinámicos en Arduino.

Contenido:

Página 2 de 6
1. Estructuras de control básicas:
• if y else: Para tomar decisiones basadas en condiciones.
• for: Para repetir un bloque de código un número específico de
veces.
• while: Para repetir un bloque de código mientras se cumpla una
condición.
2. Circuito práctico: Secuencia de LEDs.
• Conecta 4 LEDs a los pines 2, 3, 4 y 5 del Arduino.
• Añade resistencias de 220Ω para proteger los LEDs.
3. Código explicado:
• Usar un bucle for para encender y apagar los LEDs en secuencia.

int leds[] = {2, 3, 4, 5}; // Pines de los LEDs

void setup() {
for (int i = 0; i < 4; i++) { // Configurar cada pin como salida
pinMode(leds[i], OUTPUT);
}
}

void loop() {
for (int i = 0; i < 4; i++) { // Encender LEDs en secuencia
digitalWrite(leds[i], HIGH);
delay(500); // Esperar 500 ms
digitalWrite(leds[i], LOW);
delay(500); // Apagar el LED
}
}

Actividad:

1. Cambia los tiempos del delay() y observa el efecto.


2. Experimenta invirtiendo el orden de encendido (de derecha a izquierda).

Sesión 3: Manejo de sensores básicos

Objetivo: Aprender a leer datos de sensores utilizando analogRead y controlar


dispositivos según los valores recibidos.

Contenido:

1. Sensores básicos:
• Potenciómetro: Se utiliza para variar una señal analógica.

Página 3 de 6
• LDR (Sensor de luz): Cambia su resistencia según la cantidad de
luz.
2. Circuito práctico: Controlar el brillo de un LED con un potenciómetro.
• Conecta un potenciómetro al pin A0.
• Conecta un LED al pin 9 (PWM).
3. Código explicado:
• Leer el valor del potenciómetro y ajustar el brillo del LED.

int potPin = A0; // Pin del potenciómetro


int ledPin = 9; // Pin del LED

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

void loop() {
int potValue = analogRead(potPin); // Leer el valor del potenciómetro (0-1023)
int brightness = map(potValue, 0, 1023, 0, 255); // Convertir a rango 0-255
analogWrite(ledPin, brightness); // Ajustar el brillo del LED
}
Actividad:
1. Simula el circuito y ajusta el potenciómetro para cambiar el brillo del LED.
2. Sustituye el potenciómetro por un sensor de luz (LDR) y observa cómo el
LED responde a los cambios de iluminación.

Sesión 4: Arrays y manejo de datos

Objetivo: Usar arrays para simplificar el control de múltiples elementos en


Arduino.

Contenido:

1. Concepto de arrays:
• Un array es una colección de elementos del mismo tipo.
• Ideal para manejar varios LEDs, botones o sensores de forma
eficiente.
2. Circuito práctico: Efecto Knight Rider (LEDs en movimiento).
• Conecta 6 LEDs a los pines digitales consecutivos (2 a 7).
3. Código explicado:

Página 4 de 6
• Usar un array para almacenar los pines de los LEDs y controlar su
encendido secuencial.

int leds[] = {2, 3, 4, 5, 6, 7}; // Pines de los LEDs


int ledCount = 6;
int currentLED = 0;
int direction = 1;

void setup() {
for (int i = 0; i < ledCount; i++) {
pinMode(leds[i], OUTPUT);
}
}

void loop() {
digitalWrite(leds[currentLED], HIGH); // Encender el LED actual
delay(200);
digitalWrite(leds[currentLED], LOW); // Apagar el LED actual

currentLED += direction; // Mover al siguiente LED

if (currentLED == ledCount - 1 || currentLED == 0) { // Cambiar dirección


direction = -direction;
}
}

Actividad:

1. Cambia el número de LEDs y ajusta el código para que funcione


correctamente.
2. Añade un botón que active o desactive el efecto.

Sesión 5: Integración de todo lo aprendido

Objetivo: Crear un proyecto completo que combine entradas


(botones/sensores) y salidas (LEDs).

Proyecto:
Crear un semáforo interactivo con botón para cambiar entre estados.

1. Circuito:
• LEDs rojo, amarillo y verde.
• Un botón para alternar entre estados.
2. Código:
• Crear una máquina de estados simple para manejar el semáforo.

Página 5 de 6
int redPin = 2, yellowPin = 3, greenPin = 4;
int buttonPin = 5;
int buttonState = 0;
int lastButtonState = 0;
int state = 0;

void setup() {
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(buttonPin, INPUT);
}

void loop() {
buttonState = digitalRead(buttonPin);

if (buttonState == HIGH && lastButtonState == LOW) { // Detectar presionado


state = (state + 1) % 3; // Cambiar estado
delay(200); // Evitar rebotes
}

lastButtonState = buttonState;

switch (state) {
case 0: // Rojo
digitalWrite(redPin, HIGH);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, LOW);
break;
case 1: // Amarillo
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, HIGH);
digitalWrite(greenPin, LOW);
break;
case 2: // Verde
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, HIGH);
break;
}
}

Actividad final: Personaliza el proyecto añadiendo más funcionalidades como


un temporizador para los estados del semáforo.

Página 6 de 6

También podría gustarte