Hey,
Ich bin zurzeit an einem neuen Projekt bei unzwar eine Hühnerklappe. So soll sie funktionieren :
der LDR soll bei dem Wert 0 den Stepper bewegen und bei einen Wert über 0 in die entgegengesetzte Richtung bewegt werden. Aber ich komme im Code nicht weiter denn wenn ich ihn hochlade passiert garnichts.
Ich hoffe ihr könnt mir helfen.
#include <Stepper.h>
#define STEPS 2038 // the number of steps in one revolution of your motor (28BYJ-48)
Stepper stepper(STEPS, 8, 9, 10, 11);
const int ldrPin = A0;
int KlappeHoch;
int KlappeRunter;
void setup() {
Serial.begin(9600);
stepper.setSpeed(1); // 1 rpm
}
void loop() {
int ldrStatus = analogRead(ldrPin);
if (ldrStatus <=50) {
delay(50);
stepper.step(200);
Serial.println(KlappeHoch);
}
else {
delay(50);
stepper.step(-200);
Serial.println(KlappeRunter);
}
}
HotSystems:
Kannst du das mal genauer beschreiben ?
Es passiert nix ist keine Fehlerbeschreibung.
Auch ist ein Schaltbild deines Projektes durchaus hilfreich.
Die Bibliothek Stepper kennt keine Beschleunigungsrampen, weshalb ich Dir die MobaTools enpfehlen möchte. Die kannst Du über den Bibliotheksmanager laden.
Wenn ich es so verkable, wie bei Dir, läuft dieses ausbaufähige Testprogramm:
#include <MobaTools.h>
#define STEPS 4096 // the number of steps in one revolution of your motor (28BYJ-48)
MoToStepper stepper(STEPS);
const int ldrPin = A0;
void setup() {
Serial.begin(9600);
Serial.println("\nAnfang");
stepper.attach( 8, 9, 10, 11 ); // Anschluß an digitalen Ausgängen; Treiber IN1,IN2,IN3,IN4
stepper.setSpeed( 240 ); // = 24 U/Min
stepper.setRampLen(500); // Beschleunigung
stepper.setZero(); // Referenzpunkt für Motor 1 setzen
}
void loop() {
uint16_t ldrStatus = analogRead(ldrPin);
Serial.print("Helligkeit: "); Serial.print(ldrStatus);
if (ldrStatus < 50) {
stepper.write(0); // Winkel 0°
Serial.print("\tKlappe 0 Grad");
}
if (ldrStatus > 100) {
stepper.write(360); // Winkel 360°
Serial.print("\tKlappe 360 Grad");
}
Serial.println();
delay(1000);
}
Ich hoffe, nun dreht der Motor
Da es Deine Hühner sind, liegt auch der Tierschutz in Deiner Verantwortung. Hühner vor verschlossener Klappe während eines Gewitters mit dunkler Wolke oder ein verirrtes eingeklemmtes Huhn mußt Du vermeiden. Daher gehört beispielsweise ein Taster für "Klappe geschlossen" ebenso dazu wie eine Zeitüberwachung, ob die Klappe innerhalb der zu erwartenden Zeit geschlossen ist, da sonst ein Huhn eingeklemmt sein könnte. Diesen Taster kannst Du auch für eine Referenzbewegung nutzen. Zusätzlich wären noch Reflexlichtschranken möglich.
agmue:
Die Bibliothek Stepper kennt keine Beschleunigungsrampen, weshalb ich Dir die MobaTools enpfehlen möchte. Die kannst Du über den Bibliotheksmanager laden.
Wenn ich es so verkable, wie bei Dir, läuft dieses ausbaufähige Testprogramm:
#include <MobaTools.h>
#define STEPS 4096 // the number of steps in one revolution of your motor (28BYJ-48)
MoToStepper stepper(STEPS);
Ich hoffe, nun dreht der Motor :)
Da es Deine Hühner sind, liegt auch der Tierschutz in Deiner Verantwortung. Hühner vor verschlossener Klappe während eines Gewitters mit dunkler Wolke oder ein verirrtes eingeklemmtes Huhn mußt Du vermeiden. Daher gehört beispielsweise ein Taster für "Klappe geschlossen" ebenso dazu wie eine Zeitüberwachung, ob die Klappe innerhalb der zu erwartenden Zeit geschlossen ist, da sonst ein Huhn eingeklemmt sein könnte. Diesen Taster kannst Du auch für eine Referenzbewegung nutzen. Zusätzlich wären noch Reflexlichtschranken möglich.