Indholdsfortegnelse:
- Trin 1: Ingredienser
- Trin 2: Konstruktion af Arduino
- Trin 3: Kodning af Arduino
- Trin 4: Valgfrit: LCD -skærm
- Trin 5: Trykte dele
- Trin 6: Placering
Video: Lysstyret trinmotor + vægbeslag/stativ: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
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
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
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:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)