Indholdsfortegnelse:

Lysstyret trinmotor + vægbeslag/stativ: 6 trin
Lysstyret trinmotor + vægbeslag/stativ: 6 trin

Video: Lysstyret trinmotor + vægbeslag/stativ: 6 trin

Video: Lysstyret trinmotor + vægbeslag/stativ: 6 trin
Video: Lysstyret LED. 2024, November
Anonim
Lysstyret trinmotor + vægbeslag/stativ
Lysstyret trinmotor + vægbeslag/stativ

Dette stativ bruges til at huse en Arduino -styret stepper motor, designet til automatisk at styre et gardin i henhold til lysniveauet i rummet. Du kan også tilføje en LCD -skærm for at udskrive lysniveauet. 3D -gearet er kun til demonstration, et rigtigt gear kan være nødvendigt til praktisk anvendelse, f.eks. Gardinet, men også enhver anden applikation, du kan tænke på.

Trin 1: Ingredienser

For at starte dette projekt skal du bruge;

- 2 Arduino-chipsæt- Et Arduino-motorskærm- En Arduino LCD-skærm- 1 brødbræt- 1 bi-polær trinmotor- 1 D batteri- 1 lysafhængig modstand- 1 10k Ω modstand- 10 han-han-ledninger- 6 han- hunledninger- Adgang til en 3D-printer

Trin 2: Konstruktion af Arduino

Konstruktion af Arduino
Konstruktion af Arduino

Før først motorskærmen op med Arduino -benene, og når de er stillet op, skal du placere den fast. Sæt derefter trinmotorens ledninger fast i stifterne 8, 9, 10 og 11 på motorskærmen. Derefter tilsluttes D -batteriet i åbningerne som vist i diagrammet. Dernæst vil du have de 6 ledninger (han til hun) til LCD -skærmen og tilslut dem til den anden Arduino -enhed som vist i kredsløbsdiagrammet. Sæt derefter LDR op som vist ovenfor, med modstanden forbundet til den negative række. Når du tilføjer LDR, på siden med modstanden, tilføj A0 -forbindelserne og på den modsatte side, tilføj 1 5V input til hvert kort, du bruger, så hvis du bruger 2 boards, vil du have, at hver af dem skal have en 5V og A0 pin til LDR.

Tilslut alle ledninger, så det er det samme som diagrammet- 2 indgange til LDR- 2 udgange fra LDR og en modstand, der forbinder til jord- 8 ledninger til LCD, 1 5V, 1 jord og 6 indgange- 4 ledninger, der er forbundet til stepper- 2 forbindelser til batteriet- Brødbrættets jord skal tilsluttes

Trin 3: Kodning af Arduino

Kodning Arduino
Kodning Arduino

Her er en prøvekode til at ændre gearets status baseret på LDR

Dette er koden, der gør det muligt for projektet automatisk at styre et gardin. Billedet ovenfor forklarer de forskellige stier gennem de indlejrede IF -udsagn i form af at gardinet går op, ned eller bliver hvor det er. (klik på billedet for at se det fuldstændigt, da der er formateringsproblemer)

#defineLDRA0 // Definerer variablen "LDR" til A0 pin#include// Inkluderer stepper motor kode

constintstepsPerRevolution = 200; // Når trinmotoren er aktiveret, er dens fulde rotation lig med 200 trin

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Definerer input til stepper som ben 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Indstiller hvor hurtigt motoren udfører en rotationpinMode (LDR, INPUT); // Definerer variablen "LDR" som input Serial.begin (9600); // Starter en seriel læsning }

voidloop () {intlightlevel = analogRead (LDR); // Definerer variablen "lightlevel" som en handling, der læser værdien af "LDR" Serial.print ("Light Level:"); Serial.println (lightlevel); // Udskriver værdien af "lightlevel" med billedteksten ovenfor

/* Der er nu en loop, der registrerer lysniveauet på alle punkter på vejen* 3 muligheder er tilgængelige, gå op, gå ned, bliv i samme position* Det er designet, så hvis lysniveauet forbliver det samme, vil det forblive den samme, hvis ikke ændres den * dvs. hvis den er 950, går den derefter til 952, der vil ikke ske noget, men hvis den gik fra 950 til 600, ville den trække gardinet op og omvendt * Hvert trin er markeret med et bogstav foran trin for at spore, hvor det er i sløjfen gennem den serielle skærm */

if (lightlevel> = 900) {Serial.println ("A"); // Hvilket trin er det i loopmyStepper.step (3*stepsPerRevolution); // Stepperen foretager 3 omdrejninger fremad. Hvis det er negativt, går det baglæns forsinkelse (30000); // Efterlader det der i 5 minutter intlightlevel = analogRead (LDR); // Definerer det variable "lightlevel" som den seneste læsning fra LDRSerial.print ("Light Level:"); // Udskriver teksten foran variablen Serial.println (lightlevel) // Udskriver værdien af lysniveauet

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

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

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

ellers {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 (lysniveau);}

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

}

ellers {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 (lysniveau);

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

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

}}

ellers {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 (lysniveau);}

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

}}

}

}

Trin 4: Valgfrit: LCD -skærm

Dette ville udskrive lysniveauet, der blev opdaget af LDR på LCD -skærmen.

#omfatte

  • // Tilføjer liquid crystal -biblioteket med yderligere kode#definier ldr A0 // Definerer variablen "ldr" til A0 -stiften

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // initialiser biblioteket med grænsefladernes ben

    voidsetup () {// kode, der kører en gang ved startlcd.begin (16, 2); // konfigurer LCD's antal kolonner og linjer henholdsvispinMode (ldr, INPUT); // Definerer ldr som en input pinSerial.begin (9600); // Starter kommunikation med den serielle skærm

    }

    voidloop () {// kode, der gentages kontinuerligtSerial.println (analogRead (ldr)); // Udskriver læsningen, som ldr henter (et tal mellem 0-1023) på den serielle monitorlcd.setCursor (6, 0); // indstil markøren til kolonne 6, linje 0lcd.print (analogRead (ldr)); // Udskriver denne læsning på LCD -skærmbilledet (1000); // Forsinker den næste kommando i et sekund

    }

    Trin 5: Trykte dele

    Brug følgende filer til at udskrive stativ og gear. Du kan tilpasse gearet til dine egne formål, og du kan bruge beslaget til at montere det på en væg eller som en skærm. Da 3D -gearet er svagt, kan et rigtigt gear bruges som en erstatning for det, så længe det matcher gardinet, det ville kontrollere.

    Hvis det 3D -trykte gear skal bruges, er en af tandhjulets tænder fjernet, så en sætskrue kunne fastgøre den til motoren.

    De to forreste ben på vægbeslaget kan også fjernes, hvis det skulle monteres på en væg. De blev kun tilføjet, så det ville stå op, mens vi testede med det.

    Trin 6: Placering

    Nu hvor alle delene er klar, er det tid til at starte den sidste placering.

    Placer først trinmotoren i den medfølgende boks på stativet og sæt gearet på akslen Næste, flyt ledningerne, så de går bag stativet Til sidst placeres arduino og batteri bag stativet

    Dit bræt skal nu se ud som det på billedet ovenfor.

    Tillykke!

    Gearet kan bruges til automatiserede gardiner eller andre ting, du ønsker kontrolleret af LDR.

    Du er færdig. Nyd din nye skabelse.

Anbefalede: