Arduino Nano - Sensor de Porta - Servo Motor

Este tutorial ensina como usar o Arduino Nano e o sensor de porta para controlar o servo motor. Em detalhes::

O mesmo procedimento é executado novamente.

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Sensor de Porta
1×Servo Motor
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Buy Note: For controlling multiple servo motors, use the PCA9685 16 Channel PWM Servo Driver Module to save MCU pins and simplify wiring.

Sobre o Servo Motor e o Sensor de Porta

Se você não conhece servo motores e sensores de porta (incluindo pinagens, como funcionam e como programá-los), os tutoriais a seguir podem ajudar:

Diagrama de Ligação

The wiring diagram between Arduino Nano and door sensor servo motor

This image is created using Fritzing. Click to enlarge image

Observe que o diagrama de ligação mostrado acima é adequado apenas para um servo motor de baixo torque. Se o motor vibrar em vez de girar, é preciso usar uma fonte de alimentação externa para fornecer mais energia ao servo motor. O diagrama abaixo mostra a ligação com uma fonte de alimentação externa para o servo motor.

The wiring diagram between Arduino Nano and door sensor servo motor external power

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Não se esqueça de conectar o GND da fonte externa ao GND do Arduino Nano.

Código Arduino Nano - O Sensor de Porta Controla o Servo Motor

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-door-sensor-servo-motor */ #include <Servo.h> #define DOOR_SENSOR_PIN 3 // The Arduino Nano pin connected to the door sensor's pin #define SERVO_PIN 2 // The Arduino Nano pin connected to the servo motor Servo servo; // create servo object to control a servo int angle = 0; // The current angle of servo motor int prev_door_state; // The previous state of door sensor int door_state; // The current state of door sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); door_state = digitalRead(DOOR_SENSOR_PIN); } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == LOW && door_state == HIGH) { Serial.println("The door-opening event is detected"); // change angle of servo motor if (angle == 0) angle = 90; else if (angle == 90) angle = 0; // rotate the servo motor to the angle position servo.write(angle); } }

Passos Rápidos

  • Conecte um Arduino Nano ao seu computador usando um cabo USB.
  • Abra a Arduino IDE e selecione a placa e a porta apropriadas.
  • Copie o código fornecido e abra-o na Arduino IDE.
  • Clique no botão Upload da Arduino IDE para compilar e fazer o upload do código para o Arduino Nano.
  • Aproxime um ímã do reed switch e depois afaste-o novamente. Faça isso várias vezes.
  • Observe o ângulo de rotação do servo motor.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!