Mostrando postagens com marcador sumô. Mostrar todas as postagens
Mostrando postagens com marcador sumô. Mostrar todas as postagens

quarta-feira, 23 de julho de 2014

Torneio Juvenil de Robótica 2014

23/07
Planejamento de equipes

domingo, 25 de agosto de 2013

Resultado Torneio Juvenil de Robótica 2013 - São Paulo

Das 7 modalidades que participamos, ganhamos medalhas em 5 modalidades - 71% de eficência - e 6 medalhas - eficiência de 85%. Um resultado inesperado e acima das nossas expectativas. Só faltou a medalha de ouro...

Resultado: TJR Torneio Juvenil de Robótica 2013 - São Paulo
Sumô Tradicional - Nível II
Ouro - SPECTRUS
Prata - SDS
Bronze - TRON

Sumô MMA - Nível II
Ouro - CHALLENGERS 4
Prata - TIME 3.2
Bronze - TIME 4.1

Resgate de Alto Risco - Nível II
Ouro - SPECTRUS
Prata - LEGENDÁRIOS

Dança - Nível II
Ouro - NOVA GERAÇÃO TIAOZINHO 3

Sumô Large - Nível II
Ouro - CHALLENGERS 2
Prata - TIME 4
Bronze - TIME 3.1

Cabo de Guerra - Nível II
Ouro - FOURC1
Prata - CHALLENGERS 7
Bronze - FOURC2

Resgate no Plano - Nível II
Ouro - TRON
Prata - LCA
Bronze - SPECTRUS

Viagem - Nível II
Ouro - LEGOTEEN VCT
Prata - CHALLENGERS 13
Bronze - WINNERS JUNIOR C
Bronze - SPECTRUS

Sumô Tradicional - Nível III
Ouro - CHALLENGERS N
Prata - l1I2
Bronze - LEGOTEEN HS
*participamos mas não ganhamos medalha

Sumô MMA - Nível III
Ouro - CHALLENGERS 5
Prata - PEQUENOS CIENTISTAS EF

Resgate de Alto Risco - Nível III
Ouro - EQUIPE SHARK'S LITORAL
Prata - JAGUAR IFRJ - RESGATE
Bronze - LEGENDÁRIOS

Dança - Nível III
Ouro - PSYTRON
Prata - JAGUAR IFRJ - DANÇA
Bronze - CHALLENGERS 11

Viagem - Nível III
Ouro - CHALLENGERS 14
Prata - VIAJANTES DE VERNE
Bronze - LEGOTEEN HS VCT

Sumô Large - Nível III
Ouro - CHALLENGERS 88
Prata - TITAN

Cabo de Guerra - Nível III
Ouro - TIME 1
Prata - IFRJ JAGUAR - CABO DE GUERRA
Bronze - CHALLENGERS 8
*participamos mas não ganhamos medalha

Resgate no Plano - Nível III
Ouro - EQUIPE SHARK'S LITORAL
Prata - JAGUAR IFRJ - DONATELO

Labirinto - Nível III
Ouro - IFRJ JAGUAR - LABIRINTO

Sumô Tradicional - Nível IV
Ouro - CHALLENGERS 1
Prata - FEG-ROBÓTICA
Bronze - PEQUENOS CIENTISTAS 2

Sumô Large - Nível IV
Ouro - CHALLENGERS 3
Prata - PEQUENOS CIENTISTAS

Cabo de Guerra - Nível IV
Ouro - CHALLENGERS 9
Prata - PEQUENOS CIENTISTAS

Viagem - Nível IV
Ouro - VIAJANTES DE VERNE 2
Prata - GER
Bronze - CHALLENGERS 15

Sumô MMA - Nível IV
Ouro - CHALLENGERS 6
Prata - PEQUENOS CIENTISTAS 2
Bronze - PEQUENOS CIENTISTAS 1

Dança - Nível IV
Ouro - CHALLENGERS 12

Super Time - Cabo de Guerra
Ouro - FOURC1 e SPECTRUS
Prata - FOURC2 e CERBERUS

