• Как сделать плавное включение светодиодной ленты с ИК приемника?

    a_volkov1987
    @a_volkov1987
    Инженер-схемотехник
    Да, можно просто объединить код первого и второго скетча
    #include <IRremote.h>
    #define fadePin 3
    
    int RECV_PIN = 11;
    int light;
    IRrecv irrecv(RECV_PIN);
    
    decode_results results;
    
    void setup() {
    	irrecv.enableIRIn(); // запускаем прием
    	pinMode(fadePin, OUTPUT);
    	light = 0;
    }
    
    void loop() 
    {
    	if ( irrecv.decode( &results )) 
    	{ // если данные пришли
    		switch ( results.value ) 
    		{
    			case 0xE0E0E01F:
    			{
    				if(light == 0)   //и если свет не был включен
    				{
    				for(int i=0; i<=150; i++)  //то плавно включаем свет
    					{
    						analogWrite(fadePin, i);
    						delay(10);   //каждые 10мс увелияение на 1
    					}
    				light = 1; //и передаем значение переменной, что свет включен
    				}
    			}
    			break;
    			case 0xE0E0D02F:
    			{
    				if(light == 1) //если свет включен
    				{
    					for(int i=150; i>=0; i--)//плавно гасим его
    					{
    						analogWrite(fadePin, i);
    						delay(10);
    					}
    					light = 0; //и передаем значение переменной, что свет выключен
    				}
    			}
    			break;
    		}   
    	irrecv.resume(); // принимаем следующую команду
    	}
    }
    Ответ написан
    Комментировать