Está en la página 1de 2

//Variables Sensores

int pin_sensor[6] = {0, 1, 2, 3, 6, 7};


int sensor_analog[6] = {0, 0, 0, 0, 0, 0};
int sensor_digital[6] = {0, 0, 0, 0, 0, 0};

int avg = 0; //Promedio


int sum = 0; //Sensores en la l�nea negra

double NuevaPosicion = 3000;


double Posicion = 3000;

//Si es mayor a rango asigna 1 | Negro = 1, Blanco = 0


int Rango = 200;

bool Negro = 1;
bool Blanco = 0;

void LeerSensores() {
for (int i = 0; i <= 5; ++i)
{

//A7 - Primer sensor izquierda


//A0 - Ultimo sensor derecha

//Leer el canal anal�gico [A7 - A0]


int analogPin = pin_sensor[i];
sensor_analog[i] = analogRead(analogPin);

//Convertir valor anal�gico a digital [1|0]


if (sensor_analog[i] > Rango) {
sensor_digital[i] = Negro;
}
else {
sensor_digital[i] = Blanco;
}
}
}

void DeterminarPosicion() {
avg = 0;
sum = 0;

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


{
avg += sensor_digital[i] * (i + 1) * 1000;
sum += sensor_digital[i];
}

if (sum >= 1 ) {
NuevaPosicion = avg / sum;
}

if (NuevaPosicion >= 1000 and NuevaPosicion <= 6000) {


Posicion = NuevaPosicion;
}
}

void RevisarSensores() {
LeerSensores();
DeterminarPosicion();

for (int k = 0; k <= 5; k++)


{
Serial.print('[');
Serial.print(k);
Serial.print('|');
Serial.print(sensor_analog[k]);
Serial.print("->");
Serial.print(sensor_digital[k]);
Serial.print("] ");
}
Serial.println();
Serial.print('[');
Serial.print(Posicion);
Serial.print(']');
Serial.println("----------------");
delay(600);
}

También podría gustarte