sexta-feira, 13 setembro, 2024
Comunidade Prototipando
InícioArduinoComo Controlar um Servo com um Arduino e MPU6050

Como Controlar um Servo com um Arduino e MPU6050

Servo com um Arduino e MPU6050 - Domine a arte da automação com este guia completo! Descubra como controlar um servo utilizando Arduino e MPU6050.

Imagine poder criar um sistema que reage aos seus movimentos em tempo real, de maneira precisa e eficiente. Seja para um projeto de robótica, um braço mecânico ou um simples brinquedo interativo, controlar um servo motor com a ajuda de um Arduino e um sensor MPU6050 abre um mundo de possibilidades. Neste projeto, você aprenderá como integrar esses componentes para construir um dispositivo que transforma movimentos detectados pelo sensor em ações precisas do servo motor.

Vamos explorar desde os conceitos básicos de cada componente até a implementação prática, passo a passo, garantindo que mesmo quem está começando no mundo da eletrônica e programação consiga acompanhar e realizar o projeto com sucesso. Primeiramente, prepare-se para mergulhar em uma aventura tecnológica e descobrir como os movimentos do mundo real podem ganhar vida através da eletrônica e do Arduino.

Como Funciona?

O acelerômetro consiste em uma massa presa a uma mola, com placas externas fixas, e se move em uma direção. Consequentemente, a capacitância entre as placas muda quando a aceleração é aplicada. Em seguida, essa mudança na capacitância será medida e corresponderá a um valor de aceleração.

Ao mover o sensor para cima ou para baixo, ele fornece valores de -17000 a 17000. Portanto, mapearemos esses valores de 0 a 180 para mover o servo motor. Assim, quando movemos o sensor para cima, a saída do sensor será 180. Por outro lado, quando movemos o sensor para baixo, a saída do sensor será 0.

Diagrama de Circuito

Primeiramente, conecte o sensor MPU 6050 ao Arduino. As conexões do MPU6050 e do Arduino são as seguintes:

  • Conecte o VCC no MPU6050 ao pino 5V no Arduino.
  • Conecte o GND no MPU6050 ao GND no Arduino.
  • Conecte o SCL no MPU6050 ao A5 no Arduino.
  • Conecte o SDA no MPU6050 ao A4 no Arduino.

Após fazer as conexões para o MPU6050 e o Arduino, conecte o servo motor ao Arduino. As conexões para o servo motor com o Arduino são as seguintes:

  • Conecte o fio amarelo do servo motor ao pino 2 no Arduino.
  • Conecte o fio vermelho do servo motor ao pino 5V no Arduino.
  • Conecte o fio preto do servo motor ao GND no Arduino.

Código Arduino

#include <Wire.h>
#include <MPU6050.h>
#include <Servo.h>

Servo sg90;
int servo_pin = 2;
MPU6050 sensor;
int16_t ax, ay, az;
int16_t gx, gy, gz;

void setup() {
  sg90.attach(servo_pin);
  Wire.begin();
  Serial.begin(9600);
  Serial.println("Inicializando o sensor");
  sensor.initialize();
  Serial.println(sensor.testConnection() ? "Conexão bem-sucedida" : "Falha na conexão");
  delay(1000);
  Serial.println("Obtendo valores do sensor");
  delay(1000);
}

void loop() {
  sensor.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  ax = map(ax, -17000, 17000, 0, 180);
  Serial.println(ax);
  sg90.write(ax);
  delay(200);
}

Explicação do Código

Primeiramente, incluímos a biblioteca para o sensor MPU6050 e o servo motor. A biblioteca wire é para a comunicação SPI entre o Arduino e o sensor MPU6050.

#include <Wire.h>
#include <MPU6050.h>
#include <Servo.h>

Em seguida, criamos uma variável chamada sg90 e do tipo Servo. Essa variável nos ajudará a usar as funções da biblioteca do servo. Em seguida, inicializamos o pino 2 para o servo motor.

Servo sg90;
int servo_pin = 2;

Depois, criamos uma variável com o nome do sensor e do tipo MPU6050. Essa variável nos ajudará a usar as funções da biblioteca. Em seguida, inicializamos algumas variáveis que usaremos para medir a saída do sensor MPU6050.

MPU6050 sensor;
int16_t ax, ay, az;
int16_t gx, gy, gz;

Na função de configuração, anexamos o servo ao pino 2 no Arduino. Isso significa que o Arduino fornecerá entrada para o motor do servo por meio desse pino. Em seguida, iniciamos a comunicação com fio e, após isso, iniciamos a comunicação serial a uma taxa de 9600 bauds.

sg90.attach(servo_pin);
Wire.begin();
Serial.begin(9600);

Verificamos se o sensor MPU6050 está funcionando corretamente. Se estiver funcionando corretamente, “Obtendo valores do sensor” será impresso na tela. Por outro lado, se não estiver conectado, “Falha na conexão” será impresso na tela.

Serial.println(sensor.testConnection() ? "Conexão bem-sucedida" : "Falha na conexão");

Conclusão

Ao dominar o controle de um servo com um Arduino e MPU6050, você abre um mundo de possibilidades para projetos inovadores. Primeiramente, a combinação desses componentes oferece uma ampla gama de aplicações, desde robótica até dispositivos de controle de movimento. Além disso, com a compreensão dos princípios subjacentes e a prática contínua, você estará bem equipado para explorar e criar soluções criativas com essas tecnologias.

Em resumo, quer aprender mais sobre Arduino? Esteja sempre ligado em nossos tutoriais e projetos do Prototipando.

Iuri Medeiros
Iuri Medeiroshttps://grupoexperts.com.br/
CEO apaixonado por negócios e visionário, lidera a GEX com uma abordagem inovadora. Sua ética de trabalho incansável e compromisso com a excelência transcendem os números, refletindo-se na cultura corporativa que valoriza inovação e responsabilidade social.
ARTIGOS RELACIONADOS

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

- PUBLICIDADE -
Google search engine

Mais Populares

Comentários Recentes