martes, 3 de febrero de 2026

PUENTE H L298 CARRO ROBOTICO

 Puente H L298N

 Para construir tu carro evasor de obstáculos, el Puente H L298N es la pieza clave que actuará como "músculo", permitiendo que el Arduino (el "cerebro") controle la potencia y dirección de los motores reductores amarillos.


Para entender cómo se moverá tu robot, es fundamental comprender la física y la electrónica detrás de estos componentes. Aquí te lo explico de forma clara y detallada:


1. ¿Qué es un Puente H?

Un Puente H es un circuito electrónico que permite a un motor eléctrico girar en ambos sentidos (hacia adelante y hacia atrás) y controlar su frenado.

¿Por qué se llama así?
Su nombre proviene de la forma gráfica del circuito original, que parece una letra "H". En las "patas" de la H hay 4 interruptores (transistores), y el motor está en la barra horizontal del centro.

  • Cómo funciona:

    • Si cierras dos interruptores en diagonal (superior izquierda e inferior derecha), la corriente fluye en un sentido y el motor gira a la derecha.

    • Si cierras los otros dos en diagonal, la corriente fluye al revés y el motor gira a la izquierda.

    • ¡Peligro! Si cierras los dos interruptores de un mismo lado, causas un cortocircuito. El L298N ya está diseñado para evitar que esto pase por error.

El Módulo L298N

El L298N es un Doble Puente H. Esto significa que dentro de ese chip negro con un disipador de calor grande, hay dos puentes H independientes. Por eso puedes controlar dos motores (Rueda Derecha y Rueda Izquierda) con una sola placa.

  • El Disipador: Ese trozo de metal negro es vital porque el L298N pierde mucha energía en forma de calor.

El módulo L298N puede controlar hasta 2 motores de forma independiente.

Terminales de Potencia (Borneras azules grandes):

  • +12V: Aquí va el positivo de tu batería (puedes usar de 7V a 12V).

  • GND: El negativo de la batería Y TAMBIÉN debe conectarse al GND del Arduino (Masa común).

  • +5V: Si el jumper de "12V enable" está puesto, este pin entrega 5V de salida que puedes usar para alimentar el Arduino.

Pines de Control (Pines macho hacia el Arduino):

  • ENA y ENB: Controlan la velocidad (usando señales PWM). Tienen un jumper puesto por defecto; si quieres controlar velocidad, quita el jumper y conecta a pines PWM del Arduino.

  • IN1 e IN2: Controlan el Motor A. (IN1 HIGH / IN2 LOW = Adelante).

  • IN3 e IN4: Controlan el Motor B. (IN3 HIGH / IN4 LOW = Adelante).


2. Los Motores Reductores Amarillos (Motores DC "TT")

Estos motores son ideales porque incluyen una caja de engranajes que reduce la velocidad y aumenta el torque (fuerza).


3. Diagrama de Conexión Sugerido

Para un robot de dos ruedas:

L298NArduinoFunción
ENAPin 10Velocidad Motor Izquierdo
IN1Pin 9Dirección 1 Motor Izq
IN2Pin 8Dirección 2 Motor Izq
IN3Pin 7Dirección 1 Motor Der
IN4Pin 6Dirección 2 Motor Der
ENBPin 5Velocidad Motor Derecho
GNDGND¡Obligatorio unir ambos GND!

4. Código Base (Movimiento Modular)

Este código te servirá para probar los motores. Puedes integrarlo fácilmente con tu código del sensor ultrasónico.

Código





// Pines Motor Izquierdo int ENA = 10; int IN1 = 9; int IN2 = 8; // Pines Motor Derecho int IN3 = 7; int IN4 = 6; int ENB = 5; void setup() { pinMode(ENA, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(ENB, OUTPUT); } void moverAdelante() { // Motor Izquierdo digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); analogWrite(ENA, 200); // Velocidad 0-255 // Motor Derecho digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); analogWrite(ENB, 200); } void detener() { digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } void girarDerecha() { digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); // Invierte un motor para girar sobre su eje delay(500); // Tiempo de giro } void loop() { // Aquí integrarás la lógica del sensor: // Si distancia < 20 cm -> detener, girar, luego seguir. moverAdelante(); }

