Code Arduino Uno pour un mini portail automatique sans relais
Composants:
* Carte Arduino Uno
* Moteur pas à pas
* Lecteur RFID
* Capteur à ultrasons
* Écran LCD
* Alimentation électrique
Câblage:
* Moteur pas à pas:
* Broches 10, 11, 12, 13 à la carte Arduino Uno
* Lecteur RFID:
* Broche RX à la broche 2 de la carte Arduino Uno
* Broche TX à la broche 3 de la carte Arduino Uno
* Capteur à ultrasons:
* Broche Trig à la broche 9 de la carte Arduino Uno
* Broche Echo à la broche 10 de la carte Arduino Uno
* Écran LCD:
* Broches 8, 9, 4, 5, 6, 7 à la carte Arduino Uno (broches D4 à D9)
Code:
#include <LiquidCrystal.h>
#include <RFID.h>
Const int trigPin = 9;
Const int echoPin = 10;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD pins
RFID rfid(2, 3); // RFID pins
Int motorPin1 = 10; // Motor control pin 1
Int motorPin2 = 11; // Motor control pin 2
Int motorPin3 = 12; // Motor control pin 3
Int motorPin4 = 13; // Motor control pin 4
Int switchPin = 3; // Switch pin
Int distance = 0; // Distance from the ultrasonic sensor
Void setup() {
Serial.begin(9600); // Initialize serial communication
Lcd.begin(16, 2); // Initialize LCD display
pinMode(motorPin1, OUTPUT); // Set motor control pins as output
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(switchPin, INPUT); // Set switch pin as input
// Initialize RFID reader
Rfid.init();
Void loop() {
// Read RFID tag
If (rfid.readTag()) {
Serial.print(“Tag ID: “);
Serial.println(rfid.getTag());
openGate(); // Open the gate
}
// Read switch state
If (digitalRead(switchPin) == HIGH) {
openGate(); // Open the gate
// Check for obstacles using ultrasonic sensor
Distance = measureDistance();
If (distance < 50) { // If an obstacle is detected
closeGate(); // Close the gate
lcd.print(“Obstacle detected!”);
} else {
Lcd.print(“Distance: “);
Lcd.print(distance);
Lcd.print(“ cm”);
Void openGate() {
// Control the motor to open the gate
For (int I = 0; I < 100; i++) { // Rotate the motor for a specific number of steps
digitalWrite(motorPin1, HIGH);
delayMicroseconds(1000);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
delayMicroseconds(1000);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
delayMicroseconds(1000);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delayMicroseconds(1000);
digitalWrite(motorPin4, LOW);
Void closeGate() {
// Control the motor to close the gate
For (int I = 0; I < 100; i++) { // Rotate the motor in the opposite direction
digitalWrite(motorPin4, HIGH);
delayMicroseconds(1000);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
delayMicroseconds(1000);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
delayMicroseconds(1000);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delayMicroseconds(1000);
digitalWrite(motorPin1, LOW);
}
Int measureDistance() {
Long duration;
Code Arduino Uno pour un mini portail automatique
Composants:
* Carte Arduino Uno
* Moteur pas à pas
* Lecteur RFID
* Capteur à ultrasons
* Écran LCD
* Relais
* Alimentation électrique
Câblage:
* Moteur pas à pas:
* Broches 10, 11, 12, 13 à la carte Arduino Uno
* Lecteur RFID:
* Broche RX à la broche 2 de la carte Arduino Uno
* Broche TX à la broche 3 de la carte Arduino Uno
* Capteur à ultrasons:
* Broche Trig à la broche 9 de la carte Arduino Uno
* Broche Echo à la broche 10 de la carte Arduino Uno
* Écran LCD:
* Broches 8, 9, 4, 5, 6, 7 à la carte Arduino Uno (broches D4 à D9)
* Relais:
* Broche IN1 à une broche de la carte Arduino Uno (par exemple, D2)
* Broche IN2 à une autre broche de la carte Arduino Uno (par exemple, D3)
Code:
#include <LiquidCrystal.h>
#include <RFID.h>
const int trigPin = 9;
const int echoPin = 10;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD pins
RFID rfid(2, 3); // RFID pins
int relayPin = 2; // Relay pin
int switchPin = 3; // Switch pin
int distance = 0; // Distance from the ultrasonic sensor
void setup() {
Serial.begin(9600); // Initialize serial communication
lcd.begin(16, 2); // Initialize LCD display
pinMode(relayPin, OUTPUT); // Set relay pin as output
pinMode(switchPin, INPUT); // Set switch pin as input
// Initialize RFID reader
rfid.init();
void loop() {
// Read RFID tag
if (rfid.readTag()) {
Serial.print("Tag ID: ");
Serial.println(rfid.getTag());
openGate(); // Open the gate
// Read switch state
if (digitalRead(switchPin) == HIGH) {
openGate(); // Open the gate
// Check for obstacles using ultrasonic sensor
distance = measureDistance();
if (distance < 50) { // If an obstacle is detected
closeGate(); // Close the gate
lcd.print("Obstacle detected!");
} else {
lcd.print("Distance: ");
lcd.print(distance);
lcd.print(" cm");
void openGate() {
digitalWrite(relayPin, LOW); // Activate relay to open the gate
delay(5000); // Wait for 5 seconds
digitalWrite(relayPin, HIGH); // Deactivate relay
void closeGate() {
digitalWrite(relayPin, LOW); // Activate relay to close the gate
delay(5000); // Wait for 5 seconds
digitalWrite(relayPin, HIGH); // Deactivate relay
int measureDistance() {
long duration;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
return distance = duration * 0.034 / 2;
Explication du code:
* La fonction setup() initialise les broches, les bibliothèques et le module RFID.
* La fonction loop() vérifie si un tag RFID a été lu ou si l'interrupteur a été activé. Si l'un ou l'autre est
vrai, la fonction openGate() est appelée pour ouvrir le portail.
* La fonction loop() vérifie également la présence d'obstacles à l'aide du capteur à ultrasons. Si un
obstacle est détecté, la fonction closeGate() est appelée pour fermer le portail.
* La fonction openGate() active le relais pendant 5 secondes pour ouvrir le portail.
* La fonction closeGate() active le relais pendant 5 secondes pour fermer le portail.
* La fonction measureDistance() utilise le capteur à ultrasons pour mesurer la distance à un objet.
Remarques:
* Ce code est un exemple
* https://medium.com/geekculture/blindspot-monitoring-system-using-arduino-uno-a5a8dd074280
* https://github.com/bambanggunawanid/projek-pkl