Prêmio de Incentivo
B.I.N.O

fonte: torneiojrobotica.org

domingo, 30 de setembro de 2012

SENSOR DE ULTRASSOM HC-SR04

Aplicação em robôs de sumô: detecção de objetos.
Programa de testes- Utilizado para 2 sensores de ultrassom:

// Comandos para leitura de sensor de ultrassom para os robôs TITAN e ORION.
//sensor 1
#define echoPin 2                            // Pino do Arduino para emissor
#define trigPin 3                            // Pino do Arduino para receptor
//sensor 2
#define echoPin1 4                           // Pino do Arduino para emissor
#define trigPin1 5                           // Pino do Arduino para receptor

float distancia=0; // variável para distância do sensor 1
float distancia1=0;//variável para distância do sensor 2

float valorSensor=0; //valor do sensor 1
float valorSensor1=0;//valor do sensor 2

void setup(){
  Serial.begin(9600);
  pinMode(echoPin, INPUT); // seta pino 2 como entrada - receptor - echo
  pinMode(trigPin, OUTPUT); // seta pino 3 do Arduino como saída - transmissor - trigger
  pinMode(echoPin1, INPUT);//seta o pino 4 como entrada receptor
  pinMode(trigPin1, OUTPUT);//seta o pino 5 como saída (gatilho) - transmissor
}

void loop(){
  //sensor de objeto 1
  digitalWrite(trigPin, LOW); // desliga o pino gatilho do sensor por 2 microssegundos
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);// gatilho ativado por 10 microssegundos
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);// gatilho desligado
  //sensor de objeto 2
  digitalWrite(trigPin1, LOW); // desliga o pino gatilho do sensor por 2 microssegundos
  delayMicroseconds(2);
  digitalWrite(trigPin1, HIGH); // gatilho ativado por 10 microssegundos
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW); // gatilho desligado

  int distance = pulseIn(echoPin, HIGH);//leitura do sensor 1 - alto ou baixo.
  int distance1 = pulseIn(echoPin1, HIGH);//leitura do sensor 2 - alto ou baixoo pulso em microssegundos.
  distance = distancia/58;//converte o valor do sensor1 em cm
  distance1 = distancia1/58;//converte o valor do sensor2 em cm
  //a partir daqui pode seguir com as variáveis para controlar os motores usando a distância
  //comando para exibir no serial monitor o valor de distância
  Serial.print(distancia);
  Serial.print(distancia1);
  Serial.println(distancia);
  Serial.println(distancia1);
  delay(100);
}


FONTE: http://www.webtronico.com/documentos/HC-SR04.pdf


Descrição:
 Medidor de distância ultrasônico é capaz de medir distâncias de 2cm a 5 metros. O módulo possui um circuito pronto, com emissor e receptor ultrasônico.
Conexões:
  • 5V Supply
  • Trigger Pulse Input
  • Echo Pulse Output
  • 0V Ground
Também pode ser utilizado para detectar objetos, movimento, etc.
Especificações:
  • power supply :5V DC
    Corrente: 15mA
  • quiescent current : <2mA
  • effectual angle: <15°
  • alcance da medição : 2cm – 500 cm
  • resolution : 3mm
O módulo possui 4 pinos : VCC , Trig, Echo, GND . Sendo assim, é muito simples utiliza-lo. O processo de medição se resume em: coloque o pino TRIG em nível ALTO por mais de 10us, e a medição começa; Quando o ultrassom emitido bater em um obstáculo e voltar, o pino ECHO ficará em nível ALTO pelo tempo correspondente a distância medida. Assim, a distância do obstáculo pode ser medida pelo tempo (largura do pulso) que o pino ECHO ficar em nível alto usando a seguinte regra:
Distância em CEMTIMETROS: (largura do pulso em uS) / 58;
Distância em POLEGADAS: (largura do pulso em uS) / 148;
Se a largura do pulso for igual a 38ms, então não tem obstaculo.

