Закрытие и открытие дверей
- Войдите на сайт для отправки комментариев
Чт, 16/01/2020 - 17:53
Есть два сервапривода SG90, кнопка 2шт., и датчик припятствия 1шт. хочусделать так чтобы они открывали двери мишу код но ничего не работает помогите пожалуйста!!!
#define PIR 2 #include <Servo.h> unsigned long prevMilis = 0; Servo servo1; Servo servo2; int servo = 0; #define button1 6 void setup() { Serial.begin(9600); servo1.attach(11); servo2.attach(10); pinMode(button1, INPUT_PULLUP); } void loop() { int pirVal = digitalRead(PIR); switch (servo) { case 0: { if (pirVal == HIGH) {servo1.write(0) ;} if (pirVal == HIGH) {servo2.write(0) ;} prevMilis = millis();//Засекаем время servo++; } break; case 1: if (millis() - prevMilis >= 1000)//Проверяем - прошла ли секунда { if (pirVal == LOW) {servo1.write(90);} if (pirVal == LOW) {servo2.write(90);} servo++; } break; case 3: if (digitalRead(button1) == LOW || millis() - prevMilis >= 5000)//Проверяем - нажатие кнопки или прошло время (Можно оставить только кнопу) { if (pirVal == HIGH) {servo1.write(0) ;} if (pirVal == HIGH) {servo2.write(0) ;} servo++; } break; } }
поясните, как должно работать, как оно сейчас работает - и чем отличается первое от второго
сервапривода
Не понял, что имелось в виду: "серво" или "стерва" - в каком месте опечатка?
SG90 ... чтобы они открывали двери
Если дверь не игрушечная в кукольном домике, то не думаю, что откроет.
Если дверь не игрушечная в кукольном домике, то не думаю, что откроет.
Ну почему же? Храповички, шестереночки, часа за два-три управится.)))
Человек подошел, дверь открылась, человек прошёл кнопку нажал дверь закрылась. Сервопривод SG90
Где-то просиходит задержка датчик увидел человека и дверь не хочет открываться
может я ошибаюсь но 17 строчка
servo написано
откуда берет она значения?
и там еще ошибки вроде есть много
если D2 пин может иметь 2 состояния то тогда откуда case 3 берется?
если D2 пин может иметь 2 состояния то тогда откуда case 3 берется?
это не ошибка, case и D2 никак не связаны (ну, почти не связаны :)
если D2 пин может иметь 2 состояния то тогда откуда case 3 берется?
это не ошибка, case и D2 никак не связаны (ну, почти не связаны :)
я так понял что состояние пина вкл или выкл и управляет всей этой конструкцией :)
или тогда в коде чего то не хватает получается ?
а я понял эта штука добавляет каждый раз case :)
servo++;
и эта цифра до бесконечности идет. тогда
servo должно обнуляться
я так понял что состояние пина вкл или выкл и управляет всей этой конструкцией :)
Состояние датчика (пина) и состояние двери - это два разных состояния. Они, конечно, влияют друг на друга, но это не одно и то же. Состояние датчика тут закодировано в переменной pirval. а состояние двери - в переменной servo
и эта цифра до бесконечности идет. тогда
servo должно обнуляться
т-с-сс, не все сразу, пусть ТС сам думает :)
и эта цифра до бесконечности идет. тогда
servo должно обнуляться
т-с-сс, не все сразу, пусть ТС сам думает :)
код почти рабочий. немного подправить и все :)