Πίνακας περιεχομένων:

Ελαφρύς ελεγχόμενος βηματικός κινητήρας + βραχίονας τοίχου/βάση: 6 βήματα
Ελαφρύς ελεγχόμενος βηματικός κινητήρας + βραχίονας τοίχου/βάση: 6 βήματα

Βίντεο: Ελαφρύς ελεγχόμενος βηματικός κινητήρας + βραχίονας τοίχου/βάση: 6 βήματα

Βίντεο: Ελαφρύς ελεγχόμενος βηματικός κινητήρας + βραχίονας τοίχου/βάση: 6 βήματα
Βίντεο: Ηλεκτρικός φυσητήρας-απορροφητήρας φύλλων | Lidl Hellas 2024, Νοέμβριος
Anonim
Ελεγχόμενος φωτεινός βηματικός κινητήρας + Βάση τοίχου/βάση
Ελεγχόμενος φωτεινός βηματικός κινητήρας + Βάση τοίχου/βάση

Αυτή η βάση χρησιμοποιείται για τη στέγαση ενός stepper μοτέρ ελεγχόμενου Arduino, που έχει σχεδιαστεί για να ελέγχει αυτόματα μια κουρτίνα ανάλογα με το επίπεδο φωτισμού στο δωμάτιο. Μπορείτε επίσης να προσθέσετε μια οθόνη LCD για να εκτυπώσετε το επίπεδο φωτισμού. Το τρισδιάστατο εργαλείο είναι μόνο για επίδειξη, ένα πραγματικό εργαλείο μπορεί να χρειαστεί για πρακτική εφαρμογή όπως η κουρτίνα αλλά και οποιαδήποτε άλλη εφαρμογή μπορείτε να σκεφτείτε.

Βήμα 1: Συστατικά

Για να ξεκινήσετε αυτό το έργο θα χρειαστείτε.

- 2 σετ τσιπ Arduino- Μια ασπίδα κινητήρα Arduino- Μια οθόνη Arduino LCD- 1 Breadboard- 1 διπολική Stepper Motor- 1 μπαταρία D- 1 Αντίσταση εξαρτώμενη από το φως- 1 10k Ω αντίσταση- 10 αρσενικά αρσενικά σύρματα- 6 αρσενικά- θηλυκά καλώδια- Πρόσβαση σε τρισδιάστατο εκτυπωτή

Βήμα 2: Κατασκευή του Arduino

Κατασκευή του Arduino
Κατασκευή του Arduino

Πρώτα ευθυγραμμίστε την ασπίδα κινητήρα με τις καρφίτσες Arduino και μόλις παραταχθούν, τοποθετήστε την σταθερά. Στη συνέχεια, συνδέστε τα καλώδια του βηματικού κινητήρα στις ακίδες 8, 9, 10 και 11 της θωράκισης του κινητήρα. Στη συνέχεια, συνδέστε την μπαταρία D στις υποδοχές όπως φαίνεται στο διάγραμμα. Στη συνέχεια, θα θέλετε να πάρετε τα 6 καλώδια (αρσενικό σε θηλυκό) για την οθόνη LCD και συνδέστε τα στην άλλη μονάδα Arduino όπως φαίνεται στο διάγραμμα κυκλώματος. Στη συνέχεια, ρυθμίστε το LDR όπως φαίνεται παραπάνω, με την αντίσταση να συνδέεται με την αρνητική σειρά. Όταν προσθέτετε το LDR, στο πλάι με την αντίσταση, προσθέστε τις συνδέσεις A0 και στην αντίθετη πλευρά, προσθέστε 1 είσοδο 5V για κάθε πλακέτα που χρησιμοποιείτε, οπότε αν χρησιμοποιείτε 2 πίνακες, θα θέλετε καθένα από αυτά να έχει έναν πείρο 5V και A0 που πηγαίνει στο LDR.

Συνδέστε όλα τα καλώδια έτσι ώστε να είναι το ίδιο με το διάγραμμα- 2 εισόδους στο LDR- 2 έξοδοι από το LDR και μια αντίσταση που συνδέεται με τη γείωση- 8 καλώδια στην οθόνη LCD, 1 5V, 1 γείωση και 6 εισόδους- 4 καλώδια που συνδέονται με το stepper- 2 συνδέσεις με την μπαταρία- Η γείωση του breadboard πρέπει να συνδεθεί

Βήμα 3: Κωδικοποίηση Arduino

Κωδικοποίηση Arduino
Κωδικοποίηση Arduino

Ακολουθεί δείγμα κώδικα για να αλλάξετε την κατάσταση του γραναζιού με βάση το LDR

