Помогите объединить 2 скетча в 1

radio-active
Offline
Зарегистрирован: 31.03.2017

Люди, помогите объединить 2 скетча.

Есть RFID приемник, и есть BT модуль. Управляют они релюхами. 

По отдельности - работают.

Заливаю в один - не работает 2-я часть с BT.

#include <SPI.h>
#include <MFRC522.h> // библиотека "RFID".
#define SS_PIN 10
#define RST_PIN 9

int val;             // BT
int n=1;             // цикл откр/закр с RFID
int LOCK = 4;        // 4 вывод закрывает
int UNLOCK = 5;      // 5 вывод открывает
int SER = 6;         // 6 вывод сервис *
int IMMO = 7;        // 7 вывод на обход IMMO

MFRC522 mfrc522(SS_PIN, RST_PIN);
unsigned long uidDec, uidDecTemp;  // для храниения номера метки в десятичном формате

void setup() {
  
  pinMode(LOCK, OUTPUT);
  digitalWrite(LOCK, HIGH);       // Задаем изначально "+" так как реле управляется "-", по умолчанию - отключено
  pinMode(UNLOCK, OUTPUT);
  digitalWrite(UNLOCK, HIGH);
  pinMode(SER, OUTPUT);
  digitalWrite(SER, HIGH);
  pinMode(IMMO, OUTPUT);
  digitalWrite(IMMO, HIGH);
 
  Serial.begin(9600);
  Serial.println("Waiting for card...");
  SPI.begin();             //  инициализация SPI / Init SPI bus.
  mfrc522.PCD_Init();      // инициализация MFRC522 / Init MFRC522 card.
}
  void loop() 
  {
  // Работа с RFID //////////////////////////////////////////////
  // Поиск новой метки
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
  // Выбор метки
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }
  uidDec = 0;
  // Выдача серийного номера метки.
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
    uidDecTemp = mfrc522.uid.uidByte[i];
    uidDec = uidDec * 256 + uidDecTemp;
  }
  Serial.println("Card UID: ");
  Serial.println(uidDec); // Выводим UID метки в консоль.
 { 
      ++n;                       // 1 нажатие - открыть, 2 нажатие - закрыть
      if (n>2) n=1;
    }
  if (uidDec == 2687440508 || uidDec == 705036399 || uidDec == 1259499323 || uidDec == 988152175) // Сравниваем Uid метки. 
      // 2687440508 - карта
      // 1259499323 - синий браслет
      // 705036399 - оранжевый
      // 988152175 - синий большой
    
    switch(n) 
      { 
      case 1:
      digitalWrite(UNLOCK, LOW); //открыть 
      delay(200);
      digitalWrite(UNLOCK, HIGH);
      digitalWrite(IMMO, LOW);  // отключение IMMO (подаем "-" на вывод)
      delay(2000);
      break;
      case 2:
      digitalWrite(LOCK, LOW);  //закрыть
      delay(200);
      digitalWrite(LOCK, HIGH);
      digitalWrite(IMMO, HIGH);  // включение IMMO (отключаем "-" на выводе)
      delay(2000);
      break;
      } 
      else                      // если ключ-карта не прописана, сирена сигналит
      {
      digitalWrite(SER, LOW);
      delay(200);
      digitalWrite(SER, HIGH);  
      delay(200);
      digitalWrite(SER, LOW);
      delay(200);
      digitalWrite(SER, HIGH);
      delay(2000);
      }
  }

И ДЛЯ BlueTooth
int val;
int LOCK = 4;        // 4 вывод закрывает
int UNLOCK = 5;      // 5 вывод открывает
int SER = 6;         // 6 вывод сервис *
int IMMO = 7;        // 7 вывод на обход IMMO

