Включение двигателя и светодиода одновременно в течение заданного периода времени
Мне нужна помощь с этим кодом, я хочу, чтобы двигатель включался на определенное время и в то же время загорался светодиод, указывающий, что он включен, который также включится, как только двигатель остановится. Он управляется датчиком TECT5000, который действует как переключатель для передачи сигнала на двигатель и светодиод.
В данный момент я могу заставить двигатель включаться и выключаться в течение определенного времени, но не светодиод. Каждый раз, когда я активирую цепь с датчиком, она включается и остается включенной или включается и остается включенной. Вот текущий код, который я использую.
// Program: Led drive using reflective optical sensor
// Author: Arduino e Cia
int outgoingsignal = 8 ; // Pin of led
int pinsensor = 7 ; // Connected to the "collector" pin of the optical sensor
int reading; // Stores information about sensor reading
int statusled = 0 ;
int motorPin = 9; // define the pin the motor is connected to
// (if you use pin 9,10,11 or 3you can also control speed)
// Stores led status (on / off)
void setup ()
{
pinMode (outgoingsignal, OUTPUT); // Defines the led pin as
pinMode (pinsensor, INPUT); // Defines the sensor pin as input
pinMode(motorPin, OUTPUT);
}
void loop ()
{
// Le the sensor pin information
reading = digitalRead (pinsensor);
if (reading != 1 ) // Checks if the object was detected
{
while (digitalRead (pinsensor)!= 1)
{
delay (100);
}
statusled =! statusled;
// Reverses the status of the led (on / off)
// Turns on or off the led as "statusled"
digitalWrite (outgoingsignal, statusled);
motorOnThenOffWithSpeed(); }
}
void motorOnThenOffWithSpeed(){
int onSpeed = 255; // a number between 0 (stopped) and 255 (full speed)
int onTime = 2500; //the number of milliseconds for the motor to turn on for
int offSpeed = 0; // a number between 0 (stopped) and 255 (full speed)
//int offTime = 1000; //the number of milliseconds for the motor to turn off for
analogWrite(motorPin, onSpeed); // turns the motor On
delay(onTime); // waits for onTime milliseconds
analogWrite(motorPin, offSpeed); // turns the motor Off
// delay(offTime); // waits for offTime milliseconds
}
@Alexanda Maryan, 👍2
2 ответа
Если вы просто хотите, чтобы светодиод включался вместе с двигателем, затем введите пару инструкций digitalWrite в функцию motorOnThenOffWithSpeed, чтобы включить и выключить светодиод одновременно с включением и выключением двигателя.
Простые три шага:
Подключите светодиод к контакту управления двигателем (с помощью некоторых средств для ограничения тока).
Запрограммируйте свой штифт управления двигателем, чтобы включить или выключить его по своему желанию.
Сядьте поудобнее и наслаждайтесь.
- Как повторить другое действие внутри цикла?
- Код для реализации простого сигнала светофора, а также отображения на ЖК-дисплее, какой цвет включен?
- Работа с мультиплексорами для получения постоянного напряжения на выходе
- Включение и выключение двух наборов светодиодов с помощью двух кнопок
- подключение светодиода к DHT и кодовой комбинации
- Почему следующий код не заставляет светодиоды мигать, а горит постоянно?
- Состояние в цикле while не обновляется на моем mkr1010
- Хочу оптимизировать этот код и добавить цикл