Projeto 05 - Micro servomotor

Conceitos

Prompt: crie uma imagem de um gato usando gravata e que está aprendendo a usar um Arduíno. Faça o gato utilizar uma chave de fenda no Arduino. Faça com que ele use óculos
Fonte: gerado por IA com Bing por Maxwell Anderson (2023)
Prompt: crie uma imagem de um gato usando gravata e que está aprendendo a usar um Arduíno. Faça o gato utilizar uma chave de fenda no Arduino. Faça com que ele use óculos.

Introdução

Servomotores são motores que podem ser controlados com precisão em uma determinada posição. Eles são usados em robótica, controle de rádio, dentro outros. Eles são pequenos, leves e podem ser conectados diretamente ao Arduino.

Para isso, iremos utilizar a seguinte lista de materiais1:

ID Descrição Quantidade
1 Arduino Uno 1
SERVO1 Micro Servo Motor 1

Implementação

Este exemplo mostra como usar um servomotor para controlar a posição de um objeto. Vamos usar o pino 9 para controlar o servomotor. Em suma, o Arduino envia um sinal PWM para o servomotor, que gira para a posição desejada. Veja os comentários do código de exemplo para obter uma boa compreensão de seu funcionamento.

Vamos começar montando o circuito e depois iremos programar o Arduíno.

Simulador Tinkercad

Para a implementação do projeto, iremos utilizar o simulador Tinkercad. Para isso, crie um novo projeto e adicione os componentes conforme a imagem abaixo:

Projeto 05 - Micro servomotor
Fonte: TinkerCad (2023)

Insira os blocos conforme ilustrado abaixo:

Código do Projeto 05 - Micro servomotor
Fonte: TinkerCad (2023)

Veja como fica o código abaixo:

#include <Servo.h>

int pos = 0;

Servo servo_9;

void setup()
{
  // anexar o servo no pino 9 ao objeto servo_9
  servo_9.attach(9, 500, 2500);
}

void loop()
{
  // girar o servo de 0 a 180 graus em passos de 1 grau
  for (pos = 0; pos <= 180; pos += 1) {
    // diga ao servo para ir para a posição na variável 'pos'
    servo_9.write(pos);
    // espere 15 ms para o servo atingir a posição
    delay(15); 
  }
  for (pos = 180; pos >= 0; pos -= 1) {
    // diga ao servo para ir para a posição na variável 'pos'
    servo_9.write(pos);
    // espere 15 ms para o servo atingir a posição
    delay(15); 
  }
}

Agora, clique no botão ▶️ Iniciar simulação e veja o resultado. Cada LED deve piscar a cada 1s de maneira sequencial.

Funciona! Por que você não tenta fazer outra coisa, como por exemplo colocar um potenciômetro para controlar a velocidade do giro? 😉

Este projeto está também disponível em TinkerCad: Projeto 06 - Sensor de umidade

Referências

  1. Este projeto foi criado por [Barragan](http://barraganstudio.com. O exemplo de código é de domínio público. Modificado em 8 de nov. de 2013 por Scott Fitzgerald. Disponível em http://www.arduino.cc/en/Tutorial/Sweep