Всем привет! Не получается сделать слияние(нуб-одним словом): Код (Text): int regim=1; int flag=0; const byte rgbPins[3] = {6,9,10}; int dim = 1; void setup() { pinMode(6,OUTPUT); pinMode(9,OUTPUT); } void loop() { if(digitalRead(2)==HIGH&&flag==0) { regim++; flag=1; if(regim>5) { regim=1; } } if(digitalRead(2)==LOW&&flag==1) { flag=0; } if(regim==1)//первый режим { digitalWrite(9,LOW); digitalWrite(6,LOW); } if(regim==2)//второй режим { digitalWrite(6,HIGH); digitalWrite(9,LOW); } if(regim==3)//третий режим { digitalWrite(9,HIGH); digitalWrite(6,LOW); } if(regim==4)//четвертый режим { digitalWrite(9,HIGH); digitalWrite(6,HIGH); } if(regim==5)//пятый режим { { for(byte i=0; i<3; i++){ pinMode( rgbPins[i], OUTPUT ); } analogWrite(rgbPins[0], 255); analogWrite(rgbPins[1], 0); analogWrite(rgbPins[2], 0); } for(int i=255; i>=0; i--){ analogWrite( rgbPins[0], i/dim ); analogWrite( rgbPins[1], (255-i)/dim ); delay(40); } for(int i=255; i>=0; i--){ analogWrite( rgbPins[1], i/dim ); analogWrite( rgbPins[2], (255-i)/dim ); delay(40); } for(int i=255; i>=0; i--){ analogWrite( rgbPins[2], i/dim ); analogWrite( rgbPins[0], (255-i)/dim ); delay(40); } } } Вот что получилось, но с 5 режима на 1 не переключается( Помогите пожалуйста!!!
Код (C++): for(int i=255; i>=0; i--){ analogWrite( rgbPins[0], i/dim ); analogWrite( rgbPins[1], (255-i)/dim ); delay(40); } // гасим зеленый, параллельно разжигаем синий for(int i=255; i>=0; i--){ analogWrite( rgbPins[1], i/dim ); analogWrite( rgbPins[2], (255-i)/dim ); delay(30); } // гасим синий, параллельно разжигаем красный for(int i=255; i>=0; i--){ analogWrite( rgbPins[2], i/dim ); analogWrite( rgbPins[0], (255-i)/dim ); delay(40); } Если это убрать, то все переключается, в чем тут может быть проблема?
Ну как Вам сказать. Сливать надо не блокирующие вещи. С блокирующими это не выходит. Вот нельзя выполнить две команды одновременно- "Стой здесь", "Иди сюда". Все потому что выполнение одной препятствует выполнению другой. И да вроде использование цифровой автомата не запрещено на территории РФ, но почему то многие это не знают или не применяют. Может мы снова в Средневековье.