У меня есть 2 кода Arduino, которые работают отдельно ... но я понятия не имею, как их объединить

2020-08-01 arduino servo

Код # 1) 2 светодиода красный и зеленый Зеленый светодиод горит 4 секунды, затем 4 секунды. Красный светодиод горит в течение 4 секунд, затем горит в течение 4 секунд. затем код повторяется.

int  LedR = 10;
int  LedG = 11;

void setup() {
// put your setup code here, to run once:
pinMode (LedR, OUTPUT);
pinMode (LedG, OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite (LedG, HIGH); //Light Greed Led
delay (4000); //delay 4s

digitalWrite(LedG, LOW);//Low Greed Led

delay (4000); //delay 4s

digitalWrite(LedR, HIGH);//Light Red Led

delay (4000); //delay 4s

digitalWrite (LedR, LOW); //Low Greed Led
delay (4000); //delay 4s`



}`

Код # 2)

Сервопривод поворачивается на 20 градусов, ждет 4 секунды, возвращается на 0 градусов, ждет 4 секунды, затем повторяется.

#include <Servo.h> 

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
myservo.attach(9);  // attaches the servo on pin 9 to the servo object

}


void loop() {

delay(4000);
             

for (pos = 0; pos <= 20; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos);              // tell servo to go to position in variable 'pos'
delay(15);                       // waits 15ms for the servo to reach the position
}delay(4000);

for (pos = 20; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos);              // tell servo to go to position in variable 'pos'
delay(15);                       // waits 15ms for the servo to reach the position

}
}`

Оба кода работают независимо, но их невозможно интегрировать, так как Arduino не поддерживает несколько циклов.

Я безуспешно пытался изучить функцию millis.

Есть ли способ заставить светодиоды загораться последовательно одновременно с вращением сервопривода?

Пожалуйста, помогите мне. это код, который не работает #include <Servo.h>

    Servo myservo;  // create servo object to control a servo
    // twelve servo objects can be created on most boards
    
    int pos = 0;    // variable to store the servo position
    int  LedR = 10;
      int  LedG = 11;
    
    void setup() {
      myservo.attach(9);  // attaches the servo on pin 9 to the servo object
      pinMode (LedR,OUTPUT);
    pinMode (LedG,OUTPUT);
      
    }
    
    
    void loop() {
    
      digitalWrite (LedG, HIGH); //Light Greed Led 
    delay (4000); //delay 4s
    
    digitalWrite(LedG, LOW);//Low Greed Led
    
    delay (4000); //delay 4s
    
    digitalWrite(LedR, HIGH);//Light Red Led
    
    delay (4000); //delay 4s
    
    digitalWrite (LedR, LOW); //Low Greed Led
    
    delay (4000); //delay 4s
      
      delay(4000);
                     
      
      for (pos = 0; pos <= 20; pos += 1) { // goes from 0 degrees to 180 degrees
        // in steps of 1 degree
        myservo.write(pos);              // tell servo to go to position in variable 'pos'
        delay(15);                       // waits 15ms for the servo to reach the position
      }delay(4000);
      
      for (pos = 20; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
        myservo.write(pos);              // tell servo to go to position in variable 'pos'
        delay(15);                       // waits 15ms for the servo to reach the position
        
      }
    }

Answers

Related