Consejos de "Experto":

  1. Alimentación separada: Usa un portapilas de 4 pilas AA (6V) o una batería Li-ion de 7.4V para los motores. El Arduino puede alimentarse desde el pin +5V del L298N o con una batería de 9V aparte.

  2. Sentido de giro: Si al probar el código un motor gira al revés, no cambies el código; simplemente invierte los dos cables de ese motor en la bornera del L298N.

  3. Capacitores: Si notas que el Arduino se reinicia cuando arrancan los motores, suelda un pequeño capacitor cerámico de 0.1uF entre los bornes de cada motor para eliminar el ruido eléctrico.


martes, 20 de enero de 2026

SENSOR ULTRASONICO PROYECTO CARRO ROBOTICO

                                         PROYECTO CARRO ROBOTICO

 

EL SENSOR ULTRASONICO

Sensor Ultrasónico para Arduino (HC-SR04 y similares)

 


1. ¿Qué es un Sensor Ultrasónico?

Un sensor ultrasónico es un dispositivo electrónico que mide la distancia a un objeto utilizando ondas sonoras de alta frecuencia

(ultrasonidos), inaudibles para el oído humano (generalmente por  encima de 20 kHz). Funciona de manera similar a un sonar o al sistema de ecolocalización de los murciélagos y delfines: emite  un pulso de sonido y mide el tiempo que tarda en regresar el eco después de rebotar en un objeto.

 

2. Principio de Funcionamiento (Tiempo de Vuelo - Time of Flight, ToF): 

El funcionamiento se basa en medir el "tiempo de vuelo" del ultrasonido: Emisión: El sensor emite un corto pulso de ultrasonido a través  de un transductor (emisor).

 

Propagación: La onda sonora viaja por el aire a una velocidad conocida (aproximadamente 343 metros por segundo a temperatura ambiente).

Reflexión: Cuando la onda encuentra un objeto, parte de ella se refleja y regresa hacia el sensor.

Recepción: Otro transductor (receptor) en el sensor detecta el eco reflejado.

Cálculo: El microcontrolador (como el de Arduino) mide el tiempo transcurrido (Δt) entre la misión del pulso y la recepción del  eco.

Distancia: Sabiendo el tiempo y la velocidad del sonido (v), se calcula la distancia (d) al objeto.

Como el sonido recorre la distancia de ida y vuelta, la fórmula es:Distancia = (Tiempo * VelocidadDelSonido) / 2

lunes, 12 de enero de 2026

ESTRUCTURAS DE CONTROL PYTHON

 ESTRUCTURAS DE CONTROL PYTHON


COPIAR ESTE LINK EN SU CUADERNO Y ABRA UNA VENTANA CON EL EN EL NAVEGADOR O HACER CLIC SOBRE EL.

https://www.programiz.com/python-programming/online-compiler/


📝 Para copiar en el cuaderno

Título: ¿Qué son las Estructuras de Control?

Las estructuras de control son instrucciones que permiten modificar el orden en que se ejecutan las líneas de un programa.

Por defecto, un programa se ejecuta de forma secuencial (línea por línea, de arriba a abajo). Las estructuras de control nos permiten romper esa linealidad para:

  1. Tomar decisiones: Saltar partes del código según si se cumple una condición (ej. if).

  2. Repetir tareas: Ejecutar un bloque de código varias veces sin escribirlo de nuevo (ej. forwhile).

Son fundamentales porque le dan lógica e "inteligencia" al programa.

🗣️ Explicación

"Imaginen un videojuego. ¿Qué pasa si su vida llega a 0? El juego dice 'Game Over'. ¿Y si tienen más de 0? Siguen jugando. El programa tomó una decisión. En Python usamos if (si pasa esto), elif (si no, pero pasa esto otro) y else (si no pasa nada de lo anterior)".

⚠ La Regla de Oro (Indentación):
"Python es muy ordenado. Para saber qué instrucciones pertenecen al if, debemos dejar un espacio a la derecha (tecla Tab). Si no hay espacio (sangría), Python no sabe que esa instrucción es parte de la condición".

📝 Para copiar en el cuaderno

