arduinomaker
Üye
- Katılım
- 28 Kas 2022
- Mesajlar
- 1
- Puanları
- 1
- Yaş
- 28
Herkese merhabalar.Rahatsız ettiğim için özür dilerim.
Kafa yorgunluğundan mıdır bilmiyorum.Gözümden bir şey var ama maalesef bulamıyorum.
Arduino projesi yapıyorum.Rfıd kartı okuttuğum zaman servo motor çalışacak ve ürünü koyacağım servo motora bağlı olan bariyer kalkacak.Ürünü geri çektiğimde de mesafe sensörü 30 cm yi algıladığında servo motoru yani bariyeri indirecek.Yardımcı olabilirseniz çok sevinirim.Şimdiden çok çok teşekkür ederim.
Kodlar:
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#define trigPin 4
#define echoPin 2
long sure;
long mesafe;
int RST_PIN = 9;
int SS_PIN = 10;
int servoPin = 8;
Servo motor;
MFRC522 rfid(SS_PIN, RST_PIN);
byte ID[4] = {
155,
58,
148,
34
};
void setup() {
motor.attach(servoPin);
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
SPI.begin();
rfid.PCD_Init();
}
void loop() {
if (!rfid.PICC_IsNewCardPresent())
return;
if (!rfid.PICC_ReadCardSerial())
return;
if (rfid.uid.uidByte[0] == ID[0] &&
rfid.uid.uidByte[1] == ID[1] &&
rfid.uid.uidByte[2] == ID[2] &&
rfid.uid.uidByte[3] == ID[3]) {
Serial.println("Kapi acildi");
ekranaYazdir();
motor.write(180);
delay(3000);
} else {
Serial.println("Yetkisiz Kart");
ekranaYazdir();
}
rfid.PICC_HaltA();
}
void ekranaYazdir() {
Serial.print("ID Numarasi: ");
for (int sayac = 0; sayac < 4; sayac++) {
Serial.print(rfid.uid.uidByte[sayac]);
Serial.print(" ");
}
Serial.println("");
digitalWrite(trigPin, LOW);
delayMicroseconds(3);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
sure = pulseIn(echoPin, HIGH);
mesafe = (sure/2) * 0.0343;
if (mesafe=30) {
motor.write(50);
} else{
(mesafe<28);
motor.write(180);
}
delay(5000);}
Kafa yorgunluğundan mıdır bilmiyorum.Gözümden bir şey var ama maalesef bulamıyorum.
Arduino projesi yapıyorum.Rfıd kartı okuttuğum zaman servo motor çalışacak ve ürünü koyacağım servo motora bağlı olan bariyer kalkacak.Ürünü geri çektiğimde de mesafe sensörü 30 cm yi algıladığında servo motoru yani bariyeri indirecek.Yardımcı olabilirseniz çok sevinirim.Şimdiden çok çok teşekkür ederim.
Kodlar:
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#define trigPin 4
#define echoPin 2
long sure;
long mesafe;
int RST_PIN = 9;
int SS_PIN = 10;
int servoPin = 8;
Servo motor;
MFRC522 rfid(SS_PIN, RST_PIN);
byte ID[4] = {
155,
58,
148,
34
};
void setup() {
motor.attach(servoPin);
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
SPI.begin();
rfid.PCD_Init();
}
void loop() {
if (!rfid.PICC_IsNewCardPresent())
return;
if (!rfid.PICC_ReadCardSerial())
return;
if (rfid.uid.uidByte[0] == ID[0] &&
rfid.uid.uidByte[1] == ID[1] &&
rfid.uid.uidByte[2] == ID[2] &&
rfid.uid.uidByte[3] == ID[3]) {
Serial.println("Kapi acildi");
ekranaYazdir();
motor.write(180);
delay(3000);
} else {
Serial.println("Yetkisiz Kart");
ekranaYazdir();
}
rfid.PICC_HaltA();
}
void ekranaYazdir() {
Serial.print("ID Numarasi: ");
for (int sayac = 0; sayac < 4; sayac++) {
Serial.print(rfid.uid.uidByte[sayac]);
Serial.print(" ");
}
Serial.println("");
digitalWrite(trigPin, LOW);
delayMicroseconds(3);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
sure = pulseIn(echoPin, HIGH);
mesafe = (sure/2) * 0.0343;
if (mesafe=30) {
motor.write(50);
} else{
(mesafe<28);
motor.write(180);
}
delay(5000);}
Son düzenleme: