Сервопривод не движется с датчиком движения PIR
Я работаю над этим кодом, чтобы включить сервопривод, когда датчик движения PIR не обнаруживает движения, но он не работает. Некоторые симптомы включают:
- Сервопривод вращается очень медленно
- PIR не поворачивает сервопривод
- Сервопривод поворачивается под неправильным углом
Я пробовал тестовые программы, и когда я набираю последовательный монитор, сервопривод вращается (медленно и неточно) (я запрограммировал последовательный монитор для этого). У меня есть вход от датчика PIR, но он постоянно высокий, даже после ожидания его инициализации в течение 2 минут. Мой код и схема показаны ниже.
Мой код:
#include <Servo.h>
Servo servo;
void setup() {
// put your setup code here, to run once:
servo.attach(13);
pinMode(2, INPUT);
Serial.begin(9600);
Serial.println("Please wait");
delay(60000);
}
void ifMos() {
if (digitalRead(2) == HIGH) {
int USER = 270;
}
}
void loop() {
// put your main code here, to run repeatedly:
int USER = Serial.parseInt();
servo.write(USER);
Serial.println(USER);
ifMos();
delay(10000);
}
@Brayden, 👍0
Обсуждение1 ответ
пока что подумайте о сервоприводе... напишите простейший код, который зажигает светодиод при обнаружении движения – -jsotola
Это сработало! Большое спасибо. Все, что мне нужно было сделать, это добавить библиотеку сервоприводов, записать в сервопривод и загрузить его. Всего 21 строчка кода! Окончательный код:
#include <Servo.h>
Servo servo;
void setup() {
// поместите сюда код установки для однократного запуска:
pinMode(2, INPUT);
pinMode(3, OUTPUT);
servo.attach(13);
}
void loop() {
// поместите сюда ваш основной код для многократного запуска:
if(digitalRead(2) == HIGH) {
digitalWrite(3, HIGH);
servo.write(270);
}
else {
digitalWrite(3, LOW);
servo.write(0);
}
}
Спасибо всем. Это была моя первая публикация на бирже стека, и она имела огромный успех. Еще раз спасибо!
- Мотор для лебедки (с контроллером и внешним блоком питания)
- myservo' не называет тип
- Использование ВСЕХ аналоговых выводов на Mega для Servo
- Бесщеточный двигатель "дергается" сам по себе при подключении к батарее
- Сервопривод начинает вращаться всякий раз, когда он подключен
- Невозможно найти модуль PCA9685 при использовании библиотеки I2CScanner: нет движения сервопривода.
- неопределенная ссылка на `Servo::Servo()' в пользовательской библиотеке
- Как разделить входящую строку?
пока позабудь о сервоприводе... напиши простейший код, который зажигает светодиод при обнаружении движения, @jsotola