Αυτός είναι ο κώδικας που θα επέτρεπε στο έργο να ελέγχει αυτόματα μια κουρτίνα. Η παραπάνω φωτογραφία εξηγεί τις διαφορετικές διαδρομές μέσα από τις ένθετες δηλώσεις IF όσον αφορά την άνοδο, την κάτω ή την παραμονή της κουρτίνας εκεί που είναι. (κάντε κλικ στην εικόνα για να την δείτε ολόκληρη καθώς υπάρχουν προβλήματα μορφοποίησης)

#defineLDRA0 // Ορίζει τη μεταβλητή "LDR" σε A0 pin#include// Περιλαμβάνει τον κωδικό βηματικού κινητήρα

constintstepsPerRevolution = 200; // Όταν ο βηματικός κινητήρας είναι ενεργοποιημένος, η πλήρης περιστροφή του είναι ίση με 200 βήματα

SteppermyStepper (βήματαPerRevolution, 8, 9, 10, 11); // Ορίζει την είσοδο στο βήμα ως ακίδες 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Ρυθμίζει πόσο γρήγορα ο κινητήρας κάνει ένα rotationpinMode (LDR, INPUT); // Ορίζει τη μεταβλητή "LDR" ως είσοδο Serial.begin (9600); // Ξεκινά μια σειριακή ανάγνωση }

