PA 16 00 Motor DC

 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
}