segunda-feira, 23 de julho de 2012

Teste - Sensores de IR

 Este teste usa o Simulino, simulador do Arduino no Proteus, com o código fonte abaixo, para simular a leitura de sensores IR. Estes sensores serão utilizados no TITAN I e outros robôs, sendo o código adaptado para cada situação em particular. Os botões atuam fechando o circuito, ou seja, se um objeto refletir a luz IR o Arduíno recebe um sinal acendendo um led específico. O fator de multiplicação converte o sinal analógico do Arduíno em tensão.


/* Programa para leitura de 6 sensores IR - Projeto Robô Lutador de Sumô
Equipe Pequenos Cientistas 2012
*/
int IR1=0;
int IR2=1;
int IR3=2;
int IR4=3;
int IR5=4;
int IR6=5;

int L1 = 5;
int L2 = 6;
int L3 = 7;
int L4 = 8;
int L5 = 9;
int L6 = 10;


int maximo = 2;
int VR1;
int VR2;
int VR3;
int VR4;
int VR5;
int VR6;

void setup() {
// configura o pino como saida
pinMode(L1, OUTPUT);
pinMode(L2, OUTPUT);
pinMode(L3, OUTPUT);
pinMode(L4, OUTPUT);
pinMode(L5, OUTPUT);
pinMode(L6, OUTPUT);

// configura o pino como entrada
pinMode(IR1, INPUT);
pinMode(IR1, INPUT);
pinMode(IR2, INPUT);
pinMode(IR3, INPUT);
pinMode(IR4, INPUT);
pinMode(IR5, INPUT);

Serial.begin (9600);
}
void loop(){

  // le o estado do botao
VR1 = analogRead(IR1) * 0.0049;
VR2 = analogRead(IR2) * 0.0049;
VR3 = analogRead(IR3) * 0.0049;
VR4 = analogRead(IR4) * 0.0049;
VR5 = analogRead(IR5) * 0.0049;
VR6 = analogRead(IR6) * 0.0049;

// verifica se o sensor está ativo
if (VR1 > maximo) {
// se sim, acende o LED
digitalWrite(L1, HIGH);
}
else {
digitalWrite(L1, LOW);
}

if (VR2 > maximo){
// caso contrario, apaga o LED
digitalWrite(L2, HIGH);
}
else {
digitalWrite(L2, LOW);
}


if (VR3 > maximo) {
// se sim, acende o LED
digitalWrite(L3, HIGH);
}
else {
digitalWrite(L3, LOW);
}

if (VR4 > maximo) {
// se sim, acende o LED
digitalWrite(L4, HIGH);
}
else {
digitalWrite(L4, LOW);
}

if (VR5 > maximo) {
// se sim, acende o LED
digitalWrite(L5, HIGH);
}
else {
digitalWrite(L5, LOW);
}

if (VR6 > maximo) {
// se sim, acende o LED
digitalWrite(L6, HIGH);
}
else {
digitalWrite(L6, LOW);
}

}




O vídeo abaixo ilustra a execução do código.


Nenhum comentário:

Postar um comentário