контроль доступа! помогите!

эд
Offline
Зарегистрирован: 02.05.2015

Добрый день уважаемые форумчани! Я имею код для ардуино на фид метки с серво приводом (от Дмитрия Осипова) я его реализовал  на своей входной двери всё отлично работает. Теперь я хочу сделать тоже самое но для гаражных ворот тоесть мне нужно вместо сервы поставить 2реле и 2 кнопки после активации системы запускается первое реле и роботает до тех пор пока не будет нажата первая кнопка арнуинка делает настраеваемую паузу и активирует вторую реле до тех пор пока не будет нажата вторая кнопка. Очень сильно нужна ваша помощ! 


 */
#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(10000); // пауза 10 секунды.
  dimkaservo.write(10); // возвращаем servo обратно.
  // и выключим все светодиоды.
  for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],LOW);  
}  

 

эд
Offline
Зарегистрирован: 02.05.2015

забыл добавить ардуинка уно.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Гыыыы нравятся мне все эти "учителя" с ютуба.. смарите типа повторяйте... гыы если долго долго повторять то есть шансы что человек начнет понимать код?

эд
Offline
Зарегистрирован: 02.05.2015

ну впринципе то что написано я понимаю я незнаю как писать но прочитать могу конечно не всё но всётаки.

и зачем мне чтото понимать с ютуба если там готовые системы. мне надо то 2-3 три вещи на ардуинке и что мне теперь всё програмирование нужно изучить ради этого? если вам нужно сварить 2 железяки вмести вы же не пойдёте покупать сварочной аппарат! вы пойдёте к соседу и попросите его сварить эти детали и сварит он вам их бесплатно так как мелоч (когда умееш)  и зачем тогда покупать сварочный и учиться варить???

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015
digitalWrite(Relay1, HIGH);
while(digitalRead(Button1) == LOW){};
digitalWrite(Relay1, LOW);
delay(настраиваемая пауза);
digitalWrite(Relay2, HIGH);
while(digitalRead(Button2) == LOW){};
digitalWrite(Relay2, LOW);

 

эд
Offline
Зарегистрирован: 02.05.2015

огромное спасибо за помощ! не хочеться надоедать но немогли бы вы всё это вставить в общий код и указать выходы для подключения? так как я в этом деле полный профан. зарание благодарю!

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Интересно, если у гипотетического соседа - сварщика, несколько тысяч соседей не желающих покупать сварочный аппарат. И желающих использовать его услуги задаром.. как быстро он начнет их посылать в пешие путешествия?

эд
Offline
Зарегистрирован: 02.05.2015

Puhlyaviy пишет:
Интересно, если у гипотетического соседа - сварщика, несколько тысяч соседей не желающих покупать сварочный аппарат. И желающих использовать его услуги задаром.. как быстро он начнет их посылать в пешие путешествия?

тогда сварщик сосед должен будет озвучить сумму за свои услуги! а не срать в коментах. я доходчиво обьясняю?

как собственно я и делаю если у меня есть свободная минута я просто беру и делаю за простое человеческое спасибо потому что это моё хобби. ну а ели сосед приходит и просит сварить полноценную металоконструкцию то тут уж извеняйте но время деньги. и к слову сказать я мозг некому не е...у я просто говорю сумму и всё!

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Тш-тш! Это - БИБЛИОТЕКА!!!111!!!.

Товарисч, если вы пришли сюда поругаться - вам туда -> ( | )

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Назначьте сумму за ваш вот этот скетч - сделаем.

эд
Offline
Зарегистрирован: 02.05.2015

Yarik.Yar пишет:

Назначьте сумму за ваш вот этот скетч - сделаем.

сумму называет иполнитель! (продовец) или вы когда приходите в магазин вы сами назначаете суммы за товары?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

OK. 500 рублей - и я напишу

эд
Offline
Зарегистрирован: 02.05.2015

я х/з не у кого некаких гарантий :/

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Гыыы. Я буду гарантией. Деньги вперед. Код сюды после получения оплаты. Если он не напишет. Я напишу его бесплатно.

эд
Offline
Зарегистрирован: 02.05.2015

