08.11.2017 Views

arduino_básico_Michael_McRoberts

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 10 ■ Motores de passo e robôs<br />

255<br />

e analisando se os valores lidos são maiores do que o valor lido no LDR do centro,<br />

somado ao deslocamento do limiar.<br />

Se o valor do sensor da esquerda for maior do que a leitura do centro mais o deslocamento,<br />

então a linha preta terá se afastado do centro e estará muito à direita. As<br />

velocidades dos motores serão ajustadas para que a roda da esquerda gire mais rápido<br />

do que a da direita, virando o robô para a direita e retornando a linha preta ao centro:<br />

if (LDR1 > (LDR2+threshold)) {<br />

left = startSpeed + rotate;<br />

right = startSpeed - rotate;<br />

}<br />

O mesmo é feito para o sensor da direita, dessa vez virando o robô para a esquerda:<br />

if (LDR3 > (LDR2+threshold)) {<br />

left = startSpeed - rotate;<br />

right = startSpeed + rotate;<br />

}<br />

Então, as velocidades, que podem ou não ter sido ajustadas dependendo da posição<br />

da linha, são enviadas aos motores:<br />

analogWrite(speed1,left);<br />

analogWrite(speed2,right);<br />

Todo esse processo se repete muitas vezes por segundo, e forma um loop de feedback<br />

que faz com que o robô siga a linha.<br />

Caso seu robô saia do trajeto da linha, talvez você tenha de ajustar a velocidade em<br />

startSpeed para uma mais lenta. Se ele não virar com a rapidez ou extensão necessária,<br />

ou se virar demais, então o valor de rotate terá de ser ajustado de acordo. A sensibilidade<br />

dos LDRs pode ser ajustada, alterando o valor na variável threshold. Experimente<br />

valores diferentes, até que você consiga que o robô siga a linha devidamente.<br />

Resumo<br />

O capítulo 10 iniciou com uma simples introdução aos motores de passo, e explicou<br />

como controlar sua velocidade e direção utilizando um CI controlador de motor.<br />

Você também aprendeu qual a diferença entre um motor de passo unipolar e um<br />

bipolar, e como eles funcionam. Depois, você utilizou um simples shield de motor<br />

para controlar dois motores de forma independente, e terminou conectando esse<br />

shield a uma base de robô, para criar um robô de duas rodas que acompanha uma<br />

linha desenhada no chão.

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

Saved successfully!

Ooh no, something went wrong!