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(0); delay(500); //deita a outra servo[0].write(135); servo[1].write(135); servo[2].write(135); servo[3].write(0); delay(500); servo[0].write(180); servo[1].write(180); servo[2].write(180); servo[3].write(0); delay(100); //pula! servo[0].write(180); servo[1].write(180); servo[2].write(0); servo[3].write(180); delay(500); //levanta uma perna servo[0].write(135); servo[1].write(135); servo[2].write(0); servo[3].write(135); delay(500); servo[0].write(90); servo[1].write(90); servo[2].write(0); servo[3].write(90); delay(500); //levanta a outra 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(90); servo[3].write(90); delay(500);}//funcao padrao do Arduino, pode ser interpretada como principal, e fica em constante loopvoid loop(){ //zerar as variaveis que iram definir qual lado o robo deve seguir zerarVarDeControle(daVez, fonteLuzDetectada); //faz com que cada valor do vetor de fotoscopios receba as medidas de suas respectivas portas receberLeiturasAssociandoFotoscopioaPino(LDRtower, pinLDRtower1, pinLDRtower2, pinLDRtower3, pinLDRtower4); //deixa o robo em pe colocando todos os servos num angulo de 90o funcaoDeixarRobodePe(servo); //verifica se algum fotoscopio recebeu o sinal luminoso fonteLuzDetectada = verificaRecepcaoLuminosa(contador, LDRtower, sensibilidade, fonteLuzDetectada); //se recebeu quem recebeu o sinal maior if (fonteLuzDetectada == 1){ daVez = achaMaior(daVez, contador, LDRtower); //uma vez que se sabe qual e o maior sinal luminoso de acordo com a variavel daVez, executa-se seu respectivo movimento de acordo com o valor de daVez. switch (daVez) { case 1: //verifica se o fotoscopio da vez e o 3 while(daVez == 1){ //executa as funcoes abaixo ate que o daVez nao seja mais o 1 //faz o robo andar em direcao da luz recebida pelo fotoscopio 1 ate que ela suma ou outro fotoscopio receba luminosidade maior irEmDirecaoAoFotoscopio1(servo); //zerar as variaveis que iram definir qual lado o robo deve seguir zerarVarDeControle(daVez, fonteLuzDetectada); //faz com que cada valor do vetor de fotoscopios receba as medidas de suas respectivas portas receberLeiturasAssociandoFotoscopioaPino(LDRtower, pinLDRtower1, pinLDRtower2, pinLDRtower3, pinLDRtower4); //verifica se algum fotoscopio recebeu o sinal luminoso fonteLuzDetectada = verificaRecepcaoLuminosa(contador, LDRtower, sensibilidade, fonteLuzDetectada); //verifica qual fotoscopio recebeu sinal maior no case de deteccao de luz if (fonteLuzDetectada == 1){ daVez = achaMaior(daVez, contador, LDRtower); } } break; case 2: //verifica se o fotoscopio da vez e o 2 while(daVez == 2){ //executa as funcoes abaixo ate que o daVez nao seja mais o 2 //faz o robo andar em direcao da luz recebida pelo fotoscopio 2 ate que ela suma ou outro fotoscopio receba luz maior irEmDirecaoAoFotoscopio2(servo); //zerar as variaveis que iram definir qual lado o robo deve seguir zerarVarDeControle(daVez, fonteLuzDetectada); //faz com que cada valor do vetor de fotoscopios receba as medidas de suas respectivas portas receberLeiturasAssociandoFotoscopioaPino(LDRtower, pinLDRtower1, pinLDRtower2, pinLDRtower3, pinLDRtower4); //verifica se algum fotoscopio recebeu o sinal luminoso fonteLuzDetectada = verificaRecepcaoLuminosa(contador, LDRtower, sensibilidade, fonteLuzDetectada); //verifica qual fotoscopio recebeu sinal maior no case de deteccao de luz if (fonteLuzDetectada == 1){ daVez = achaMaior(daVez, contador, LDRtower); } } break; case 3: //verifica se o fotoscopio da vez e o 3 while(daVez == 3){ //executa as funcoes abaixo ate que o daVez nao seja mais o 3 //faz o robo andar em direcao da luz recebida pelo fotoscopio 3 ate que ela suma ou outro fotoscopio receba luminosidade maior irEmDirecaoAoFotoscopio3(servo); //zerar as variaveis que iram definir qual lado o robo deve seguir zerarVarDeControle(daVez, fonteLuzDetectada); //faz com que cada valor do vetor de fotoscopios receba as medidas de suas respectivas portas receberLeiturasAssociandoFotoscopioaPino(LDRtower, pinLDRtower1, pinLDRtower2, pinLDRtower3, pinLDRtower4); //verifica se algum