Controle do servomotor
Projeto 9 – Controlando o motor
Já vimos no projeto 7 como funciona um potenciômetro e no projeto 8 como funciona um servo motor. No projeto 9, veremos como utilizar esses dois componentes em conjunto controlando o servo através da rotação do potenciômetro.
É interessante observar como os dois componentes utilizam portas analógicas. Com isso podemos ler diversos valores no potenciômetro e mandar esses valores diversos para o motor. Não é apenas um comando de ligado e desligado, como no Projeto 5 Interruptor de luz.
Material necessário
1x Servo 9g
1x Potenciômetro 10K ohm
8x Jumper macho-macho
1x Cabo USB
1x Placa Arduino Uno
Montagem do circuito
Como já visto no projeto 8, o servo possui três fios para sua utilização e na extremidade desses fios um conector de 3 pinos fêmea. O fio marrom do servo deve ser conectado ao GND, o fio vermelho ao 5 V e o fio laranja ao pino 9 do Arduino.
Para conectar o servo basta utilizar 3 jumpers macho-macho. Também acompanha algumas hastes e parafusos. Não é necessário parafusar as hastes ao servo, apenas um encaixe já basta.
Adicione também na montagem o potenciômetro, como visto no Projeto 7.
Programa Projeto 9 – Controlando o Motor
O programa consiste em ler o valor de rotação do potenciômetro e controlar a rotação do servo de acordo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // Projeto 9 - Controlando um Motor #include <Servo.h> Servo meuServo; int pinoPot = A0; int valorPot; void setup() { meuServo.attach(9); } void loop() { valorPot = analogRead(pinoPot); valorPot = map(valorPot, 0, 1023, 0, 180); // mapeia os valores do potenciometro (entre 0 e 1023) para os valores do servo (entre 0 e 180) meuServo.write(valorPot); // manda o valor para o servo delay(15); } |
Possíveis erros
Caso o projeto não funcione, verifique alguns dos possíveis erros:
- Verifique se os jumpers estão na mesma coluna dos terminais dos componentes, fazendo assim a conexão;
- Verifique se os jumpers estão ligados nos pinos corretos no Arduino;
- Verifique se as conexões do servo estão corretas, fio marrom no GND, fio vermelho no 5V e laranja no pino 9;
- Verifique se os pinos do potenciômetro estão bem inseridos na protoboard;
- Verifique se o código carregou na placa através da IDE Arduino.
Desafios
Veja abaixo alguns desafios que você pode tentar!
- Modifique o limite de rotação do servo trocando os valores de ângulo na linha valorPot = map(valorPot, 0, 1023, 0, 180); por exemplo valorPot = map(valorPot, 0, 1023, 50, 110);