Я использую этот код для изменения яркости, но она не меняется, несмотря на то, что ШИМ контакта 3 уже изменился.

#include <IRremote.h>
const int Recv_Pin = A0;
int state = 0; 
int bright = 255;
int i;
unsigned long lastT = millis();
void setup()
{
  Serial.begin(9600);
  
    pinMode(3, OUTPUT);
  
    digitalWrite(3, LOW);
 
  IrReceiver.begin(Recv_Pin, true, 13);
}

void loop()
{
  if (IrReceiver.decode()){
    uint32_t dataRemote = IrReceiver.decodedIRData.decodedRawData;
    if(dataRemote>0){
      Serial.println(dataRemote);
    if (dataRemote == 4278238976 && state == 0)
     {
      state = 1;
     }
    else if (dataRemote == 4278238976 && state == 1)
     {
      state = 0;
     }
    else if(dataRemote == 4144545536 && state == 1)
     {
      state = 2;
      bright -=10;
     }
    if (state == 0)
     {
      digitalWrite(3, LOW);
     }
    else if (state == 1)
     {
      digitalWrite(3, HIGH);
     }
    else if(state == 2)
     {
      analogWrite(3, bright);
      state = 1;
     }
   }
    lastT = millis();
    IrReceiver.resume();
     Serial.print(state);
     Serial.print(' ');
     Serial.println(bright);
    
  }
   
}

, 👍0

Обсуждение

мы не знаем, работает ли ваш ИК-код или работает ли светодиодный код... забудьте о вашем коде на данный момент... напишите простой скетч, который зажигает светодиод на полную яркость в течение нескольких секунд, а затем зажигает светодиод на на половину яркости в течение нескольких секунд... затем повторите.... если это сработает, то таким же образом проверьте ИК-приемник, @jsotola