Está en la página 1de 3

Robtica con Arduino

Ejercicio 12
Control de velocidad un motor DC con potencimetro y barra de leds
Material
- Tarjeta Arduino UNO
- Puente H, L293D
- Motor DC
- Potenciometro de 10k ohms
Instrucciones
Realizar un programa que permita controlar la velocidad del motor mediante un potencimetro, y que se
vea reflejado su comportamiento en una barra de leds, de tal manera que cuando el motor trabaje a su
mxima velocidad se enciendan todos los leds, y cuando no funcione el motor los leds se encuentren
apagados.
Diagrama de flujo
Declaracin de
variables
Configuracin
de pines

Lectura potencimetro

Escalar la entrada de
0-1023 a 0-255

Enciende motor con


el valor de la entrada
escalada

Prende leds
correspondientes al valor de
entrada del potencimetro

Apaga los leds


restantes

Programa
int potPin=0;
int motPin=11;
int voltPot;
int numLeds;
int cicloPWM=0;
int ledPin[]={2, 3, 4, 5, 6, 7, 8, 9};
void setup()
{
for(int i=0; i<8; i++)

//Configura como salidas los pines para los leds

{
pinMode(ledPin[i], OUTPUT);
}
}
void loop()
{
voltPot=analogRead(potPin);

//Hace la lectura del voltaje del potencimetro

numLeds=map(voltPot, 0, 1023, 0, 8);

//Convierte la lectura del potencimetro en un nmero


//entero de 0 a 8

for(int i=0; i<numLeds; i++)

//Enciende los leds correspondientes al valor del potencimetro

{
digitalWrite(ledPin[i], HIGH);
}
for(int i=numLeds; i<8; i++)

//Apaga los leds restantes

{
digitalWrite(ledPin[i], LOW);
}
cicloPWM=map(voltPot, 0, 1023, 0, 255);

//Convierte la lectura del potencimetro en ciclo de


//trabajo para la seal PWM

analogWrite(motPin, cicloPWM);
}

//Manda la seal PWM al motor

Conexiones

5V

Voltaje del motor

Motor 2
16
2
7
1

IN1 VSS
IN2
EN1

8
VS OUT1
OUT2

U2
3
6

Salidas Arduino
9
10
15

EN2
IN3
OUT3
IN4 GND GNDOUT4

11
14

Motor 1
L293D

También podría gustarte