daVez; //variavel que ira definir qual fotoscopio o robo tem que seguir (qual e o da vez)int fonteLuzDetectada; //variavel do tipo numero inteiro que servira de semaforo para dar inicio aos movimentos do robo caso haja uma fonte emisora de fotonsvoid setup(){ //mostrar para o CI onde estao ligados os Servos servo[0].attach(3); //servo 0 corresponde ao primeiro servo ligado na porta 3, assim por diante... servo[1].attach(5); servo[2].attach(6); servo[3].attach(9); //inicializo cada valor do vetor que recebe os valores do fotoscopio com 0 for(contador = 1; contador < 5; contador++){ LDRtower[contador] = 0; } //inicializo o funcionamento da porta serial com leitura 9600bps (bps = bites por segundo) Serial.begin(9600);}void zerarVarDeControle(int daVez, int fonteLuzDetectada){ //zerar as variaveis que iram definir qual lado o robo deve seguir daVez = 0; fonteLuzDetectada = 0;}void receberLeiturasAssociandoFotoscopioaPino(int LDRtower[4], int pinLDRtower1, int pinLDRtower2, int pinLDRtower3, int pinLDRtower4){ //faz com que cada valor do vetor de fotoscopios receba as medidas de suas respectivas portas LDRtower[1] = analogRead(pinLDRtower1); //A torre do LDR 1 recebe os valores da porta analogica 0 (pinLDRtower1), e assim por diante... LDRtower[2] = analogRead(pinLDRtower2); LDRtower[3] = analogRead(pinLDRtower3); LDRtower[4] = analogRead(pinLDRtower4);}void funcaoDeixarRobodePe(Servo servo[4]){ //deixa o robo em pe colocando todos os servos num angulo de 90o servo[0].write(90); servo[1].write(90); servo[2].write(90); servo[3].write(90);}int verificaRecepcaoLuminosa(int contador, int LDRtower[4], int sensibilidade, int fonteLuzDetectada){ //verifica se algum fotoscopio recebeu sinal luminoso for (contador = 1; contador < 5; contador++){ if (LDRtower[contador] > sensibilidade) fonteLuzDetectada = 1; } return(fonteLuzDetectada);}int achaMaior(int daVez, int contador, int LDRtower[4]){ //verifica qual fotoscopio recebeu sinal maior e taxa-o como daVez daVez = 1; for (contador = 2; contador < 5; contador++) if (LDRtower[daVez] < LDRtower[contador]) daVez = contador; return(daVez);}void irEmDirecaoAoFotoscopio1(Servo servo[4]){ //movimento de sincrono que inicia a movimentacao do robo em direcao ao fotoscopio 1: //deita uma perna servo[0].write(45); servo[1].write(90); servo[2].write(90); servo[3].write(90); delay(500); servo[0].write(0); servo[1].write(90); servo[2].write(90); servo[3].write(90); delay(500); //deita a outra servo[0].write(0); servo[1].write(135); servo[2].write(135); servo[3].write(135); delay(500); servo[0].write(0); servo[1].write(180); servo[2].write(180); servo[3].write(180); delay(100); //pula! servo[0].write(180); servo[1].write(0); servo[2].write(180); servo[3].write(180); delay(500); //levanta uma perna servo[0].write(135); servo[1].write(0); servo[2].write(135); servo[3].write(135); delay(500); servo[0].write(90); servo[1].write(0); servo[2].write(90); servo[3].write(90); delay(500); //levanta a outra servo[0].write(90); servo[1].write(45); servo[2].write(90); servo[3].write(90); delay(500); servo[0].write(90); servo[1].write(90); servo[2].write(90); servo[3].write(90); delay(500);}void irEmDirecaoAoFotoscopio2(Servo servo[4]){ //movimento de sincrono que inicia a movimentacao do robo em direcao ao fotoscopio 2: //deita uma perna servo[0].write(90); servo[1].write(45); servo[2].write(90); servo[3].write(90); delay(500); servo[0].write(90); servo[1].write(0); servo[2].write(90); servo[3].write(90); delay(500); //deita a outra servo[0].write(135); servo[1].write(0); servo[2].write(135); servo[3].write(135); delay(500); servo[0].write(180); servo[1].write(0); servo[2].write(180); servo[3].write(180); delay(100); //pula! servo[0].write(0); servo[1].write(180); servo[2].write(180); servo[3].write(180); delay(500); //levanta uma perna servo[0].write(0); servo[1].write(135); servo[2].write(135); servo[3].write(135); delay(500); servo[0].write(0); servo[1].write(90); servo[2].write(90); servo[3].write(90); delay(500); //levanta a outra servo[0].write(45); servo[1].write(90); servo[2].write(90); servo[3].write(90); delay(500); servo[0].write(90); servo[1].write(90); servo[2].write(90); servo[3].write(90); delay(500);}void irEmDirecaoAoFotoscopio3(Servo servo[4]){ //movimento de sincrono que inicia a movimentacao do robo em direcao ao fotoscopio 3: //deita uma perna servo[0].write(90); servo[1].write(90); servo[2].write(45); servo[3].write(90); delay(500); servo[0].write(90); servo[1].write(90); servo[2].write(0); servo[3].write(90); delay(500); //deita a outra servo[0].write(135); servo[1].write(135); servo[2].write(0); servo[3].write(135); delay(500); servo[0].write(180); servo[1].write(180); servo[2].write(0); servo[3].write(180); delay(100); //pula! servo[0].write(180); servo[1].write(180); servo[2].write(180); servo[3].write(0); delay(500); //levanta uma perna servo[0].write(135); servo[1].write(135); servo[2].write(135); servo[3].write(0); delay(500); servo[0].write(90); servo[1].write(90); servo[2].write(90); servo[3].write(0); delay(500); //levanta a outra servo[0].write(90); servo[1].write(90); servo[2].write(90); servo[3].write(45); delay(500); servo[0].write(90); servo[1].write(90); servo[2].write(90); servo[3].write(90); delay(500);}void irEmDirecaoAoFotoscopio4(Servo servo[4]){ //movimento de sincrono que inicia a movimentacao do robo em direcao ao fotoscopio 4: //deita uma perna servo[0].write(90);