Inhaltsverzeichnis:

Lichtgesteuerter Schrittmotor + Wandhalterung/Ständer - Gunook
Lichtgesteuerter Schrittmotor + Wandhalterung/Ständer - Gunook

Video: Lichtgesteuerter Schrittmotor + Wandhalterung/Ständer - Gunook

Video: Lichtgesteuerter Schrittmotor + Wandhalterung/Ständer - Gunook
Video: Roboterarm v1 0 - besser als er aussieht ;-) 2024, Juli
Anonim
Lichtgesteuerter Schrittmotor + Wandhalterung/Ständer
Lichtgesteuerter Schrittmotor + Wandhalterung/Ständer

Dieser Ständer wird verwendet, um einen Arduino-gesteuerten Schrittmotor zu beherbergen, der entwickelt wurde, um einen Vorhang automatisch entsprechend der Lichtstärke im Raum zu steuern. Sie können auch einen LCD-Bildschirm hinzufügen, um die Lichtstärke auszudrucken. Das 3D-Getriebe dient nur zur Demonstration, für praktische Anwendungen wie den Vorhang, aber auch für jede andere Anwendung, die Sie sich vorstellen können, wird möglicherweise ein echtes Zahnrad benötigt.

Schritt 1: Zutaten

Um dieses Projekt zu starten, benötigen Sie;

- 2 Arduino-Chipsätze - Ein Arduino-Motorschild - Ein Arduino-LCD-Bildschirm - 1 Steckbrett - 1 bipolarer Schrittmotor - 1 D-Batterie - 1 lichtabhängiger Widerstand - 1 10k Ω Widerstand - 10 Stecker-Stecker-Kabel- 6 Stecker- weibliche Drähte - Zugang zu einem 3D-Drucker

Schritt 2: Bau von Arduino

Bau von Arduino
Bau von Arduino

Richten Sie zuerst den Motorschild mit den Arduino-Pins aus und legen Sie ihn fest, sobald sie ausgerichtet sind. Als nächstes befestigen Sie die Drähte des Schrittmotors an den Pins 8, 9, 10 und 11 des Motorschilds. Danach schließen Sie die D-Batterie wie in der Abbildung gezeigt in die Steckplätze an. Als nächstes möchten Sie die 6 Drähte (männlich zu weiblich) für den LCD-Bildschirm und stecken Sie sie wie im Schaltplan gezeigt in die andere Arduino-Einheit. Richten Sie dann den LDR wie oben gezeigt ein, wobei der Widerstand mit der negativen Reihe verbunden ist. Wenn Sie den LDR hinzufügen, fügen Sie auf der Seite mit dem Widerstand hinzu die A0-Anschlüsse und auf der gegenüberliegenden Seite fügen Sie 1 5V-Eingang für jede verwendete Platine hinzu. Wenn Sie also 2 Platinen verwenden, möchten Sie, dass jede von ihnen einen 5V- und einen A0-Pin zum LDR hat.

Schließen Sie alle Drähte so an, dass es dem Diagramm entspricht - 2 Eingänge zum LDR - 2 Ausgänge vom LDR und ein Widerstand, die mit Masse verbunden sind - 8 Drähte zum LCD, 1 5 V, 1 Masse und 6 Eingänge - 4 Drähte, die mit dem verbunden sind Stepper- 2 Anschlüsse an die Batterie- Die Breadboard-Masse sollte angeschlossen sein

Schritt 3: Arduino codieren

Arduino codieren
Arduino codieren

Hier ist ein Beispielcode, um den Status des Zahnrads basierend auf dem LDR zu ändern

Dies ist der Code, der es dem Projekt ermöglicht, einen Vorhang automatisch zu steuern. Das obige Foto erklärt die verschiedenen Pfade durch die verschachtelten IF-Anweisungen im Hinblick darauf, dass der Vorhang auf- und abgeht oder dort bleibt, wo er ist. (Klicken Sie auf das Bild, um es vollständig anzuzeigen, da Formatierungsprobleme vorliegen)

#defineLDRA0//Definiert Variable "LDR" auf A0-Pin#include// Enthält den Schrittmotorcode

constintstepsPerRevolution=200; // Wenn der Schrittmotor aktiviert ist, beträgt seine volle Umdrehung 200 Schritte

SteppermyStepper(stepsPerRevolution, 8, 9, 10, 11); // Definiert den Eingang zum Stepper als Pins 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Legt fest, wie schnell der Motor einen RotationpinMode (LDR, INPUT) durchführt; // Definiert die Variable "LDR" als Eingang Serial.begin (9600); // Startet eine serielle Lesung }