voidloop () {intlightlevel = analogRead (LDR); // Ορίζει τη μεταβλητή "lightlevel" ως μια ενέργεια που διαβάζει την τιμή του "LDR" Serial.print ("Light Level:"); Serial.println (lightlevel); // Εκτυπώνει την τιμή του "lightlevel" με τη λεζάντα παραπάνω

/* Υπάρχει τώρα ένας βρόχος που ανιχνεύει το επίπεδο φωτισμού σε κάθε σημείο του τρόπου* 3 επιλογές είναι διαθέσιμες, ανεβείτε, κατεβείτε, μείνετε στην ίδια θέση* Έχει σχεδιαστεί έτσι ώστε εάν το επίπεδο φωτός παραμείνει το ίδιο, θα μείνετε ίδιοι, αν όχι θα αλλάξει * δηλαδή αν είναι 950, τότε πάει στο 952, τίποτα δεν θα συμβεί, ωστόσο αν πήγε από το 950 στο 600 θα σήκωνε την κουρτίνα και αντίστροφα * Κάθε βήμα υποδηλώνεται με ένα γράμμα μπροστά από το βήμα για να παρακολουθείτε πού βρίσκεται στον βρόχο μέσω της σειριακής οθόνης */

if (lightlevel> = 900) {Serial.println ("A"); // Ποιο βήμα βρίσκεται στο loopmyStepper.step (3*stepsPerRevolution); // Το stepper κάνει 3 περιστροφές προς τα εμπρός. Εάν είναι αρνητικό, πηγαίνει προς τα πίσω καθυστέρηση (30000); // Αφήνει εκεί για 5 λεπτά; // Εκτυπώνει το κείμενο μπροστά από τη μεταβλητή Serial.println (lightlevel) // Εκτυπώνει την τιμή του επιπέδου φωτισμού

if (lightlevel> = 900) {Serial.println ("B"); myStepper.step (0); καθυστέρηση (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Light:"); Serial.println (ελαφρύ επίπεδο)?

if (lightlevel> = 900) {Serial.println ("C"); myStepper.step (3*-stepsPerRevolution); καθυστέρηση (500); intlightlevel = analogRead (LDR); Serial.print ("Light Light:"); Serial.println (lightlevel);}

else {Serial.println ("D"); myStepper.step (3*-stepsPerRevolution); καθυστέρηση (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}

else {Serial.println ("E"); myStepper.step (3*-stepsPerRevolution); καθυστέρηση (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel) ?

if (lightlevel> = 900) {Serial.println ("F"); myStepper.step (0); καθυστέρηση (500); intlightlevel = analogRead (LDR); Serial.print ("Light Light:"); Serial.println (ελαφρύ επίπεδο);}

else {Serial.println ("G"); myStepper.step (0); καθυστέρηση (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Light:"); Serial.println (lightlevel);}}

}

else {Serial.println ("H"); myStepper.step (0); καθυστέρηση (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Light:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("I"); myStepper.step (3*stepsPerRevolution); καθυστέρηση (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Light:"); Serial.println (ελαφρύ επίπεδο)?

if (lightlevel> = 900) {Serial.println ("J"); myStepper.step (3*-stepsPerRevolution); καθυστέρηση (500); intlightlevel = analogRead (LDR); Serial.print ("Light Light:"); Serial.println (lightlevel);}

else {Serial.println ("K"); myStepper.step (3*-stepsPerRevolution); καθυστέρηση (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel) ?

}}

else {Serial.println ("L"); myStepper.step (0); καθυστέρηση (10000); intlightlevel = analogRead (LDR); Serial.print ("Level Level:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("M"); myStepper.step (0); καθυστέρηση (500); intlightlevel = analogRead (LDR); Serial.print ("Light Light:"); Serial.println (ελαφρύ επίπεδο);}

else {Serial.println ("N"); myStepper.step (0); καθυστέρηση (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Light:"); Serial.println (lightlevel);

}}

}

}

Βήμα 4: Προαιρετικό: Οθόνη LCD

Αυτό θα εκτυπώσει το επίπεδο φωτισμού που εντοπίστηκε από το LDR στην οθόνη LCD.

#περιλαμβάνω

  • // Προσθέτει τη βιβλιοθήκη υγρών κρυστάλλων με πρόσθετο κωδικό#define ldr A0 // Ορίζει τη μεταβλητή "ldr" στην ακίδα A0

    LiquidCrystal LCD (8, 9, 4, 5, 6, 7); // προετοιμάστε τη βιβλιοθήκη με τους αριθμούς των ακίδων διεπαφής

    voidsetup () {// κώδικας που εκτελείται μία φορά στο startlcd.begin (16, 2); // ρυθμίστε τον αριθμό των στηλών και των γραμμών της LCD αντίστοιχαpinMode (ldr, INPUT). // Ορίζει το ldr ως είσοδο pinSerial.begin (9600). // Αρχίζει την επικοινωνία με τη σειριακή οθόνη

    }

    voidloop () {// κώδικας που θα επαναλαμβάνεται συνεχώςSerial.println (analogRead (ldr)); // Εκτυπώνει την ένδειξη που λαμβάνει το ldr (αριθμός μεταξύ 0-1023) στο σειριακό monitorlcd.setCursor (6, 0). // ορίστε τον κέρσορα στη στήλη 6, γραμμή 0lcd.print (analogRead (ldr)); // Εκτυπώνει αυτήν την ένδειξη στην οθόνη οθόνης LCD (1000). // Καθυστερεί την επόμενη εντολή για ένα δευτερόλεπτο

    }

    Βήμα 5: Τυπωμένα μέρη

    Χρησιμοποιήστε τα παρακάτω αρχεία για να εκτυπώσετε τη βάση και το γρανάζι. Μπορείτε να προσαρμόσετε το γρανάζι για τους δικούς σας σκοπούς και μπορείτε να χρησιμοποιήσετε το στήριγμα για να το τοποθετήσετε σε τοίχο ή ως οθόνη. Καθώς το τρισδιάστατο γρανάζι είναι αδύναμο, ένα πραγματικό γρανάζι μπορεί να χρησιμοποιηθεί ως υποκατάστατό του, εφόσον ταιριάζει με την κουρτίνα που θα ελέγχει.

    Εάν πρόκειται να χρησιμοποιηθεί το γρανάζι με τρισδιάστατη εκτύπωση, ένα από τα δόντια του γραναζιού έχει αφαιρεθεί, έτσι ώστε μια σταθερή βίδα να μπορεί να το στερεώσει στον κινητήρα.

    Τα μπροστινά 2 πόδια του βραχίονα τοίχου μπορούν επίσης να αφαιρεθούν εάν πρόκειται να τοποθετηθούν σε έναν τοίχο. Προστέθηκαν μόνο για να σταθεί όση ώρα δοκιμάζαμε με αυτό.

    Βήμα 6: Τοποθέτηση

    Τώρα που όλα τα μέρη είναι έτοιμα, ήρθε η ώρα να ξεκινήσουμε την τελική τοποθέτηση.

    Πρώτον, τοποθετήστε το βηματικό μοτέρ στο παρεχόμενο κιβώτιο στη βάση και τοποθετήστε το γρανάζι στον άξοναΕπόμενο, μετακινήστε τα καλώδια έτσι ώστε να πηγαίνουν πίσω από τη βάση Τέλος, τοποθετήστε το arduino και την μπαταρία πίσω από τη βάση

    Ο πίνακας σας θα πρέπει τώρα να μοιάζει με αυτόν που απεικονίζεται παραπάνω.

    Συγχαρητήρια!

    Το γρανάζι μπορεί να χρησιμοποιηθεί για αυτοματοποιημένες κουρτίνες ή οτιδήποτε άλλο θέλετε να ελέγχεται από το LDR.

    Τελείωσες. Απολαύστε τη νέα σας δημιουργία.

Συνιστάται: