Включение двигателя и светодиода одновременно в течение заданного периода времени

Мне нужна помощь с этим кодом, я хочу, чтобы двигатель включался на определенное время и в то же время загорался светодиод, указывающий, что он включен, который также включится, как только двигатель остановится. Он управляется датчиком 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 
}

, 👍2


2 ответа


1

Если вы просто хотите, чтобы светодиод включался вместе с двигателем, затем введите пару инструкций digitalWrite в функцию motorOnThenOffWithSpeed, чтобы включить и выключить светодиод одновременно с включением и выключением двигателя.

,

1

Простые три шага:

  1. Подключите светодиод к контакту управления двигателем (с помощью некоторых средств для ограничения тока).

  2. Запрограммируйте свой штифт управления двигателем, чтобы включить или выключить его по своему желанию.

  3. Сядьте поудобнее и наслаждайтесь.

,