sábado, 1 de setembro de 2012

Novo projeto

Recebemos da Diretoria de Educação a verba de projetos descentralizados que permitirá a compra de material de pesquisa. Isso nos estimulou a criação de um novo projeto que envolve um robô de esteiras, sem nome definido ainda. Na verdade este projeto já está em desenvolvimento, precisando de ajustes. 
Em relação a verba recebida da prefeitura de Campo Limpo Paulista, nesta sexta a nota fiscal e os dados de depósito foram enviados a Prefeitura e agora, é só questão de tempo. Ainda nos resta o problema de baterias.

terça-feira, 14 de agosto de 2012

Sumo 20x20 - Pequenos Cientistas

Aqui estão os rascunhos de construção da estrutura do robô de sumô e viagem ao centro da Terra e as fotos da montagem, de responsabilidade do Daniel. Estas estruturas estão sem medidas pois se baseiam no projeto original e as adaptações foram feitas conforme os problemas foram surgindo. As fotos foram realizadas pelo celular do Daniel.

 Base do chassi e suporte para os servo-motores
 Suporte do Arduíno e Protoboard
 Rodas
Rampa de proteção

Bom depois de elaborar os rascunhos começou a construção:



Arduino sobre o suporte e Protoboard:

Montagem final do robô com a base, rodas, suporte e rampa de defesa. Agora só falta os sensores:




Programa usado no pré-teste dos motores, para testar o L297N (ponte H) e os servo motores:
/* Este código permite o passo de 2 motores*/
//motor direito
int motorPin1 = 7;
int motorPin2 = 8;
//motor esquerdo
int motorPin3 = 3;
int motorPin4 = 4;

int delayTime = 3000;

void setup() {
  //configura os pinos digitais do motor direito
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  //configura os pinos digitais do motor esquerdo
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  }

void loop() {
//motor direito
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(delayTime);
  } 

Vídeo do teste dos motores com L297:






Vídeos da montagem final com baterias, falta apenas a instalação dos sensores. O programa usado foi o mesmo do teste anterior mas agora somente


Vídeo do sistema completo embarcado, sem alimentação por fonte ligada a tomada.


Boas notícias:
- O chassi está quase pronto, faltando detalhes de regulagem
- Temos 7 sensores e falta apenas 7 sensores que ficam prontos nesta quarta-feira
- A bateria que montamos de 2 baterias chumbo-ácidas doadas estão "pegando" carga o que quer dizer uma economia de R$ 30 reais e uma bateria de 8V com 400 mAh
- Conseguimos, graças ao Paulo da Equipe Orion, uma broca de 1,5 mm que pode funcionar para fazer as placas de sensores que faltam, testaremos amanhã, por um módico preço de R$2,60.
- Estamos no prazo com todas as equipes.

Problemas a resolver ainda:
- Comprar L298N para a equipe Orion.
- Instalar os sensores de linha e distância e testar.
- Melhorar os sensores de distância pois o alcance está limitado a 5 cm.
- Testar as 2 configurações novas de sensores - aumentando a distância entre os led´s emissores e receptores para 2cm e usando resistores de 170 ohm no emissor e 4k7 no receptor.

Em breve postaremos as fotos dos sensores IR e o chassi com eles embarcados.
Estamos quase lá, força pessoal.

PS: Ainda não postamos nada da equipe Orion pois o material está no celular da Coordenadora Vani do Elza Facca. 





terça-feira, 24 de julho de 2012

Teste Virtual do TITAN I - Simulino

Após o teste dos sensores utilizando led´s, agora testamos o programa em motores de passo no Simulino. O resultado foi positivo. O programa está pronto, falta a parte de chassi e placas.


Teste - sensores ativando o passo e motores

O filme abaixo apresenta o teste em Simulino apresentando 6 sensores ativando 2 motores (led´s verdes) e o passo utilizado nestes motores (led´s azuis). O objetivo e controlar sincronicamente 2 motores de passo utilizando 6 sensores e o Arduino.


 O código fonte utilizado está "sujo", ou seja, ainda não usa equações, vetores ou funções para obter o resultado final e, tem opção de 4 pinos digitais para ativação de motores.

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

