Arduino Mini Pro nur 2 PWM Pins gleichzeitig ansteuerbar

Es sind leider nur immer zwei Farben sichtbar im PWM
die dritte blinkt nur.
egal welche Pins ich nutze,einer scheint immer pwm zu deaktiviren
Vielleicht findet jemand das Problem,wäre sehr nett

#include <IRremote.h>
#include <Wire.h>
IRrecv irrecv(8); // pin 8
decode_results results;
int R = 0;
int G = 0;
int B = 0;
void setup() {
 Wire.begin(2);
 Wire.onRequest(requestEvent);
 Wire.onReceive(receiveEvent);
 irrecv.enableIRIn();
 pinMode(3, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(9, OUTPUT);
 analogWrite(3, 0);
 analogWrite(5, 0);
 analogWrite(9, 0);
}
int SetLEDStrip(int RED, int GREEN, int BLUE) {
 R = RED;
 G = GREEN;
 B = BLUE;
 analogWrite(3, RED);
 analogWrite(5, GREEN);
 analogWrite(9, BLUE);
}

void requestEvent() {
 byte buf [3];
 buf [ 0 ] = R;
 buf [ 1 ] = G;
 buf [ 2 ] = B;
 Wire.write(buf, sizeof buf);
}
void receiveEvent(int howMany) {
  SetLEDStrip(Wire.read(), Wire.read(), Wire.read());
  }


void loop() {
 if (irrecv.decode(&results)) {
   switch (results.value) {
     case 0xF7C03F: // ON
      SetLEDStrip(255, 255, 255);
       break;
     case 0xF740BF: // OFF
       SetLEDStrip(0, 0, 0);
       break;
   }
   irrecv.resume(); // Receive the next value
 }
//counter = counter +1 ;
//if (counter = 50){
//   Wire.requestFrom(1, 2);
//   Battery_Voltage = ((100*Wire.read()+10*Wire.read())/1000.0);
//  }
//  if(Battery_voltage < 12.30){
//     SetLEDStrip(0, 0, 0);
//    }
delay(100);
}

Problem gelöst die Infarot Lib blockiert irgendwie die restlichen PWM Pins

Die IR-Lib sollte nur einen Timer benutzen. Du kannst an Hand der Tabelle, schauen, welche Pins bei dir funktionieren und auf welchen du mit dem dritten Pin wechseln kannst, damit du einen funktionierenden Timer erwischst.

    • Pins 5 and 6 are paired on timer0
    • Pins 9 and 10 are paired on timer1
    • Pins 3 and 11 are paired on timer2

Ich benutze jedenfalls in einem Projekt einen IR-Empfänger und eine RGB-Led mit PWM erfolgreich zusammen. Zur Not versuche mal eine andere IR-Lib.

Die IR-Lib sollte nur einen Timer benutzen.

2!
Einen für das empfangen, und einen für die Sender 36/38KHz

Zumindest bei mir nur, wenn man auch Senden und Empfangen benutzt. Ich benutze nur den Empfang und kann PWM bei mehr als zwei Kanälen benutzen. Obiger Code benutzt von der Pin-Auswahl her jedenfalls alle drei Timer zum dimmen.