void setup()
{
  Serial.begin(9600);
  pinMode(LOCK, OUTPUT);
  digitalWrite(LOCK, HIGH);       // Задаем изначально "+" так как реле управляется "-", по умолчанию - отключено
  pinMode(UNLOCK, OUTPUT);
  digitalWrite(UNLOCK, HIGH);
  pinMode(SER, OUTPUT);
  digitalWrite(SER, HIGH);
  pinMode(IMMO, OUTPUT);
  digitalWrite(IMMO, HIGH);
}
void loop()
{
  if (Serial.available())
  {
    val = Serial.read();
   // При символе "1" закрываем машину
    if (val == '1')
    {
      digitalWrite(LOCK, LOW);  //закрыть
      delay(200);
      digitalWrite(LOCK, HIGH);
      digitalWrite(IMMO, HIGH);  // включение IMMO (отключаем "-" на выводе)
      delay(1000);
    }
    // При символе "2" открываем машину
    if ( val == '2')
    {
      digitalWrite(UNLOCK, LOW); //открыть 
      delay(200);
      digitalWrite(UNLOCK, HIGH);
      digitalWrite(IMMO, LOW);  // отключение IMMO (подаем "-" на вывод)
      delay(1000);
    }
    // При символе "3" запускаем мотор
    if ( val == '3')
    {
      digitalWrite(LOCK, LOW); 
      delay(1000);
      digitalWrite(LOCK, HIGH);
      delay(200);
      digitalWrite(SER, LOW); 
      delay(300);
      digitalWrite(SER, HIGH);
      delay(1000);
      
    }
    // При символе "4" глушим мотор
    if ( val == '4')
    {
      digitalWrite(UNLOCK, LOW); 
      delay(1000);
      digitalWrite(UNLOCK, HIGH);
      delay(200);
      digitalWrite(SER, LOW); 
      delay(300);
      digitalWrite(SER, HIGH);
      delay(1000);
    }
  }
}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Эти скетчи не приспособлены для объединения с другими. Их надо переисать аналогично blink without delay.

radio-active
Offline
Зарегистрирован: 31.03.2017

Да вы что, я эти еле написал.... Я сам точно не справлюсь..... Ну хоть пример четкий дайте!

И кстати, эти два скетча не обязательно должны работать одновременно.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

radio-active пишет:

И кстати, эти два скетча не обязательно должны работать одновременно.

А зачем их тогда объединять? Залейте один. Поработает, потом залейте другой.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Давненько такой темы(Помогите объединить 2 скетча в 1) не было. В общем так. Если скетчи не объединяются , то одна или обе  являюся "говнокодом". А раз так. То и мучатся не стоит. Спасибо господину Джереми Блюму за развитие говнокодинга. 

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

qwone пишет:

Давненько такой темы(Помогите объединить 2 скетча в 1) не было. В общем так. Если скетчи не объединяются , то одна или обе  являюся "говнокодом". А раз так. То и мучатся не стоит. Спасибо господину Джереми Блюму за развитие говнокодинга. 

давно, и вот опять!

radio-active
Offline
Зарегистрирован: 31.03.2017

Всем "спасибо за помощь".

В очередной раз все поумничали и толком ничего....

Уже разобрался сам, все работает. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

radio-active пишет:

Уже разобрался сам, все работает. 

Вот и молодец! Сразу бы так! И нахрена было постить сюда что-то?

radio-active
Offline
Зарегистрирован: 31.03.2017

ЕвгенийП пишет:

radio-active пишет:

Уже разобрался сам, все работает. 

Вот и молодец! Сразу бы так! И нахрена было постить сюда что-то?

Думал форум - для помощи и взаимовыручки. Хотел выслушать предложения людей, кто разбирается. Может я и не совсем коректно сделал. А тут в итоге абы поумничать, а на деле - 0. Прочитав много тем на этом форуме понял, чо разбираются тут в деле 2-3 человека, а остальные только умничают...

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

radio-active пишет:

форум - для ... взаимовыручки.

Вот я - всегда готов прийти на выручку, Была бы выручка.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

radio-active пишет:

Думал форум - для помощи и взаимовыручки. 

Ошибались. Форум - для общения по интересам.

А какой интерес, например, фанату-механику отвечать на вопрос "в какую сторону гайку закручивать"? Ответить он, конечно, может, но скажите честно, по-Вашему такое общение ему интересно?

Так и здесь. Старожилам форума неинтересно отвечать на вопросы, подобные Вашем. Извините, что Вам не угодили.

Тривиальные вещи нужно узнавать самостоятельно. А когда у Вас появятся нетривиальные вопросы и общаться с Вами станет интересно - милости просим, пообщаемся.