Помогите с Замком
- Войдите на сайт для отправки комментариев
Пт, 21/02/2020 - 18:46
Хочу что бы при прикладывание второй раз карты серво менял угол ничего не получается,не понимаю почему,в нете инфы не нашел #include <Servo.h> #include <MFRC522.h> // библиотека "RFID". int ser; #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); unsigned long uidDec, uidDecTemp; // для храниения номера метки в десятичном формате Servo servo; void setup() { Serial.begin(9600); Serial.println("Waiting for card..."); SPI.begin(); // инициализация SPI / Init SPI bus. mfrc522.PCD_Init(); // инициализация MFRC522 / Init MFRC522 card. servo.attach(5); } void loop() { // Поиск новой метки 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 метки в консоль. Serial.println(ser); if (uidDec == 859633691&&ser==0) // Сравниваем Uid метки, если он равен заданому то серва открывает. { ser=1; servo.write(0); delay(3000); } else { if (uidDec == 859633691&&ser==1) // Сравниваем Uid метки, если он равен заданому то серва открывает. { ser=0; servo.write(180); delay(3000); } }
А что получается?
он закрывает обратно, я наверное не так описал, хочу что бы при первом прикладывании серво имел угол = 0
и если угол = 0 то при повторном прикладывании угол был равен 180, и если угол = 180 то прикладывании карты угол равен 0
Закрывает или раскрывает - вопрос второй. Серва крутится в разные стороны или нет?
При каждом прикладывании меняй переменную ugol: если она 0, то клади в нее 180, иначе 0. А потом подсовывай этот ugol в функцию servo.write()
Так ?
Внутри блока if(Uid==xxxxxx) {} ещё один if(ugol==180) ugol =0 else ugol =180 и потом углом корми серву. Один раз.
Так ?
Спасибо БОЛЬШОЕ.