08.11.2017 Views

arduino_básico_Michael_McRoberts

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

254<br />

Arduino Básico<br />

pinMode(9, OUTPUT); // luzes<br />

pinMode(speed1, OUTPUT);<br />

pinMode(speed2, OUTPUT);<br />

pinMode(direction1, OUTPUT);<br />

pinMode(direction2, OUTPUT);<br />

A rotina de calibração é executada, para garantir que todos os três sensores tenham<br />

leituras semelhantes, seguida por uma espera de três segundos. Depois de os LEDs<br />

piscarem dez vezes durante a rotina de calibração, você terá três segundos para posicionar<br />

o robô sobre a linha que ele deverá seguir:<br />

calibrate();<br />

delay(3000);<br />

As luzes são acesas, seguidas por uma breve espera:<br />

digitalWrite(9, HIGH);<br />

delay(100);<br />

// acende as luzes<br />

Definimos a direção de ambos os motores para frente, e as velocidades com os valores<br />

armazenados nas variáveis right e left (inicialmente definidas com o valor armazenado<br />

em startSpeed):<br />

digitalWrite(direction1, HIGH);<br />

digitalWrite(direction2, HIGH);<br />

analogWrite(speed1,left);<br />

analogWrite(speed2,right);<br />

Agora você avança para o loop principal do programa, que inicia definindo a velocidade<br />

dos motores da esquerda e da direita com o valor em startSpeed:<br />

left = startSpeed;<br />

right = startSpeed;<br />

A velocidade do motor é redefinida com esses valores no início de cada loop, de modo<br />

que o robô esteja sempre indo para frente, a menos que os valores sejam alterados<br />

posteriormente no loop, fazendo com que o robô vire.<br />

Agora, você lê os valores do sensor de cada um dos três LDRs e armazena o resultado<br />

nos inteiros LDR1, LDR2 e LDR3. Os deslocamentos calculados para os sensores da esquerda<br />

e da direita são adicionados aos valores lidos, para que, quando os três sensores estiverem<br />

analisando a mesma superfície, tenham aproximadamente os mesmos valores.<br />

LDR1 = analogRead(0) + leftOffset;<br />

LDR2 = analogRead(1);<br />

LDR3 = analogRead(2) + rightOffset;<br />

Agora você tem de verificar os valores dos sensores e descobrir se a linha preta se<br />

afastou demais do centro. Isso é feito verificando os sensores da esquerda e da direita

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!