-
-
Save anonymous/18a5362392f6972cfd73 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* Primeiro Teste do Seguidor de Linha | |
| João Pedro Scherer Cipriani | |
| Equipe GaudérioBotz | |
| COLÉGIO TÉCNICO INDUSTRIAL DE SANTA MARIA */ | |
| // atribuição de pinos aos motores | |
| int pinMotorEsq = 9; | |
| int pinMotorDir = 5; | |
| // atribuição de pinos aos sensores | |
| int pinSensorEsq = A0; | |
| int pinSensorDir = A1; | |
| // atribuição de variáveis aos valores medidos e calculados | |
| int leituraSensorEsq = 0; | |
| int leituraSensorDir = 0; | |
| int offsetSensores = 0; | |
| int velocidadeMotorDir = 0; | |
| int velocidadeMotorEsq = 0; | |
| void setup() { | |
| // definindo os pinos dos motores como saídas | |
| pinMode (pinMotorDir, OUTPUT); | |
| pinMode (pinMotorEsq, OUTPUT); | |
| // iniciando a serial | |
| Serial.begin(9600); | |
| } | |
| void loop() { | |
| // leitura dos sensores | |
| leituraSensorEsq = analogRead (pinSensorEsq); | |
| leituraSensorDir = analogRead (pinSensorDir); | |
| // comparação dos sensores | |
| offsetSensores = leituraSensorEsq - leituraSensorDir; | |
| offsetSensores = abs (offsetSensores); // módulo da diferença dos sensores | |
| // definição das velocidades | |
| if (leituraSensorDir > 200 || leituraSensorEsq > 200) { //Para evitar que ele ande em superfície branca | |
| if (offsetSensores < 250) { // Para o caso de ambos os sensores estarem sobre a parte preta | |
| velocidadeMotorDir = 255; | |
| velocidadeMotorEsq = velocidadeMotorDir; | |
| } | |
| else { | |
| if (leituraSensorDir > 300) { | |
| velocidadeMotorDir = 255; | |
| velocidadeMotorEsq = 50; | |
| } | |
| else if (leituraSensorEsq > 300) { | |
| velocidadeMotorEsq = 255; | |
| velocidadeMotorDir = 50; | |
| } | |
| } | |
| } | |
| else if(leituraSensorDir < 200 && leituraSensorEsq < 200) { | |
| velocidadeMotorEsq = 0; | |
| velocidadeMotorDir = velocidadeMotorEsq; | |
| }; | |
| /* Cálculo por conversão de escalas -- o motor não tem, com | |
| as pilhas, força o suficiente para manter o movimento da roda | |
| quando o valor for muito baixo | |
| velocidadeMotorDir = map (leituraSensorEsq, 0,1000, 20,255); | |
| velocidadeMotorEsq = map (leituraSensorDir, 0,1000, 20,255); */ | |
| // impressão | |
| // impressão dos valores medidos para o serial | |
| Serial.print ("SensorEsq = "); | |
| Serial.print (leituraSensorEsq); | |
| Serial.print (" SensorDir = "); | |
| Serial.print (leituraSensorDir); | |
| //soma | |
| Serial.print (" Diferenca Sensores = "); | |
| Serial.println (offsetSensores); | |
| // rodar os motores para testes | |
| // Teste normal | |
| analogWrite (pinMotorDir, velocidadeMotorDir); | |
| analogWrite (pinMotorEsq, velocidadeMotorEsq); | |
| // Ligar e desligar MotorEsq | |
| /*analogWrite (pinMotorEsq,255); | |
| delay (1000); | |
| analogWrite (pinMotorEsq,0); | |
| delay (1000);*/ | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment