Ejemplo encender 2 leds y apagar respectivamente

May 23, 2017 | Autor: A. Yeralh Bless | Categoría: Robotics, Mechatronics & Robotics, Drones
Share Embed


Descripción

/*
ejemplo encender 2 leds y apagar respectivamente, izquierda y derecha, dependendiendo
del valor del potenciometro se enciende uno y otro.comparado con el potenciometro2 de posicion requerida o futura,
o actual deseada. los leds se utilizan indicando el sentido de giro del motor. emulando la señal que se envia a un puente h para el movimiento respectivo.

*/

int pinSensor = A0; // Entrada para el potenciómetro.posicion actual del motor. en este ejemplo moveria el pot manualmente emulando el moviento del motor, indicado por los leds.
int pinSensor2 = A1; //potenciometro de posicion requerida o futura
int pinLed2= 11; // led de posicion derecha, emularia la señal para el encendido del motor por el puente h en direccion a la derecha
int pinLed = 9; //led de posicion izquierda. idem anterior a la izquierda.
int valorSensor = 0; // variable para el valor del sensor.
int posact = 0; //creo que es necesario que la variable empiece de cero.
int valorSensor2 = 0; //variable para el potenciometro 2
int sigpos = 0; // abreviatura de siguiente posición, valor que seria enviado por serial.

void setup() {
// Declaramos el pin del Led como salida:
pinMode(pinLed, OUTPUT);
pinMode(pinLed2, OUTPUT);
Serial.begin(9600);
}

void loop() {


valorSensor2 = analogRead (pinSensor2);//lee los datos del potenciometro 2 de posicion requerida
int sigpos = valorSensor2 ;
valorSensor = analogRead(pinSensor); //valorsensor igual al valor del potenciometro de posicion actual
Serial.print ("valorSensor");
Serial.println ( valorSensor); // para chequear en que posición esta el potenciometro del motor.
delay(200); //le doy delay para que se pueda leer los datos impresos. de lo contrario pasan demaciado rapido
Serial.print ("valor del sensor sig");
Serial.println(valorSensor2); //para chequear la posicion requerida del pote2
delay(200);
//en este caso si el valor siguiente es menor al del potenciometro, enciende el led de la izquierda, seria el atraso del motor.
if (sigpos < valorSensor) {
digitalWrite (pinLed, HIGH);
digitalWrite (pinLed2,LOW);
delay(200);
}
// en este caso si el valor siguiente es superior al del potenciometro, entonces enciende el led de la derecha, que seria el avance del motor.
else if (sigpos > valorSensor) {
digitalWrite (pinLed2, HIGH);
digitalWrite (pinLed,LOW);
delay(200);
}
//en este caso al ser iguales los valores se apagarian los led.
else if (sigpos == valorSensor) {
digitalWrite (pinLed2, LOW);
digitalWrite (pinLed, LOW);
delay(200); }


}

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.