Browse Source

Update SeguidorLineaArduino.ino

Comentarios de las funciones
main
Miguel Delgado 3 years ago
parent
commit
f9afac470c
  1. 56
      SeguidorLineaArduino/SeguidorLineaArduino.ino

56
SeguidorLineaArduino/SeguidorLineaArduino.ino

@ -1,4 +1,17 @@
/*
* SEGUIDOR DE LINEA CON ARDUINO
* CODIGO BASE
* Este código es la base para iniciar el seguidor de linea
* aun no esta terminado, pero se ira completando hasta la
* version final.
*
* NOTA: Esta codigo no usa la libreria QTR, por lo que el
* procesamieto es manual y se puede ajustar de una mejor manera
*/
//------------------------------------------------------------
//----------------------VARIABLES-----------------------------
//------------------------------------------------------------
int sensores[]={A0,A1,A2,A3,A4,A5,A6,A7};//Sensores
int valores[8];
int umbral[]={1023,1023,1023,1023,1023,1023,1023,1023};
@ -6,6 +19,9 @@ int numSensores=8;//total de sensres en la barra
int ir =2;//encender y apagar la barra
//------------------------------------------------------------
//----------------------INICIALIZACION------------------------
//------------------------------------------------------------
void setup() {
Serial.begin(115200);
//Inicializamos los pines de los sensores
@ -19,6 +35,10 @@ void setup() {
calibracion();
}
//------------------------------------------------------------
//---------------------------LOOP-----------------------------
//------------------------------------------------------------
void loop() {
int pos=getPosicion();
@ -31,6 +51,13 @@ void loop() {
delay(100);
}
/*
* Funcion que permite la lectura de los sensores de forma
* analógica sin procesar nada, el resultado queda en el
* arreglo llamado "valores"
*/
void leerRAW(){
//LEER LOS VALORES DE LOS SENSORES
for(int x=0;x<numSensores;x++){
@ -38,6 +65,12 @@ void leerRAW(){
}
}
/*
* Función que permite mediante un promedio de valores
* encontrar la posición de la linea negra en todo momento
* es similar a la función de la libreria QTR, por lo que regresará
* un valor entre 0 y 4000
*/
int getPosicion(){
leerDigital();
int activos=0;
@ -48,10 +81,22 @@ int getPosicion(){
activos++;
}
}
return suma/activos;
if(activos==0){
return 0;
}else{
return suma/activos;
}
}
/*
* Esta función permite leer los valores de los ensores y
* procesar cada uno de los valores para encontrar la linea
* negra, similar a la lectura de la libreria QTR, donde cada
* linea es multipo de 500
*
* 500 1000 1500 2000 2500 3000 3500 4000
*/
void leerDigital(){
//LEER LOS VALORES DE LOS SENSORES
for(int x=0;x<numSensores;x++){
@ -59,6 +104,15 @@ void leerDigital(){
}
}
/*
* Esta funcion tiene como objetivo encontrar el valor mas alto
* y mas bajo de los sensores, para establecer su umbral, por el momento solo
* encuentra los valores bajos (blancos) y queda pendiente encontrar
* los valores negros para obtener su promedio para el umbral.
*
* TODO:reacomodar esta función
*/
void calibracion(){
digitalWrite(LED_BUILTIN,HIGH);
for(int y=0;y<400;y++){

Loading…
Cancel
Save