PA 16 00 Motor DC transistor 2N2222
Con alimentación externa
// Control de encendido/apagado de Motor DC
byte motorDC = 3;
void setup()
{
pinMode(3, OUTPUT);
}
void loop()
{
digitalWrite(motorDC, HIGH);
delay(2000);
digitalWrite(motorDC, LOW);
delay(2000);
}
PA 16 00 Motor DC puente en H, driver L293D
// Conexiones del driver L293D para un motor DC
int enA = 3;
int in1 = 6;
int in2 = 7;
void setup() {
// Colocando los pines en modo salida
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
}
void loop() {
// Iniciamos con el motor detenido
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
delay(2000);
// Máxima velocidad del motor
analogWrite(enA, 255);
// Encendemos el motor
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
delay(2000);
// Invertimos el sentido del giro del motor
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
delay(2000);
// Apagamos el motor
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
delay(2000);
// Turn on motors
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// Aumenta la velocidad de cero a máximo
for (int i = 0; i < 256; i=i+1) {
analogWrite(enA, i);
delay(50);
}
// Disminuye la velocidad de máximo a cero
for (int i = 255; i >= 0; i=i-1) {
analogWrite(enA, i);
delay(50);
}
}
PA 16 00 Motor DC driver L298N. PREVIA. Para saber más.
IMPORTANTE: NO CONECTAR LA ALIMENTACIÓN DE 5V DE ARDUINO AL DRIVER
SI ESTÁ EL JUMPER J.
// Pines conectados al L298N. IMP: HAY QUE PONER EL JUMPER en EnA
const int IN1 = 8;
const int IN2 = 9;
void setup() {
// Configurar los pines como salida
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
// Inicialmente apagamos el motor
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
}
void loop() {
// Hacer girar el motor en un solo sentido
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
}
PA 16 00 Motor DC driver L298N
// Pines conectados al L298N
const int IN1 = 8;
const int IN2 = 9;
const int ENA = 10; // PWM para controlar velocidad
void setup() {
// Configurar los pines como salida
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
// Inicialmente apagamos el motor
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
analogWrite(ENA, 0); // velocidad 0
}
void loop() {
// Hacer girar el motor en un solo sentido
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
// Controlar la velocidad (0 - 255)
analogWrite(ENA, 200); // puedes ajustar este valor para más o menos velocidad
delay(5000); // Mantener el motor girando 5 segundos
// Detener el motor
analogWrite(ENA, 0);
delay(2000); // Esperar 2 segundos antes de repetir
}
PA 16 01 Motor DC driver L298N. Dos Motores.
const int pinENA = 6;
const int pinIN1 = 7;
const int pinIN2 = 8;
const int pinIN3 = 9;
const int pinIN4 = 10;
const int pinENB = 11;
const int waitTime = 2000; //espera entre fases
const int speed = 200; //velocidad de giro
const int pinMotorA[3] = { pinENA, pinIN1, pinIN2 };
const int pinMotorB[3] = { pinENB, pinIN3, pinIN4 };
void setup()
{
pinMode(pinIN1, OUTPUT);
pinMode(pinIN2, OUTPUT);
pinMode(pinENA, OUTPUT);
pinMode(pinIN3, OUTPUT);
pinMode(pinIN4, OUTPUT);
pinMode(pinENB, OUTPUT);
}
void loop()
{
moveForward(pinMotorA, 180);
moveForward(pinMotorB, 180);
delay(waitTime);
moveBackward(pinMotorA, 180);
moveBackward(pinMotorB, 180);
delay(waitTime);
fullStop(pinMotorA);
fullStop(pinMotorB);
delay(waitTime);
}
void moveForward(const int pinMotor[3], int speed)
{
digitalWrite(pinMotor[1], HIGH);
digitalWrite(pinMotor[2], LOW);
analogWrite(pinMotor[0], speed);
}
void moveBackward(const int pinMotor[3], int speed)
{
digitalWrite(pinMotor[1], LOW);
digitalWrite(pinMotor[2], HIGH);
analogWrite(pinMotor[0], speed);
}
void fullStop(const int pinMotor[3])
{
digitalWrite(pinMotor[1], LOW);
digitalWrite(pinMotor[2], LOW);
analogWrite(pinMotor[0], 0);
}
PA 16 02 Motor DC. Regulación velocidad.
// Pines para controlar el motor
const int IN1 = 8;
const int IN2 = 9;
const int ENA = 5;
// Pin del potenciómetro
const int POT_PIN = A0;
void setup() {
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
// Inicializar el puerto serie
Serial.begin(9600);
// Establecer dirección del motor: adelante
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
}
void loop() {
// Leer el valor del potenciómetro (0 a 1023)
int potValue = analogRead(POT_PIN);
// Mapear a rango PWM (0 a 255)
int motorSpeed = map(potValue, 0, 1023, 0, 255);
// Aplicar velocidad al motor
analogWrite(ENA, motorSpeed);
// Imprimir valores por el puerto serie
Serial.print("Potenciómetro: ");
Serial.print(potValue);
Serial.print(" | Velocidad motor (PWM): ");
Serial.println(motorSpeed);
delay(200); // Pequeña pausa para no saturar el puerto serie
}