ARDUINO Relay, Motor Servo + Infrarot-bewegungssensor?
Ich habe einen Code, der die funktion hat, ein Relay zu aktivieren, sobald der Bewegungssensor Bewegungen detektiert. Kann man mit dem Relay dann auch den Motor Servo (180°) aktivieren? Ihr könnt meinen Code auch gerne korrigieren.
int PIR = 2;
int RELE = 3;
int SENAL = 0;
void setup(){
pinMode(PIR, INPUT);
pinMode(RELE, OUTPUT);
delay(20000);
}
void loop(){
SENAL = digitalRead(PIR);
if(SENAL == HIGH){
digitalWrite(RELE, LOW);
delay(4000);
}
else{
digitalWrite(RELE, HIGH);
}
}
1 Antwort
Nein, der Servomotor hat plus, minus und eine Steuerader, die ein spezielles PWM benötigt. Nur mit dem Relais da was drauf zu schalten geht nicht. Aber man kann die Servobibliothek einbinden und den Servo über den Code ansteuern. Der Arduino ist in der Lage, so den Steuerbefehl zu erzeugen. Da geht es um Signalimpulse im ms-Bereich...
Die Bibliothek einbinden, den Servo definieren, und dann da, wo Du jetzt das Relais ansteuerst, den Befehl für den Servo rein schreiben... Zu der Bibliothek gibt es genug beispiele und viele Infos sowie Tuts im Netz. Das erspare ich mir nun mal daher hier im Detail...
Wenn ich dann diesen Code hätte, wäre das dann richtig?
#include <Servo.h>
int PIR = 2;
int SERVO = 3;
int SENAL = 0;
Servo meinServo;
void setup(){
pinMode(PIR, INPUT);
meinServo.attach(SERVO);
delay(20000);
}
void loop(){
SENAL = digitalRead(PIR);
if(SENAL == HIGH){
meinServo.write(180);
delay(4000);
}
else{
meinServo.write(0);
}
}
Ja, das sollte so klappen. Glaube, bei der Servo-Lib muss man die PWM-Pins nehmen. Weiß auswendig gerade nicht, ob Pin3 ein PWM-Pin ist und ob das wirklich notwendig ist. Dann ggf noch den Ausgangspin ändern. Bin da auch nicht 100% fit, muss einiges immer wieder nachschauen aber der Rest sollte aber eig passen...
Es funktioniert trozdem nicht. Kannst du mir da weiterhelfen?
Was funktioniert nicht? Gibt er keine Signale an den Servo? Schaltet der PIR nicht? Bekommst Du das Programm nicht hoch geladen? Beschäftige Dich mal mit Serial und dem Serial-Monitor. Dann baust Du über Serial.println eine Textausgabe an div Stellen, z.B. ob der Eingang erkannt hat, dass der PIR geschaltet hat. Das kannst Du Dir in der ArduinoIDE dann im SerialMonitor anzeigen und siehst, welche Befehle er ausführt und kannst dann daraus schließen, was nicht funktioniert... Weil so, ohne weitere Details kann ich nicht erahnen, wo ein Feler sein könnte...
Ich habe den ersten Code mit dem Relai und einer LED probiert. Da hats geklappt.
Aber jetzt gibt er kein Signal, aber der Servo eagiert wenn ich ihn mit dem Programm anschließe.
Hochladen ist auch kein Problem.
Nun, ohne weitere Kenntnis (Anschlussplan, verwendete Bauteile ect) ist es schwer... Und so ganz versteh ich auch gerade nicht, was Du meinst..
Dein erstes Programm mit Relaisausgang funktioniert, wie Du möchtest (statt Servo mit LED getestet...)
Wann reagiert der Servo? Also mit welchem Programm? Und wie ist er dann angeschlossen? Welchen Servo genau hast Du?
Wie müsste ich das?