9 \# define m o t orPino5 6 // Pino do d river2 IN
10
11 \# define m o t orPino6 7 // Pino do d river2 IN
12
13 \# define m o t orPino7 8 // Pino do d river2 IN3
14
15 \# define m o t orPino8 9 // Pino do d river2 IN4
No projeto são utilizados dois motores de passo, dessa forma, precisam ser criados
dois objetos do tipo 0 e, além disso, comunicar os parâmetros dos pinos e da precisão.
O objeto stepper é vinculado ao motor 1 e o stepper2 ao motor 2. Com esses objetos
será possível acessar as funções da biblioteca Accelstepper.
1 AccelStepper s tepper ( HALFSTEP , m otorPino1 , motor Pino3 , m otorPino2 , m otorPino4 );
2 AccelSteppe r s t e p p e r 2 ( HALFSTEP , motorPino5 , motorPino7 , mot orPino6 , motorPino8 ) ;
Nas linhas a seguir foram definidas algumas variáveis, dentre estas, a velocidade e a
distRoda precisam de um pouco de atenção. A variável distRoda receberá o valor da
distância das duas rodas que estão montadas no Robô. Esse valor influencia no cálculo
do perímetro das fórmulas mostradas anteriormente. A variável velocidade pode receber
um parâmetro de até 2000 passos, contudo, nos testes realizados pelos pesquisadores a
velocidade de 500 passos forneceu melhores resultados.
1 String l eeCadena ; int v e l o cidade = 500 , veloc idade1 , v e l ocidade2 ;
2
3 int direcao ,direcao1 , direcao2 , direcao3 =1;
4
5 int distR o da = 16, raio , passo , reta , seta , cont =0 , corrente , desligado ,
ligad o ;
6
7 int angulo , angulo1 , direita , esquerda , servo , cima , baixo ;
8
9 int codigo S e r i a l = 0 , protocolo , conta t =0;
10
11 long pass , dist , com Arco1 , comArco2 , comArco3 , comArco4 , rotacao , compcen1 ,
compcen 2 ;
Todas as linhas dos códigos dentro do setup são lidas apenas uma vez quando o Arduino
é ligado, dessa maneira, ele foi utilizado para configurar inicialmente o programa. O
serial.begin possibilita analisar o código funcionando pelo monitor serial da IDE. O
stepper.setMaxSpeed() configura o motor 1 para ter uma velocidade de até 1000 passos,
da mesma forma que o stepper2.setMaxSpeed(). O myservo.attach() indica para o
Arduino o pino que o servo motor está conectado na placa. Se o servo motor estiver em
outro pino digital é preciso informar esse valor para o myservo.attach(). Por sua vez, o
myservo.write() é usado para comunicar o valor do ângulo para o servo motor executar.
Nesse caso, toda vez que o Arduino for ligado, o servo motor irá para a posição de 90º.
Como ele fica preso na cabeça do Robô Educacional, então por meio dessa configuração
o Robô iniciará o movimento com a cabeça voltada para frente.
1 void setup (){
2
3 Serial . begin (9600) ;
4
5 stepper . setMaxSpeed (1000) ;
6
7 s tepper2 . setMaxSpeed (100 0) ;
8
9 myservo . atta ch (10) ;
10
11 myservo . write (90) ;}
C. A. dos S. Lima, C. V. Silva INTERMATHS, 4(2), 112–134, Dezembro 2023 | 125