codigo para Puente H(arduino) L293B
int switchPin = 7; // switch para cambiar el sentido de giro de los motores
int motor1Pin1 = 12; // Motor 1adelante
int motor1Pin2 = 13; // Motor 1 atras
int speedPin1 = 9; // Motor 1 aceleracion (PWM) Pin enable del L293
int potPin = 0; // Potenciometro para controlar velocidad motor 1
int ledPin= 13; // LED
//int switchPin2 = 8; // No implementado
int motor2Pin1 = 5; // Motor 2 adelante
int motor2Pin2 = 6; // Motor 2 atras
int speedPin2 = 10; // Motor 2 aceleracion (PWM) PinEnable del L293
int potPin2 = 1; // Potenciometro para controlar velocidad motor 2
int speedpin = 0; // tasa de velocidad a la que Arduino envia los datos
void setup() {
Serial.begin(9600);
//configuracion de pines
pinMode(switchPin, INPUT);
//pinMode(switchPin2, INPUT); //no usado
// Control Motor 1
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(speedPin1,OUTPUT);
//Control Motor 2
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
pinMode(speedPin2, OUTPUT);
pinMode(ledPin, OUTPUT);
// Establece speedPinX en modo High para podercontrolar la velocidad
digitalWrite(speedPin1, HIGH);
digitalWrite(speedPin2, HIGH);
// comprobacion de reseteo, si el led parpadea solo 3 veces, todo esta bien
// si vuelve a parpadear, significa que hahecho un reset, revisar conexiones
// por si hubiera un corto
blink(ledPin, 3, 100);
}
void loop() {
//Si el switch no esta pulsado, gira en una direccion, si no en la contraria
if(digitalRead(switchPin) >0) {
digitalWrite(motor1Pin1, HIGH); // Establece el sentido de giro del motor 1
digitalWrite(motor1Pin2, HIGH); //
speedpin = analogRead(potPin);// Lectura del valor del potenciometro
speedpin = 800 + (speedpin/6); // Para establecer la velocidad de giro
analogWrite (speedPin1, speedpin); //
Serial.print("motor 1 = ");...
Regístrate para leer el documento completo.