Arduino - Sensor de puerta - servomotor
Aprenderemos:
- Si la puerta está abierta, gira el servomotor a 90 grados
- Si la puerta está abierta de nuevo, gira el servomotor de vuelta a 0 grados
Ese proceso se repite.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.
Acerca del servomotor y del sensor de la puerta
Si no sabes mucho sobre un motor servo y un sensor de puerta (disposición de pines, cómo funciona, cómo programarlos...), aprende sobre ellos en los siguientes tutoriales:
Diagrama de Cableado

This image is created using Fritzing. Click to enlarge image
Código de Arduino - Sensor de Puerta Controla el Servomotor
/*
* Este código de Arduino fue desarrollado por es.newbiely.com
* Este código de Arduino se proporciona al público sin ninguna restricción.
* Para tutoriales completos y diagramas de cableado, visite:
* https://es.newbiely.com/tutorials/arduino/arduino-door-sensor-servo-motor
*/
#include <Servo.h>
// constants won't change
const int DOOR_SENSOR_PIN = 7; // Arduino pin connected to door sensor's pin
const int SERVO_PIN = 9; // Arduino pin connected to servo motor's pin
Servo servo; // create servo object to control a servo
// variables will change:
int angle = 0; // the current angle of servo motor
int lastDoorState; // the previous state of door sensor
int currentDoorState; // the current state of door sensor
void setup() {
Serial.begin(9600); // initialize serial
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);
currentDoorState = digitalRead(DOOR_SENSOR_PIN);
}
void loop() {
lastDoorState = currentDoorState; // save the last state
currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state
if(lastDoorState == LOW && currentDoorState == 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;
// control servo motor arccoding to the angle
servo.write(angle);
}
}
Pasos R\u00e1pidos
- Conecta Arduino al PC mediante un cable USB
- Abre Arduino IDE, selecciona la placa y el puerto correctos
- Copia el código anterior y ábrelo con Arduino IDE
- Haz clic en el botón Subir en Arduino IDE para subir el código al Arduino
- Acerca el imán al interruptor de láminas y luego aléjalo del interruptor de láminas. Repite esto varias veces
- Observa el cambio en el servomotor
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.