Hallo,
Ich habe mir vor kurzem einen 433Mhz Sender- und Empfänger aus China
bestellt.
Nun wollte ich Signale von meinem Raspberry Pi per Funk an den Arduino
senden und dann mit dem Arduino eine RGB LED Leiste über PWM steuern.
Jetzt habe ich folgendes Problem:
Der Arduino empfängt den ersten Farbcode immer problemlos und schaltet
die PWM Ausgänge entsprechend.
Sobald ich aber einen zweiten Code sende, empfängt er nichts mehr. Ich
vermute, dass es an der Pulsweitenmodulation liegt.. Wisst ihr wie man
das ganze störfrei hinbekommt?
Hier der Arduino Sketch:
1 | #include "RCSwitch.h"
|
2 | #include <stdlib.h>
|
3 | #include <stdio.h>
|
4 | RCSwitch mySwitch = RCSwitch();
|
5 | const int red = 9;
|
6 | const int green = 10;
|
7 | const int blue = 11;
|
8 |
|
9 | void setup() {
|
10 | Serial.begin(9600);
|
11 | mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2
|
12 | pinMode(red, OUTPUT);
|
13 | pinMode(green, OUTPUT);
|
14 | pinMode(blue, OUTPUT);
|
15 | }
|
16 |
|
17 | void loop() {
|
18 | if (mySwitch.available()) {
|
19 |
|
20 | int value = mySwitch.getReceivedValue();
|
21 |
|
22 | farbe(value);
|
23 | mySwitch.resetAvailable();
|
24 | }
|
25 |
|
26 | }
|
27 |
|
28 | void farbe(const int farbcode)
|
29 | {
|
30 | int rotanteil = farbcode / 100;
|
31 | int gruenanteil = (farbcode - rotanteil * 100) / 10;
|
32 | int blauanteil = farbcode - rotanteil * 100 - gruenanteil * 10;
|
33 |
|
34 | analogWrite(red, rotanteil * 25);
|
35 | analogWrite(green, gruenanteil * 25);
|
36 | analogWrite(blue, blauanteil * 25);
|
37 | }
|
Das sind die Module:
Ebay-Artikel Nr. 181535717407
MfG Andreas