Título: Condicionales (Toma de decisiones)
Nos permiten ejecutar código solo si se cumple una condición.

  • if: Significa "Si...". Evalúa una condición.

  • elif: Significa "Si no, intenta esto...".

  • else: Significa "Si no se cumplió nada anterior...".

  • Indentación: Es el espacio (tabulación) que se deja al inicio de la línea para indicar que el código está "dentro" del condicional.

Sintaxis:

Python
if condicion:
    # Código si es verdad (con espacio)
else:
    # Código si es falso (con espacio)

💻 Ejercicio 1: El Portero de la Discoteca

Escribir un programa que pregunte la edad y diga si puede pasar o no.

edad = 18  # Pueden cambiar este número para probar

if edad >= 18:
    print("Eres mayor de edad. Puedes pasar.")
else:
    print("Lo siento, eres menor. No puedes pasar.")




💻 Ejercicio 2: ¿Cuál número es mayor? (2 números)

Escribir un programa que pida dos números e indique cuál es el mayor.

num1 = int(input("Ingrese el primer número: "))
num2 = int(input("Ingrese el segundo número: "))

if num1 > num2:
    print("El número mayor es:", num1)
elif num2 > num1:
    print("El número mayor es:", num2)
else:
    print("Los dos números son iguales.")




💻 Ejercicio 3: ¿Cuál número es mayor? (3 números)

Escribir un programa que pida tres números enteros e indique cuál de los tres es el mayor.

num1 = int(input("Ingrese el primer número: "))
num2 = int(input("Ingrese el segundo número: "))
num3 = int(input("Ingrese el tercer número: "))

if num1 > num2 and num1 > num3:
    print("El número mayor es:", num1)
elif num2 > num1 and num2 > num3:
    print("El número mayor es:", num2)
elif num3 > num1 and num3 > num2:
    print("El número mayor es:", num3)
else:
    print("Hay dos o más números iguales.")





3.2. Bucle for: Repetición Controlada

🗣️ Explicación

"Imaginen que les castigo escribiendo 100 veces 'No debo hablar en clase'. Escribir 100 líneas de print es aburrido. El bucle for es un robot que lo hace por nosotros. Le decimos 'haz esto 100 veces' y listo".

📝 Para copiar en el cuaderno

Título: Bucle For (Repetición definida)
Se usa cuando sabemos cuántas veces queremos repetir algo. Se usa comúnmente con la función range().

  • range(inicio, fin): Genera una lista de números.

    • Ojo: El número "fin" no se incluye. Si pones range(1, 5), contará 1, 2, 3, 4.

Sintaxis:

for variable in range(veces):
    # Código a repetir

💻 Ejercicio 2: El Despegue

Imprimir los números del 1 al 10.

# Nota: Ponemos 11 porque el último número se excluye
for numero in range(1, 11):
    print("Número:", numero)

3.3. Bucle while: Repetición por Condición

🗣️ Explicación

"El for es cuando sabes el número exacto de vueltas. Pero, ¿y si no lo sabes? Por ejemplo, en un juego, el nivel se repite mientras (while) no ganes. No sabemos si tardarás 1 minuto o 1 hora. El while repite mientras la condición sea verdadera".

⚠ Peligro: "Si la condición nunca cambia, el programa nunca termina. Eso se llama Bucle Infinito y puede trabar la computadora".

📝 Para copiar en el cuaderno

Título: Bucle While (Repetición indefinida)
Ejecuta un bloque de código mientras una condición sea Verdadera (True). Se detiene cuando la condición se vuelve Falsa.

Sintaxis:

while condicion:
    # Código que se repite
    # IMPORTANTE: Algo debe cambiar aquí para romper el ciclo

💻 Ejercicio 3: Adivina el número secreto

El programa tiene un número secreto y te pregunta hasta que adivines.

secreto = 7
adivinanza = 0

# El bucle sigue mientras NO adivines (mientras sean diferentes)
while adivinanza != secreto:
    # input siempre devuelve texto, usamos int() para volverlo número
    adivinanza = int(input("Adivina el número (del 1 al 10): "))
    
    if adivinanza != secreto:
        print("¡Incorrecto! Intenta de nuevo.")

print("¡Ganaste! El número era 7.")

PUENTE H L298 CARRO ROBOTICO

  Puente H L298N   Para construir tu carro evasor de obstáculos, el  Puente H L298N  es la pieza clave que actuará como "músculo",...