//variavel dos pinos digitais
//pinos de ativação dos motores
//int L1 = 4;
//int L2 = 5;
int L3 = 6;
int L4 = 7;
//pinos do passo
int L5 = 8;
int L6 = 9;
int L7 = 10;
int L8 = 11;
//tempo do passo
int tempo = 500;

//variaveis de comparação da leitura dos pinos analogicos
//valor da tensão do pino analógico que determina o sinal
int maximo = 2;
//variaveis das diversas leituras
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);
pinMode(L7, OUTPUT);
pinMode(L8, 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) {
// aciona os motores 1 e 2
//digitalWrite(L1, HIGH);
//digitalWrite(L2, HIGH);
digitalWrite(L3, HIGH);
digitalWrite(L4, HIGH);
//passo
digitalWrite(L5, HIGH);
delay(tempo);
digitalWrite(L5, LOW);
digitalWrite(L6, HIGH);
delay(tempo);
digitalWrite(L6, LOW);
digitalWrite(L7, HIGH);
delay(tempo);
digitalWrite(L7, LOW);
digitalWrite(L8, HIGH);
delay(tempo);
digitalWrite(L8, LOW);
}
else {
//desliga os motores 1 e 2
//digitalWrite(L1, LOW);
//digitalWrite(L2, LOW);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);
//desliga o passo
digitalWrite(L5, LOW);
digitalWrite(L6, LOW);
digitalWrite(L7, LOW);
digitalWrite(L8, LOW);
}

if (VR2 > maximo){
//aciona um dos motores, o outro desligado
//digitalWrite(L1, HIGH);
//digitalWrite(L2, HIGH);
digitalWrite(L3, LOW);
digitalWrite(L4, HIGH);
//passo
digitalWrite(L5, HIGH);
delay(tempo);
digitalWrite(L5, LOW);
digitalWrite(L6, HIGH);
delay(tempo);
digitalWrite(L6, LOW);
digitalWrite(L7, HIGH);
delay(tempo);
digitalWrite(L7, LOW);
digitalWrite(L8, HIGH);
delay(tempo);
digitalWrite(L8, LOW);
}
else {
//digitalWrite(L1, LOW);
//digitalWrite(L2, LOW);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);
}

if (VR3 > maximo) {
//aciona o outro dos motores, o anterior desligado
//digitalWrite(L1, LOW);
//digitalWrite(L2, LOW);
digitalWrite(L3, HIGH);
digitalWrite(L4, LOW);
//passo
digitalWrite(L5, HIGH);
delay(tempo);
digitalWrite(L5, LOW);
digitalWrite(L6, HIGH);
delay(tempo);
digitalWrite(L6, LOW);
digitalWrite(L7, HIGH);
delay(tempo);
digitalWrite(L7, LOW);
digitalWrite(L8, HIGH);
delay(tempo);
digitalWrite(L8, LOW);
}
else {
//digitalWrite(L1, LOW);
//digitalWrite(L2, LOW);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);
}

if (VR4 > maximo) {
// aciona os motores 1 e 2
//digitalWrite(L1, HIGH);
//digitalWrite(L2, HIGH);
digitalWrite(L3, HIGH);
digitalWrite(L4, HIGH);
//PASSO INVERTIDO
digitalWrite(L8, HIGH);
delay (tempo);
digitalWrite(L8, LOW);
digitalWrite(L7, HIGH);
delay (tempo);
digitalWrite(L7, LOW);
digitalWrite(L6, HIGH);
delay (tempo);
digitalWrite(L6, LOW);
digitalWrite(L5, HIGH);
delay (tempo);
digitalWrite(L5, LOW);

}
else {
//digitalWrite(L1, LOW);
//digitalWrite(L2, LOW);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);
}

