RC522

TheRoi
Offline
Зарегистрирован: 16.09.2016
Помогите пожалуйста с кодом! 
Нужно чтоб серва меняла своё положение не по таймеру а по повторному поднесению к rc522 модулю! 
Спасибо большое! 

 

 

*/
#include <Servo.h> 
Servo dimkaservo; 

#include <SPI.h>
#include <MFRC522.h> // это скачанная библиотека "RFID".

/*
подключение для Arduino Uno и Mega, производится к разным Pin!
 ----------------------------------------------------- Nicola Coppola
 * Pin layout should be as follows:
 * Signal     Pin              Pin               Pin
 *            Arduino Uno      Arduino Mega      MFRC522 board
 * ------------------------------------------------------------
 * Reset      9                5                 RST
 * SPI SS     10               53                SDA
 * SPI MOSI   11               51                MOSI
 * SPI MISO   12               50                MISO
 * SPI SCK    13               52                SCK
 
 */

// два Pin (SS и RST) допускают произвольное подключение и конфигурируются в коде.
// !(SS - он же - SDA).
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);  // объект MFRC522C / reate MFRC522 instance.
unsigned long uidDec, uidDecTemp;  // для отображения номера карточки в десятичном формате


//*************************************************************
// Массив 4 Светодиодов, для визуального контроля.
//*************************************************************
int ledPins[] = {
  2,3,4,5};
int LedPinSindex; // индекс, для массива Светодиодов. 

void setup() {

  Serial.begin(9600);     // Initialize serial communications with the PC.
  Serial.println("Prilozhite kartu / Waiting for card...");

  SPI.begin();  //  инициализация SPI / Init SPI bus.
  mfrc522.PCD_Init();     // инициализация MFRC522 / Init MFRC522 card.

  dimkaservo.attach(7); // servo подключён к 7 Pin.
  dimkaservo.write(10); // устанавливаем положение servo, в момент подачи питания.

  // весь массив светодиодов делаем OUTPUT. 
  for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)
  {
    pinMode(ledPins[LedPinSindex],OUTPUT);
  }
}


void loop() {
  // Поиск новой карточки / Look for new cards.
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }

  // Выбор карточки / Select one of the cards.
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  uidDec = 0;

  // Выдача серийного номера карточки "UID".
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
    uidDecTemp = mfrc522.uid.uidByte[i];
    uidDec = uidDec*256+uidDecTemp;  
  }  
  Serial.println("Serijnyj nomer karty / Card UID: ");
  Serial.println(uidDec); 

  // ------------------------

  // начинаем сравнивать номер "UID", поднесённой к ридеру карты, 
  // с записанным номером "UID" карты в sketch.

  // замените!!! "UID" № "422455350", на номер "UID" № вашей карты.
  if (uidDec == 422455350) // если "UID" номер совпал.
  {
    // включим светодиод.
    digitalWrite(ledPins[0], HIGH);

    // Печатаем в Serial монитор .  
    Serial.println("Hi Dmitry"); 

    // поворачиваем servo на 170 градусов.
    dimkaservo.write(170);  
  }


  // также и с другими номерами карт.
  else if (uidDec == 959884118)
  {
    digitalWrite(ledPins[1], HIGH);
    Serial.println("Hi Sergey");
    dimkaservo.write(170);   
  }


  else if (uidDec == 695670870)
  {
    digitalWrite(ledPins[2], HIGH);
    Serial.println("Hi Peter");
    dimkaservo.write(170);   
  }


  else if (uidDec == 695670614)
  {
    digitalWrite(ledPins[3], HIGH);
    Serial.println("Hi Vasily");
    dimkaservo.write(170);   
  }


  else  // если "UID" номер карты не совпал.
  {
    // включим все светодиоды.
    for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],HIGH);
    Serial.println("Neizvestnaja karta / unknown card");  
  }

  Serial.println("=====================================");

  delay(3000); // пауза 3 секунды.
  dimkaservo.write(10); // возвращаем servo обратно.
  // и выключим все светодиоды.
  for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],LOW);  
}  

 

Viktor_Samsonov
Offline
Зарегистрирован: 16.09.2016

https://www.youtube.com/watch?v=U2Ly7PhCtPA&index=2&list=PLmYrKfbOTukLzM...

могу только этим помоч, мне тоже надо будет такую функцию,

если разберешься дай знать как