Speed control motor DC
const int buttonPin=8; // El boton pulsador se declara como la entrada 8 del pin del Arduino
const int sensorPin=3; // El pin numero 3 hace referencia al sensor de barrera
int motorPin=5; // Utilizamos el pin 5 para declarar al motor
const int pot=0; //entrada analogica del arduino A0
int buttonState = LOW; // Estado del boton pulsador
const int A=2; // Entradas del dip Swicht
const int B=6;
const int C=7;
const int D=9;
const int E=10;
const int F=11;
const int G=12;
const int H=13;
int i=0;
int suma=0;
int velocidad=0;
int contador=0;
int aux=0;
int Vueltas=0;
void setup()
{
pinMode(motorPin, OUTPUT);// Pin de salida del motoreductor
pinMode(buttonPin, INPUT);// Pin de entrada del boton pulsador
digitalWrite(buttonPin,HIGH);//Se energiza el boton pulsador
pinMode(sensorPin, INPUT);
Serial.begin(9600);
}
void loop()
{
buttonState = digitalRead(buttonPin);
//Serial.println(buttonState);
if(buttonState==HIGH)
{
buttonState = HIGH;
entrada_binaria();
do
{
pwm();//Se activa la funcion PWM
contador=digitalRead(sensorPin);
if(contador==HIGH)
{
if (aux==0)
{
Serial.println(suma);
suma=suma+1;
}
aux=1;
}
if(contador==LOW)
{
aux=0;
}
if(suma==Vueltas)
{
Serial.println(suma);
analogWrite(motorPin,0);
digitalWrite(motorPin,LOW);
suma=0;
buttonState=LOW;
}
}
while(buttonState==HIGH);
}
}
void pwm()//Para controlar la velocidad del motor se realiza la division entre 4 del valor de 1023
{
int velocidad=0;
velocidad=analogRead(pot);//toma valores de 0 a 1023
velocidad=velocidad/4;//ajustamos el valor del por para poder usar el PWM
analogWrite(motorPin,velocidad);//valores entre 0 y 255 mando el valor a el motor
//Serial.println ("Valor del PWM:");
//Serial.println(velocidad);
}
void entrada_binaria() // En esta parte del void se le asignan valores para cada boton del dip
{
Vueltas=0;
if(digitalRead(A)==HIGH)
{
Vueltas=Vueltas+10;
}
if(digitalRead(B)==HIGH)
{
Vueltas=Vueltas+20;
}
if(digitalRead(C)==HIGH)
{
Vueltas=Vueltas+40;
}
if(digitalRead(D)==HIGH)
{
Vueltas=Vueltas+80;
}
if(digitalRead(E)==HIGH)
{
Vueltas=Vueltas+160;
}
if(digitalRead(F)==HIGH)
{
Vueltas=Vueltas+320;
}
if(digitalRead(G)==HIGH)
{
Vueltas=Vueltas+640;
}
if(digitalRead(H)==HIGH)
{
Vueltas=Vueltas+1280;
}
//Serial.println ("No. Vueltas :");
//Serial.println(Vueltas);
}