voidloop(){intlightlevel=analogRead(LDR); // Definiert die Variable "lightlevel" als Aktion, die den Wert von "LDR"Serial.print("Light Level: ");Serial.println(lightlevel);// Druckt den Wert von "lightlevel" mit der Beschriftung oben

/* Es gibt jetzt eine Schleife, die die Lichtstärke an jedem Punkt des Weges erkennt * 3 Optionen stehen zur Verfügung, nach oben gehen, nach unten gehen, in der gleichen Position bleiben* Sie ist so konzipiert, dass sie bei gleichbleibender Lichtstärke bleibt gleich, wenn nicht, ändert es sich* dh wenn es 950 ist, dann geht es zu 952, nichts passiert, aber wenn es von 950 auf 600 geht, würde es den Vorhang hochziehen und umgekehrt * Jeder Schritt wird durch einen Buchstaben gekennzeichnet vor dem Schritt, um zu verfolgen, wo er sich in der Schleife durch den seriellen Monitor befindet */

if(lightlevel>=900){Serial.println("A"); // Welcher Schritt es in der Schleife ist myStepper.step (3*stepsPerRevolution); // Der Stepper macht 3 Vorwärtsumdrehungen. Wenn es negativ ist, geht es rückwärtsdelay (30000); // Belässt es dort für 5 Minuten intlightlevel=analogRead(LDR); // Definiert die Variable "lightlevel" als die letzte Lesung von LDRSerial.print ("Light Level: ");//Druckt den Text vor der Variablen Serial.println(lightlevel)// Gibt den Wert der Lichtstärke aus

if(lightlevel>=900){Serial.println("B");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println (Lichtstärke);

if(lightlevel>=900){Serial.println("C");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: "); Serial.println (Lichtstufe);}

else{Serial.println("D");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);}}

else{Serial.println("E");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

if(lightlevel>=900){Serial.println("F");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println (Lichtstärke);}

else{Serial.println("G");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);}}

}

else{Serial.println("H");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

if(lightlevel>=900){Serial.println("I");myStepper.step(3*stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println (Lichtstärke);

if(lightlevel>=900){Serial.println("J");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: "); Serial.println (Lichtstufe);}

else{Serial.println("K");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

}}

else{Serial.println("L");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

if(lightlevel>=900){Serial.println("M");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println (Lichtstärke);}

else{Serial.println("N");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

}}

}

}

Schritt 4: Optional: LCD-Bildschirm

Dies würde die vom LDR erkannte Lichtstärke auf dem LCD-Bildschirm ausdrucken.

#enthalten

  • // Fügt die Flüssigkristallbibliothek mit zusätzlichem Code hinzu #define ldr A0 // Definiert die Variable "ldr" zum A0-Pin

    Flüssigkristall-LCD (8, 9, 4, 5, 6, 7); // die Bibliothek mit den Nummern der Schnittstellenpins initialisieren

    voidsetup () { // Code, der einmal beim startlcd.begin (16, 2) ausgeführt wird; // die Anzahl der Spalten und Zeilen des LCDs entsprechend einstellenpinMode (ldr, INPUT); // Definiert den ldr als Eingang pinSerial.begin (9600); // Startet die Kommunikation mit dem seriellen Monitor

    }

    Voidloop () { // Code, der kontinuierlich wiederholt wirdSerial.println (analogRead (ldr)); // Druckt den Messwert, den der ldr aufnimmt (eine Zahl zwischen 0-1023) auf dem seriellen Monitorlcd.setCursor (6, 0); // setze den Cursor auf Spalte 6, Zeile 0lcd.print (analogRead (ldr)); // Druckt diesen Messwert auf dem LCD-Bildschirmverzögerung (1000); // Verzögert den nächsten Befehl um eine Sekunde

    }

    Schritt 5: Gedruckte Teile

    Verwenden Sie die folgenden Dateien, um den Ständer und die Ausrüstung zu drucken. Sie können die Ausrüstung für Ihre eigenen Zwecke anpassen und die Halterung verwenden, um sie an einer Wand oder als Display zu montieren. Da die 3D-Ausrüstung schwach ist, kann eine echte Ausrüstung als Ersatz dafür verwendet werden, solange sie dem Vorhang entspricht, den sie steuern würde.

    Wenn das 3D-gedruckte Zahnrad verwendet werden soll, wurde einer der Zähne des Zahnrads entfernt, damit eine Stellschraube es am Motor befestigen kann.

    Die vorderen 2 Beine der Wandhalterung können auch entfernt werden, wenn sie an einer Wand montiert werden soll. Sie wurden nur hinzugefügt, damit es stand, während wir damit testeten.

    Schritt 6: Platzierung

    Nachdem alle Teile fertig sind, ist es an der Zeit, mit der endgültigen Platzierung zu beginnen.

    Legen Sie zuerst den Schrittmotor in die mitgelieferte Box auf dem Ständer und setzen Sie das Zahnrad auf die Achse Als nächstes bewegen Sie die Drähte so, dass sie hinter den Ständer gehen. Platzieren Sie schließlich das Arduino und die Batterie hinter dem Ständer

    Ihr Board sollte nun wie das oben abgebildete aussehen.

    Herzliche Glückwünsche!

    Die Ausrüstung kann für automatisierte Vorhänge oder andere Dinge verwendet werden, die vom LDR gesteuert werden sollen.

    Du bist fertig. Genießen Sie Ihre neue Kreation.