Помогите разобраться...

Maxik777
Offline
Зарегистрирован: 09.04.2012

 Доброго времени суток! Собрал себе Arduino,на 328-й меге, помигал светодиодом, возник вопрос в написании кода для двух
светодиодов. Задача такая, один светодиод плавно зажигается, другой в это время, плавно тухнет и по достижении крайних пределов, всё плавно меняется наоборот и так по кольцу. Голову сломал, как это реализовать? Получилось только плавно зажечь один и в это время плавно потушить второй, но потом тот который зажегся, резко тухнет, а которыый потух, резко вспыхивает.

int RedledPin = 9; // RedLED connected to digital pin 9
int GreenledPin = 10; // GreenLED connected to digital pin 10
int Redled = 5;
int Greenled = 250;
int i = 5;


void setup() { 
// nothing happens in setup 
} 

void loop() { 

if (Redled > 0 || Greenled < 255) { 

analogWrite(RedledPin, Redled);
analogWrite(GreenledPin, Greenled); 
Redled = Redled + i;
Greenled = Greenled - i;
// wait for 30 milliseconds to see the dimming effect 
delay(30); 
} 
}

 

step962
Offline
Зарегистрирован: 23.05.2011

 Попробуйте так:

int RedledPin = 9; // RedLED connected to digital pin 9
int GreenledPin = 10; // GreenLED connected to digital pin 10
int Redled = 5;
int Greenled = 250;
int i = 5;
int stepRed=5,stepGreen=-5;

void setup() { 
// nothing happens in setup 
} 

void loop() { 

  analogWrite(RedledPin, Redled);
  analogWrite(GreenledPin, Greenled); 

  Redled = Redled + stepRed;
  Greenled = Greenled + stepGreen;
  if(Redled<=5 || Redled>=250) stepRed=-stepRed;
  if(Greenled<=5 || Greenled>=250) stepGreen=-stepGreen;
  
// wait for 30 milliseconds to see the dimming effect 
  delay(30); 
}

 

Maxik777
Offline
Зарегистрирован: 09.04.2012

 Спасибо за помошь! Всё замечательно работает, Мне было не понятно, как организовать псевдо-параллельную работу, а везде простые примеры в основном с одним диодом. Ещё раз большое спасибо!!!