avatar
KODD

Guest 459 11th Jun, 2023

CPP 1.58 KB
                                           
                         #include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#define trig 2
#define echo 3

#define czas_trwania 5000
const byte UID[] = {0xB5, 0x61, 0x2B, 0x77};

Servo serwo;
int pozycja = 0;
int zmiana = 180;

MFRC522 rfid(10, 9);
MFRC522::MIFARE_Key key;
boolean stan = false;
unsigned long czas;

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  serwo.attach(8);
  pinMode(trig, OUTPUT);
  pinMode(echo, OUTPUT);
}

void loop() {
  if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial())
  {
    if (rfid.uid.uidByte[0] == UID[0] && 
        rfid.uid.uidByte[1] == UID[1] &&
        rfid.uid.uidByte[2] == UID[2] &&
        rfid.uid.uidByte[3] == UID[3])
    {
      Serial.println("Poprawny");
      stan = true;
      czas = millis() + czas_trwania;
    } else
    {
      Serial.println("Niepoprawny");
      stan = false;
    }
    rfid.PICC_HaltA();
    rfid.PCD_StopCrypto1();
  }

  if (stan && czas < millis())
    stan = false;

  digitalWrite(2, stan);
  if (stan == true){
    serwo.write(zmiana);
  }
}

int zmierzOdleglosc()
{
  long czas, dystans;
  
  digitalWrite(trig, HIGH);
  delayMicroseconds(2);
  digitalWrite(trig, LOW);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);

  czas = pulseIn(echo, HIGH);
  dystans = czas/58;
  return dystans;
}

void zakres(int a, int b)
{
  int jakDaleko = zmierzOdleglosc();
  if ((jakDaleko > a) && (jakDaleko < b))
    {
      digitalWrite(2, HIGH);
    }
  else
    {
      digitalWrite(2, LOW);
    }
}
                      
                                       
To share this paste please copy this url and send to your friends
RAW Paste Data
Recent Pastes
Ta strona używa plików cookie w celu usprawnienia i ułatwienia dostępu do serwisu oraz prowadzenia danych statystycznych. Dalsze korzystanie z tej witryny oznacza akceptację tego stanu rzeczy.
Wykorzystywanie plików Cookie
Jak wyłączyć cookies?
ROZUMIEM