if (VR5 > maximo) {
//digitalWrite(L1, HIGH);
//digitalWrite(L2, HIGH);
digitalWrite(L3, HIGH);
digitalWrite(L4, LOW);
//PASSO INVERTIDO
digitalWrite(L8, HIGH);
delay (tempo);
digitalWrite(L8, LOW);
digitalWrite(L7, HIGH);
delay (tempo);
digitalWrite(L7, LOW);
digitalWrite(L6, HIGH);
delay (tempo);
digitalWrite(L6, LOW);
digitalWrite(L5, HIGH);
delay (tempo);
digitalWrite(L5, LOW);
}
else {
//digitalWrite(L1, LOW);
//digitalWrite(L2, LOW);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);
}

if (VR6 > maximo) {
digitalWrite(L3, LOW);
digitalWrite(L4, HIGH);
//PASSO INVERTIDO
digitalWrite(L8, HIGH);
delay (tempo);
digitalWrite(L8, LOW);
digitalWrite(L7, HIGH);
delay (tempo);
digitalWrite(L7, LOW);
digitalWrite(L6, HIGH);
delay (tempo);
digitalWrite(L6, LOW);
digitalWrite(L5, HIGH);
delay (tempo);
digitalWrite(L5, LOW);
}
else {
//digitalWrite(L1, LOW);
//digitalWrite(L2, LOW);
digitalWrite(L3, LOW);
digitalWrite(L4, LOW);

}
}


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.


sexta-feira, 20 de julho de 2012

Sensores Infravermelho para Robôs de Sumo

 O projeto de robôs de sumo envolve o uso de sensores de linha, que normalmente são Infravermelhos (IR) e, sensores de distância, para identificar objetos. Os sensores de distância podem ser ultrassônicos (utilizam sons com frequências acima da audição humana) ou sensores de infravermelho. A escolha de infravermelho se deve ao custo deste em relação aos sensores de som - R$60,00 os de ultrassom, R$12,00 os IR e para fazer o sensor IR, cerca de R$5,00. A questão de fazer os sensores IR envolve a compra (TIL32 e TIL78 sofrem interferência da luza ambiente) e a montagem - o fototransistor é invertido, coisa que descobrimos do pior jeito (errando que se aprende).


 É importante destacar que o ideal é testar os sensores antes de utilizar. A estática da mão pode queimar o fototransistor e a temperatura do ferro de solda pode fazer o mesmo. O sistema proposto abaixo economiza, e muito, energia durante os combates. Não pode ser usado para medir distâncias, apesar das informações deste esquema no Multisim ter indicado que o LED IR "pisca" com uma frequencia de 24Khz. Sem um osciloscópio não arriscaria usar esse valor como referência. Se bem isolado, consegue até 10 cm de sensibilidade. 

O código abaixo pode ser utilizado para calcular a distância, mas o objetivo inicial deste código é apenas testar os 6 sensores.
/* 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 = 400;
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);
VR2 = analogRead(IR2);
VR3 = analogRead(IR3);
VR4 = analogRead(IR4);
VR5 = analogRead(IR5);
VR6 = analogRead(IR6);

// verifica se o sensor está ativo
if (VR1 >= maximo) {
// se sim, acende o LED
digitalWrite(L1, HIGH);
}
if (VR2 >= maximo){
// caso contrario, apaga o LED
digitalWrite(L2, LOW);
}
if (VR3 >= maximo) {
// se sim, acende o LED
digitalWrite(L3, HIGH);
}
if (VR4 >= maximo) {
// se sim, acende o LED
digitalWrite(L4, HIGH);
}
if (VR5 >= maximo) {
// se sim, acende o LED
digitalWrite(L5, HIGH);
}
if (VR6 >= maximo) {
// se sim, acende o LED
digitalWrite(L6, HIGH);

}
}


Aliás, é possível utilizar este código para controlar o robô bastando substituir os leds com seus resistores por pontes H. Caso se interesse verifique nosso post anterior.


Abaixo uma sugestão de como montar uma placa com sensores IR para um robô de sumô 20x20 cm.