Mit RC eine PWM angesteuerte LED ein- bzw. ausschalten

Hallo,
als Anfänger habe ich das Problem, die zwei genannten Dinge unter einen Hut zu bringen, d. h. den Code richtig zu erstellen. Jeweils für sich genommen funktionieren die Codes. Kann mir geholfen werden?

Code Ein-/Ausschalter einer Led mit RC:

int led = 9; // pin an dem die led angeschlossen ist
int rec = 6; // pin an dem der receiver angeschlossen ist
int ch1;

void setup() {
pinMode(led, OUTPUT);
pinMode(rec, INPUT);
}

void loop() {
  
ch1 = pulseIn(rec, HIGH, 20000);
if (ch1 < 1200) {
digitalWrite(led, LOW);
} else {
digitalWrite(led, HIGH);
}
}

Code für eine mit einer festen Zahl angesteuerten Led mittels PWM:

const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
 }

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);            
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, 100);  
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);       
 }

Oder ist eine Fusion der beiden gar nicht möglich?

Gruß
Willi

Zuerst einmal sollten Sketche im # stehen.
Wie sieht dein Versuch aus, die beiden zu kombinieren?

Beim 2. Teil, warum wird hier auf 0 - 100 gemappt? AnalogWrite erwartet einen Wert von 0 - 255. Bei 100 leuchtet deine Led nicht in der höchstens Helligkeitsstufe.

Code Ein-/Ausschalter einer Led mit RC:

int led = 9; // pin an dem die led angeschlossen ist
int rec = 6; // pin an dem der receiver angeschlossen ist
int ch1;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(rec, INPUT);
}

void loop() {

  ch1 = pulseIn(rec, HIGH, 20000);
  if (ch1 < 1200) {
    digitalWrite(led, LOW);
  } 
  else {
    digitalWrite(led, HIGH);
  }
}

Code für eine mit einer festen Zahl angesteuerten Led mittels PWM:

const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);            
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, 100);  
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);       
}

Hallo Stefan,
sorry, das mit dem # wusste ich nicht (war damit das erste Mal mit eigenem Beitrag im Forum ...)

Mein Arduino Uno ist gerade mal 14 Tage alt und ich hatte vorher noch nie was mit Programmiersprachen zu tun. Die einzelnen Codes habe ich mir im Netz zusammengesucht. Die Sinnhaftigkeit der einzelenen Befehle ist mir - noch - nicht einleuchtend, deshalb lasse ich es lieber, meine laienhaften Versuche zu posten, beide Codes zusammen zu fügen. Jedenfalls kamen immer beim Überprüfen Fehlerhinweise, mit denen ich aber nichts anzufangen wusste.

Das mit dem Mapping auf 100 ist ein Versuch. Ich bin Modellbauer und möchte mit PWM eine Power-Led als schaltbares Landelicht über die RC-Anlage betreiben. Diese LED soll über einen vom Arduino angesteuerten Mosfet geschaltet und die Power von einem externen Akku erhalten. Die PWM ist nur dazu da, den Stromverbrauch bei größter Helligkeit zu senken. Sonst hätte mir der erste gepostete Code genügt.

Gruß
Willi

Hallo Willi,

es ist nicht verkehrt, auch die ersten Gehversuche zu posten. Sowas bringt einem eher weiter, als das man andere fragt, etwas zu machen.

Hier findest du alle Arduino spezifischen Referenzen (pulseIn, ....)

Es würde Sinn machen, sich erst einmal mit der Programmierung und dem Anlernen der einfachen Basics zu beschäftigen. Was soll das genau für eine Power Led sein? Datenblatt oder Bezugsquelle?

Wie wird diese angesteuert? Eine Power Led als solches darf nicht direkt an einem PWM Ausgang stecken.

Hallo Stefan,

wie ich schon geschrieben habe, will ich die Led über einen (Logik Level) Mosfet mit Gateansteuerung vom Arduino her ansteuern.
Der Speiseakku hat 8 Volt und über PWM will ich dann so viel Spannung auf die LED geben, dass die größte Helligkeit bei geringstem Strom erzielt wird (durch Mapping der Werte vom 2. Code). Bisher habe ich mich mit analogen Systemen befasst und da kenne ich mich schon einigermaßen aus.

Die LED-Werte sind:

Gehäusedurchmesser ca. 8mm
Linsendurchmesser ca.5mm
Gesamthöhe ca. 5mm

Wellenlänge/Farbtemp. 6000 -6500K
Helligkeit 100 ~ 110 lm
Betriebsstrom 600-700mA
Betriebsspannung 3,1V -3,4V

Ich habe mir schon viele Tutorials zum Arduino angesehen bzw. gelesen. Meistens wird da aber nur ein Thema angesprochen - z.B. Blinken - aber mehrere Einzelthemen zusammenführen aus meinem Themenbereich habe ich nicht gefunden. Und die Basics haben mir auch noch nicht die Erleuchtung gebracht.

Gruß
Willi