Schrittmotor mit LDR

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);
    }
}

auf dem Bild fehlt der LDR der auf A0 ist.

Kannst du das mal genauer beschreiben ?
Es passiert nix ist keine Fehlerbeschreibung.
Auch ist ein Schaltbild deines Projektes durchaus hilfreich.

Sorry, doppelten Post gelöscht.

HotSystems:
Kannst du das mal genauer beschreiben ?
Es passiert nix ist keine Fehlerbeschreibung.
Auch ist ein Schaltbild deines Projektes durchaus hilfreich.

habe ein Bild hinzugefügt

Georg_KeMz88:
habe ein Bild hinzugefügt

Ich kann kein Bild sehen.

Bild aus der Eiercloud:

Hallo,

Läuft er mit einem Beispiel aus der Lib, wenn nicht

versuche mal

Stepper stepper(STEPS, 8, 10, 9, 11); // die beiden mittleren Pin gedreht

jedenfalls ist das bei dem Stepper den ich habe so.

Heinz

Georg_KeMz88:
Ich hoffe ihr könnt mir helfen.

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 :slight_smile:

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);

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.

es funktioniert DANKE DANKE

Georg_KeMz88:
es funktioniert DANKE DANKE

Bitte gerne :slight_smile: