Запуск двигателя постоянного тока в течение заданного промежутка времени
Я пытаюсь запустить двигатель постоянного тока на 100 мс, а затем полностью выключить его. Вот мой код, есть какие-нибудь предложения о том, почему он может не работать?
Мой Код
const int pirPin = 9;
const int motorPin = 2;
int switchState = 0;
// процедура настройки запускается один раз, когда вы нажимаете сброс:
void setup() {
// инициализируйте цифровой вывод в качестве выходного сигнала.
pinMode(motorPin , OUTPUT);
pinMode(pirPin, INPUT);
}
void loop() {
while (digitalRead(pirPin) == HIGH) {
digitalWrite(motorPin, HIGH);
delay(100);
digitalRead(pirPin) == LOW;
break;
}
}
@Erin Rehm, 👍0
Обсуждение1 ответ
▲ 1
#include <Arduino.h>
const int pirPin = 9;
const int motorPin = 2;
int switchState = 0;
// процедура настройки запускается один раз, когда вы нажимаете сброс:
void setup()
{
// инициализируйте цифровой вывод в качестве выходного сигнала.
pinMode(motorPin, OUTPUT);
pinMode(pirPin, INPUT);
}
void loop()
{
while (digitalRead(pirPin) == HIGH)//эта часть кода выполняется, если pir
//контакт считывается высоко
{
digitalWrite(motorPin, HIGH);// вывод двигателя установлен на высоком уровне, поэтому, если двигатель подключен
// двигатель начнет вращаться.
}
while (digitalRead(pirPin) == LOW)//эта часть кода выполняется, если pir
// контакт считывается низко
{
delay(100);// таким образом, ваш двигатель останавливается после работы в течение дополнительных 0,1 секунды
digitalWrite(motorPin, LOW);// вывод становится низким, и двигатель должен перестать вращаться
}
}
Я прокомментировал все строки
Надеюсь, это поможет.
,
@xbox gamer
Смотрите также:
- Как повторить код
- Как получить текущее время и дату в Arduino без внешнего источника?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как запустить цикл на определенное время?
- Как устранить шум от вентилятора 12 В с ШИМ-управлением на низкой скорости
- Почему мои часы реального времени показывают неверное время с моего ПК?
- Разница между «time_t» и «DateTime»
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
Каково напряжение двигателя постоянного тока, используете ли вы какую-либо микросхему драйвера или транзистор, потому что, если вы их не используете, это также может повредить ваш arduino. Не могли бы вы, пожалуйста, также поделиться своими связями, @Maaz Sk
Итак, чего вы точно хотите, так это того, чтобы двигатель работал, когда значение pirpin высокое, и он должен продолжать работать еще 100 мс после того, как значение станет низким, @xbox gamer
Пожалуйста, поделитесь правильным кодом, а не картинкой. Дозировать запуск двигателя?, @xbox gamer
Пожалуйста, объясните, как двигатель должен реагировать на pirPin. Кроме того, взгляните на digitalRead(pirPin) == LOW; который будет принимать значение true или false и нигде не используется., @ocrdu
Итак, вам нужно объяснить, как двигатель будет реагировать на вывод pir, и вы хотите запустить двигатель, когда вывод pir высокий, и работать в течение 100 мс, а затем отключиться, когда вывод pir низкий, @xbox gamer
Пожалуйста, ответьте на это и скажите, вращается ли ваш двигатель в данный момент с помощью Arduino., @xbox gamer
Строка
digitalRead(pirPin) == LOW;
не имеет никакого эффекта. И вы никогда не выполняетеdigitalWrite (motorPin, LOW);
, @DataFiddlerЯ полагаю, что он думает о том, что при digitalRead(pirPin) == LOW; программа выйдет из цикла while, и двигатель перестанет вращаться, @xbox gamer