держи!

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Куда кинуть скетч?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Yarik.Yar пишет:

Куда кинуть скетч?


Тут выложи.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Могу и тут...по согласию покупателя)

эд
Offline
Зарегистрирован: 02.05.2015

Yarik.Yar пишет:

Могу и тут...по согласию покупателя)

да конечно здесь выкладывай можеть ещё кому пригодиться.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014




#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;  // для отображения номера карточки в десятичном формате

int Relay1Pin = 1;   //Изменить на свои пины реле
int Relay2Pin = 2;
int but1Pin = 3;     // Изменить на свои пины кнопок(подключить между пином и GND)
int but2Pin = 4;     
int pause = 1000;    // Изменить на время задержки в мс
//*************************************************************
// Массив 4 Светодиодов, для визуального контроля.
//*************************************************************
int ledPins[] = {
  5,6,7,8};
int LedPinSindex; // индекс, для массива Светодиодов. 

void setup() {

  Serial.begin(9600);     // Initialize serial communications with the PC.
  Serial.println("Prilozhite kartu / Waiting for card...");
pinMode(Relay1Pin,OUTPUT);
pinMode(Relay2Pin,OUTPUT);
pinMode(but1Pin,INPUT_PULLUP);
pinMode(but2Pin,INPUT_PULLUP);
  SPI.begin();  //  инициализация SPI / Init SPI bus.
  mfrc522.PCD_Init();     // инициализация MFRC522 / Init MFRC522 card.

  

  // весь массив светодиодов делаем 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 градусов.
    digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){}
    digitalWrite(Relay2Pin,LOW);
    
  }

/*
  // также и с другими номерами карт.
  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");

  }
*/

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

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

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

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

МА-ЛА-ДЕЦ
возми с китайской полки свой фен... прическу не испорти :)

эд
Offline
Зарегистрирован: 02.05.2015

Yarik.Yar пишет:

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

 

ты серво оставил? оно тоже будет функционировать?

 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Серво?не оставил)

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

#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; // индекс, для массива Светодиодов. 
int Relay1Pin = 1;   //Изменить на свои пины реле
int Relay2Pin = 2;
int but1Pin = 3;     // Изменить на свои пины кнопок(подключить между пином и GND)
int but2Pin = 4;     
int pause = 1000;    // Изменить на время задержки в мс
void setup() {

  Serial.begin(9600);     // Initialize serial communications with the PC.
  Serial.println("Prilozhite kartu / Waiting for card...");
pinMode(Relay1Pin,OUTPUT);
pinMode(Relay2Pin,OUTPUT);
pinMode(but1Pin,INPUT_PULLUP);
pinMode(but2Pin,INPUT_PULLUP);
  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"); 
    digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){}
    digitalWrite(Relay2Pin,LOW);
    // поворачиваем servo на 170 градусов.
    dimkaservo.write(170);  
  }


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


  else if (uidDec == 695670870)
  {
    digitalWrite(ledPins[2], HIGH);
    Serial.println("Hi Peter");
        digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){}
    digitalWrite(Relay2Pin,LOW);
    dimkaservo.write(170);   
  }


  else if (uidDec == 695670614)
  {
    digitalWrite(ledPins[3], HIGH);
    Serial.println("Hi Vasily");
        digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){}
    digitalWrite(Relay2Pin,LOW);
    dimkaservo.write(170);   
  }


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

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

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

 

art100
Offline
Зарегистрирован: 09.03.2014

Стоп стоп стоп.

1.Деньги вперед.

2.Сумма равна стоимости промышленного варианта + разработка = минимум 6000 рублей российских.

3.Вероятность успеха классическая 50%.

Заказчик потратит денег больше и еще время потеряет.

 

эд
Offline
Зарегистрирован: 02.05.2015

Yarik.Yar пишет:

 

потавил вои пины и максимум что происходит открывается одна релюха

#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[] = {
  6,8,};
int LedPinSindex; // индекс, для массива Светодиодов. 
int Relay1Pin = 4;   //Изменить на свои пины реле
int Relay2Pin = 5;
int but1Pin = 3;     // Изменить на свои пины кнопок(подключить между пином и GND)
int but2Pin = 2;     
int pause = 1000;    // Изменить на время задержки в мс
void setup() {

  Serial.begin(9600);     // Initialize serial communications with the PC.
  Serial.println("Prilozhite kartu / Waiting for card...");
pinMode(Relay1Pin,OUTPUT);
pinMode(Relay2Pin,OUTPUT);
pinMode(but1Pin,INPUT_PULLUP);
pinMode(but2Pin,INPUT_PULLUP);
  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"); 
    digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){}
    digitalWrite(Relay2Pin,LOW);
    // поворачиваем servo на 170 градусов.
    dimkaservo.write(170);  
  }


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


  else if (uidDec == 695670870)
  {
    digitalWrite(ledPins[2], HIGH);
    Serial.println("Hi Peter");
        digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){}
    digitalWrite(Relay2Pin,LOW);
    dimkaservo.write(170);   
  }


  else if (uidDec == 695670614)
  {
    digitalWrite(ledPins[3], HIGH);
    Serial.println("Hi Vasily");
        digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){}
    digitalWrite(Relay2Pin,LOW);
    dimkaservo.write(170);   
  }


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

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

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

 

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

На 3м пине какой уровень до нажатия на кнопку 1 и когда нажать на кнопку 1?

эд
Offline
Зарегистрирован: 02.05.2015

Penni пишет:

На 3м пине какой уровень до нажатия на кнопку 1 и когда нажать на кнопку 1?

что значит уровень? после активации системы запускается первое реле и роботает до тех пор пока не будет нажата первая кнопка арнуинка делает настраеваемую паузу и активирует вторую реле до тех пор пока не будет нажата вторая кнопка.

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

эд пишет:

потавил вои пины и максимум что происходит открывается одна релюха

Если это максимум, то цикл закручивается. Надо посмотреть уровни напряжения на пине 3. Мультиметром или цшкой любой (да хоть светодиодом с резистором) подцепиться между землей и 3м пином и посмотреть какое напряжение когда кнопка отжата и когда нажата.

эд
Offline
Зарегистрирован: 02.05.2015

щас гляну

 

эд
Offline
Зарегистрирован: 02.05.2015

Penni пишет:

эд пишет:

потавил вои пины и максимум что происходит открывается одна релюха

Если это максимум, то цикл закручивается. Надо посмотреть уровни напряжения на пине 3. Мультиметром или цшкой любой (да хоть светодиодом с резистором) подцепиться между землей и 3м пином и посмотреть какое напряжение когда кнопка отжата и когда нажата.

0 напряжения нет вообще

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

поставил свои пины и максимум что происходит открывается одна релюха

....и код виснет до ресета ?
кнопка 2 левая :( , под замену

а если не нажимать кнопки 1 и 2 - то код повесится... не нужно ли ввести имитацию нажатия этих кнопок по дефолту времени ?

эд
Offline
Зарегистрирован: 02.05.2015

SU-27-16 пишет:

поставил свои пины и максимум что происходит открывается одна релюха

....и код виснет до ресета ?
кнопка 2 левая :( , под замену

а если не нажимать кнопки 1 и 2 - то код повесится... не нужно ли ввести имитацию нажатия этих кнопок по дефолту времени ?

я их сейчас прото отпаяю и попробую обычным замыканием проводов попробовать

эд
Offline
Зарегистрирован: 02.05.2015

эффект нуливой! может там масив ветодиодов мешает?

поменял кнопки на 6-8 пины делаю простое замыкание проводами эффект 0

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

строку 99  из #25
while(digitalRead(but1Pin)){}
перепишите как
while(digitalRead(but1Pin)){Serial.println("........forward pressing button 1");}

строку 103  из #25
while(digitalRead(but2Pin)){}
перепишите как
while(digitalRead(but2Pin)){Serial.println("........forward pressing button 2");}

что в сериале на каждом этапе ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

строки 165....168 - не там стоят.... делей на 10 сек всё портит...
наверное нужно перенести эти строки в каждый блок ?
.....в строки 106А , 106B , 106C , 106D ( и так по каждому подписанному юзеру )

эд
Offline
Зарегистрирован: 02.05.2015

SU-27-16 пишет:

что в сериале на каждом этапе ?

???????

MFRC522 mfrc522(SS_PIN, RST_PIN);  // объект MFRC522C / reate MFRC522 instance.

выдал ош..ку и выдилил эту троку

эд
Offline
Зарегистрирован: 02.05.2015

SU-27-16 пишет:

строки 165....168 - не там стоят.... делей на 10 сек всё портит...
наверное нужно перенести эти строки в каждый блок ?
.....в строки 106А , 106B , 106C , 106D ( и так по каждому подписанному юзеру )

непонел в какой блок?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

в конец блоков кода :
93...106 для Димы
113...122 для Сергея
128...137 для Пети
-"-"-"-"-"-

MFRC522 mfrc522(SS_PIN, RST_PIN);  // объект MFRC522C / reate MFRC522 instance.
....где-то проводок отвалился

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

#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 Светодиодов, для визуального контроля.
//*************************************************************
byte ledPins[] = {6,8,};
byte LedPinSindex; // индекс, для массива Светодиодов. 
byte Relay1Pin = 4;   //Изменить на свои пины реле
byte Relay2Pin = 5;
byte but1Pin = 3;     // Изменить на свои пины кнопок(подключить между пином и GND)
byte but2Pin = 2;     
int pause = 1000;    // Изменить на время задержки в мс
void setup() {

  Serial.begin(9600);     // Initialize serial communications with the PC.
  Serial.println("Prilozhite kartu / Waiting for card...");
pinMode(Relay1Pin,OUTPUT);
pinMode(Relay2Pin,OUTPUT);
pinMode(but1Pin,INPUT_PULLUP);
pinMode(but2Pin,INPUT_PULLUP);
  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"); 
    digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){Serial.println("........forward pressing button 1");}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){Serial.println("........forward pressing button 2");}
    digitalWrite(Relay2Pin,LOW);
    // поворачиваем servo на 170 градусов.
    dimkaservo.write(170);  
  delay(10000); // пауза 10 секунды.
  dimkaservo.write(10); // возвращаем servo обратно.
  // и выключим все светодиоды.
  for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],LOW);  
  }
  else  // если "UID" номер карты не совпал.
  {
    // включим все светодиоды.
    for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],HIGH);
    Serial.println("Neizvestnaja karta / unknown card");  
  }
}  

в парке... монитор бликует , ничё не видно , мог и ошибиться :(

эд
Offline
Зарегистрирован: 02.05.2015

SU-27-16 пишет:


#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 Светодиодов, для визуального контроля.
//*************************************************************
byte ledPins[] = {6,8,};
byte LedPinSindex; // индекс, для массива Светодиодов. 
byte Relay1Pin = 4;   //Изменить на свои пины реле
byte Relay2Pin = 5;
byte but1Pin = 3;     // Изменить на свои пины кнопок(подключить между пином и GND)
byte but2Pin = 2;     
int pause = 1000;    // Изменить на время задержки в мс
void setup() {

  Serial.begin(9600);     // Initialize serial communications with the PC.
  Serial.println("Prilozhite kartu / Waiting for card...");
pinMode(Relay1Pin,OUTPUT);
pinMode(Relay2Pin,OUTPUT);
pinMode(but1Pin,INPUT_PULLUP);
pinMode(but2Pin,INPUT_PULLUP);
  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"); 
    digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){Serial.println("........forward pressing button 1");}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){Serial.println("........forward pressing button 2");}
    digitalWrite(Relay2Pin,LOW);
    // поворачиваем servo на 170 градусов.
    dimkaservo.write(170);  
  delay(10000); // пауза 10 секунды.
  dimkaservo.write(10); // возвращаем servo обратно.
  // и выключим все светодиоды.
  for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],LOW);  
  }
  else  // если "UID" номер карты не совпал.
  {
    // включим все светодиоды.
    for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],HIGH);
    Serial.println("Neizvestnaja karta / unknown card");  
  }
}  

в парке... монитор бликует , ничё не видно , мог и ошибиться :(

ну вот теперь обе релюхи включаются и не выключаються серво молчит кнопки не работают:(((

эд
Offline
Зарегистрирован: 02.05.2015
#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 Светодиодов, для визуального контроля.
//*************************************************************
byte ledPins[] = {6,8,};
byte LedPinSindex; // индекс, для массива Светодиодов. 
byte Relay1Pin = 4;   //Изменить на свои пины реле
byte Relay2Pin = 5;
byte but1Pin = 3;     // Изменить на свои пины кнопок(подключить между пином и GND)
byte but2Pin = 2;     
int pause = 1000;    // Изменить на время задержки в мс
void setup() {

  Serial.begin(9600);     // Initialize serial communications with the PC.
  Serial.println("Prilozhite kartu / Waiting for card...");
pinMode(Relay1Pin,OUTPUT);
pinMode(Relay2Pin,OUTPUT);
pinMode(but1Pin,INPUT_PULLUP);
pinMode(but2Pin,INPUT_PULLUP);
  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"); 
    digitalWrite(Relay1Pin,HIGH);
   while(digitalRead(but1Pin)){Serial.println("........forward pressing button 1");}
    delay(pause);
    digitalWrite(Relay1Pin,LOW);
    digitalWrite(Relay2Pin,HIGH);
    while(digitalRead(but2Pin)){Serial.println("........forward pressing button 2");}
    digitalWrite(Relay2Pin,LOW);
    // поворачиваем servo на 170 градусов.
    dimkaservo.write(170);  
  delay(10000); // пауза 10 секунды.
  dimkaservo.write(10); // возвращаем servo обратно.
  // и выключим все светодиоды.
  for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],LOW);  
  }
  else  // если "UID" номер карты не совпал.
  {
    // включим все светодиоды.
    for(LedPinSindex = 0; LedPinSindex <= 3; LedPinSindex++)digitalWrite(ledPins[LedPinSindex],HIGH);
    Serial.println("Neizvestnaja karta / unknown card");  
  }
}  

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

а в Сериале что ?

эд
Offline
Зарегистрирован: 02.05.2015

SU-27-16 пишет:

а в Сериале что ?

нуливая реакция. нечегошеньки.

эд
Offline
Зарегистрирован: 02.05.2015

Puhlyaviy пишет:
Гыыы. Я буду гарантией. Деньги вперед. Код сюды после получения оплаты. Если он не напишет. Я напишу его бесплатно.

ну! и! он его не написал!!)))

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

эд пишет:

Puhlyaviy пишет:
Гыыы. Я буду гарантией. Деньги вперед. Код сюды после получения оплаты. Если он не напишет. Я напишу его бесплатно.

ну! и! он его не написал!!)))


Он его написал! Ровно что спросили, ровно то и написал! А что, куда и как вы там подключаете это даже в хрустальном шаре не видно.
Реле от старого холодильнике? Провода 25 метров ?

Пуско-наладочные работы от 500 баксов. Оплачивайте в кассу и будет смотреть.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Привет всем. вернулся. какие проблемы с кодом?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Yarik.Yar пишет:

Привет всем. вернулся. какие проблемы с кодом?


С кодом никаких, все согласно тз.
Ждемс когда будет оплата за пуско-наладочные работы. :)

эд
Offline
Зарегистрирован: 02.05.2015

Yarik.Yar пишет:

Привет всем. вернулся. какие проблемы с кодом?

да нефига не работает!

эд
Offline
Зарегистрирован: 02.05.2015

Puhlyaviy пишет:
эд пишет:

Puhlyaviy пишет:
Гыыы. Я буду гарантией. Деньги вперед. Код сюды после получения оплаты. Если он не напишет. Я напишу его бесплатно.

ну! и! он его не написал!!)))

Он его написал! Ровно что спросили, ровно то и написал! А что, куда и как вы там подключаете это даже в хрустальном шаре не видно. Реле от старого холодильнике? Провода 25 метров ? Пуско-наладочные работы от 500 баксов. Оплачивайте в кассу и будет смотреть.

бог подаст!

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Ну тогда молитесь что бы заработало. :)
С кодом все нормально, согласно тз все работает.