Я работаю над сайд-проектом, в котором при обнаружении движения ИК-датчиком двигатели постоянного тока (2х) включаются на 5 секунд, а затем отключаются. И если движение прекратилось, двигатели постоянного тока отключатся.
Так что моя проблема в том, что я не достигаю желаемых результатов, о которых я только что упомянул выше. С моей точки зрения, кажется, что мой датчик движения просто выключается и включается самостоятельно, а двигатели постоянного тока ведут себя так, как должно быть при работе в течение 5 секунд, но датчик движения говорит, что движение есть, несмотря на то, что движение, которое заставляет двигатели постоянного тока работать. Двигатели постоянного тока должны работать, когда есть движение.
Я попробовал это точное оборудование и компоненты на другом Arduino UNO и макете, похоже, проблема связана с кодом.
Я также попытался сделать шаг назад и посмотреть, смогу ли я включить детектор движения, чтобы включить светодиод. В мониторе последовательного порта, похоже, обнаруживается, что обнаруживается движение, но на самом деле его нет.
Я также пытался настроить потенциометр на ИК-датчике, а также (настроить чувствительность и время) его. Я также попытался переключить «повторяемый» триггер и «неповторяемый» триггер и посмотреть, не было ли это проблемой.
Я попытался заменить батарею на 9 В, чтобы проверить, не влияет ли это на работу двигателей постоянного тока.
Я также дважды проверил и убедился, что каждый провод был в правильном положении.
На данный момент ниже приведен последовательный монитор ... для данного кода, который я предоставил. Это то, что он предоставляет мне. ** Имейте в виду, что я не помещаю никаких движений в блок Arduino, и по какой-то странной причине он обнаруживает, что есть движение.
Вот что показывает последовательный монитор ...
2:31:43.219 -> Motors are ON
02:31:43.219 -> Motion detected!
02:31:48.215 -> Motors are ON
02:31:48.249 -> Motors are OFF
02:31:48.249 -> Motion stopped!
02:31:53.232 -> Motors are ON
02:31:53.232 -> Motion detected!
02:31:58.220 -> Motors are ON
02:31:58.253 -> Motors are OFF
02:31:58.253 -> Motion stopped!
02:32:03.238 -> Motors are ON
02:32:03.238 -> Motion detected!
02:32:08.230 -> Motors are ON
02:32:08.265 -> Motors are OFF
02:32:08.265 -> Motion stopped!
const int switchMotion=2;
const int motorPin=9;
const int motorPinB=8;
int motionState=0;
int motionDetected = LOW;
void setup() {
//Selecting as an input and output the switch and the motor
pinMode(switchMotion,INPUT);
pinMode(motorPin,OUTPUT);
pinMode(motorPinB, OUTPUT);
Serial.begin(9600); //Set serial out if we want debugging
delay(5000); //Allow time for the PIR Sensor to calibrate
}
void loop() {
motionState = digitalRead(switchMotion); // Reads the motion sensor
if(motionState == HIGH) // checks if Sensor is HIGH
{
digitalWrite(motorPin,HIGH); //turn on Motor A
digitalWrite(motorPinB,HIGH); //turn on Motor B
delay(5000); //runs for 5 seconds and stops
Serial.println("Motors are ON");
if (motionDetected == LOW) {
Serial.println("Motion detected!"); // print Motion Detected
motionDetected = HIGH; // update variable state to HIGH
}
else {
digitalWrite(motorPin,LOW); //turn off Motor A
digitalWrite(motorPinB,LOW); //turn off Motor B
Serial.println("Motors are OFF");
if (motionDetected == HIGH){
Serial.println("Motion stopped!");
motionDetected = LOW; // update variable state to LOW
}
}
}
}
Цель состоит в том, чтобы, когда человек находится рядом с датчиком движения PIR, двигатели постоянного тока включались на заданный период времени, а когда период времени истек, двигатели выключались, и было установлено время задержки для датчик движения, чтобы снова обнаружить движение, чтобы двигатели постоянного тока снова включились. Это должен быть постоянный цикл, когда нет движения - двигатели постоянного тока должны быть выключены. И когда есть движение - двигатели постоянного тока должны быть включены. Исключение составляет время охлаждения.
Фактические результаты таковы, что
Я ожидаю, что motionDetected будет функционировать должным образом, но когда пришло время проверить его, он считывает, что движение обнаружено / не обнаружено, несмотря на отсутствие реального движения. Я ожидаю, что датчик движения будет функционировать должным образом, чтобы двигатели постоянного тока могли соответственно включаться / выключаться.