0% encontró este documento útil (0 votos)
19 vistas4 páginas

Codigo Arduino

Cargado por

Elvis Zenteno M.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas4 páginas

Codigo Arduino

Cargado por

Elvis Zenteno M.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Nombre: Luis Eduardo Velasquez Puita

#include <LEANTEC_ControlMotor.h>

ControlMotor control(2,3,7,4,5,6); //
MotorDer1,MotorDer2,MotorIzq1,MotorIzq2,PWM_Derecho,PWM_Izquierdo

#define PIN_LDR1 2

#define PIN_LDR2 3

#define PIN_FL1 0

#define PIN_FL2 1

#define P_MUERTO 10

#define GIRO_LINEA 50

#define GIRO_FUERA 100

#define VELOCIDAD_NORMAL 255

#define VELOCIDAD_BAJA 200

#define VELOCIDAD_BAJA_GIRO 150

int OFFSET_LDR1 = 0;

int OFFSET_LDR2 = 0;

int OFFSET_FL1 = 0;

int OFFSET_FL2 = 0;

///

int sensores[4];

int valor_neutro=0;

int velocidad=255;

int direccion_anterior=0;

#define LDR1 0

#define LDR2 1

#define FL1 2

#define FL2 3

////
void leer_sensores();

int calcula_diferencia();

void mostrar_valores();

///

void setup(void){

Serial.begin(9600);

///

leer_sensores();

if(sensores[FL1] > sensores[FL2]){

OFFSET_FL1 = 0;

OFFSET_FL2 = sensores[FL1]-sensores[FL2];

else{

OFFSET_FL2 = 0; // Como FL2 es mayor, sumamos a FL1

OFFSET_FL1 = sensores[FL2]-sensores[FL1];

///

valor_neutro= sensores[FL1];

///

void loop(void)

leer_sensores();

//mostrar_valores();

control.Motor(velocidad,calcula_diferencia());

}
void mostrar_valores(){

///

Serial.print(" OFF_1 = " ); // Imprimimos el OFFSET del FL1

Serial.print(OFFSET_FL1);

Serial.print(" OFF_2 = " ); // Imprimimos el OFFSET del FL2

Serial.print(OFFSET_FL2);

Serial.print(" FL_1 = " ); // Imprimimos el valor del FL1

Serial.print(sensores[FL1]);

Serial.print(" FL_2 = " ); // Imprimimos el valor del FL2

Serial.print(sensores[FL2]);

Serial.print(" DIF = " ); // Imprimimos la diferencia entre el sensor 1 y el sensor 2

Serial.println(calcula_diferencia());

///

void leer_sensores(){

sensores[LDR1]=analogRead(PIN_LDR1)+OFFSET_LDR1

if(sensores[LDR1]<0){sensores[LDR1] = 0;}

else if(sensores[LDR1] > 1023){sensores[LDR1] = 1023;}

sensores[LDR2]=analogRead(PIN_LDR2)+OFFSET_LDR2;

if(sensores[LDR2]<0){sensores[LDR2] = 0;}

else if(sensores[LDR2] > 1023){sensores[LDR2] = 1023;}

sensores[FL1]=analogRead(PIN_FL1)+OFFSET_FL1;

if(sensores[FL1]<0){sensores[FL1] = 0;}

else if(sensores[FL1] > 1023){sensores[FL1] = 1023;}

sensores[FL2]=analogRead(PIN_FL2)+OFFSET_FL2;

if(sensores[FL2]<0){sensores[FL2] = 0;}

else if(sensores[FL2] > 1023){sensores[FL2] = 1023;}


}

///

int calcula_diferencia(){

int valor;

if((sensores[FL1] > valor_neutro + P_MUERTO)&&(sensores[FL2] > valor_neutro +


P_MUERTO)){

if(direccion_anterior==0){valor=100;}

else{valor=-100;}

velocidad = VELOCIDAD_BAJA_GIRO;

else{

valor = sensores[FL2]-sensores[FL1];

if((valor > P_MUERTO) || (valor < -P_MUERTO)){

velocidad = VELOCIDAD_BAJA;

if (valor > 0) {valor= GIRO_LINEA;direccion_anterior=0;}

if(valor < 0){valor = -GIRO_LINEA;direccion_anterior=1;}

else {

valor = 0;

velocidad = VELOCIDAD_NORMAL;

return valor; // Devolvemos el valor

También podría gustarte