Hallo zusammen,
ich möchte bei einem Arduino Uno die Lichtstärke mit einem Photowiderstand ermitteln und dann das Messergebnis zu einem weiteren Arduino senden.
Der zweite Arduino soll das Messergebnis empfangen und mit einer IF-Funktion ein Servomotor steuern.
Sender:
#include <RCSwitch.h>
int sensorWert = 0;
int eingang= A0;
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableTransmit(10); // Der Sender wird an Pin 10 angeschlossen
}
void loop() {
sensorWert =analogRead(eingang);
Serial.println(sensorWert);
mySwitch.send(sensorWert, 24); // Der 433mhz Sender versendet die Dezimalzahl „1234“
delay(100); // Eine Sekunde Pause, danach startet der Sketch von vorne
Empfenger:
#include <RCSwitch.h>
#include <Servo.h>
Servo servoblau;
int sensorWert = 0;
int value = 0;
RCSwitch mySwitch = RCSwitch();
void setup()
{
Serial.begin(9600);
servoblau.attach(7);
mySwitch.enableReceive(0); // Empfänger ist an Interrupt-Pin "0" - Das ist am UNO der Pin2
}
void loop()
{
if (mySwitch.available()) // Wenn ein Code Empfangen wird...
{
int value = mySwitch.getReceivedValue(); // Empfangene Daten werden unter der Variable "value" gespeichert.
Serial.println(value);
if (value >= 512 ) //Wenn der Sensorwert über 512 beträgt….
{
servoblau.write(180);
mySwitch.resetAvailable();
}
if (value < 512 )
{
servoblau.write(0);
mySwitch.resetAvailable();
}
value = 0;
}
}
Bei den ersten Versuch hat noch alles funktionierd, doch nach kurzer Zeit blieb das Programm stecken.
Der serial Monitor zeigte dann nichts mehr an.
Das Problem beginnt, wenn ich den Servomotor am Arduino anstecke.
Was habe ich beim Lösungsweg falsch gemacht? Kann mir jemand weiterhelfen?
mfg glatzl