Innholdsfortegnelse:

Lysstyrt trinnmotor + veggbrakett/stativ: 6 trinn
Lysstyrt trinnmotor + veggbrakett/stativ: 6 trinn

Video: Lysstyrt trinnmotor + veggbrakett/stativ: 6 trinn

Video: Lysstyrt trinnmotor + veggbrakett/stativ: 6 trinn
Video: trafikk lys styrt av en liten PLS 2024, Juli
Anonim
Lysstyrt trinnmotor + veggbrakett/stativ
Lysstyrt trinnmotor + veggbrakett/stativ

Dette stativet brukes til å huse en Arduino -kontrollert trinnmotor, designet for å automatisk styre et gardin i henhold til lysnivået i rommet. Du kan også legge til en LCD -skjerm for å skrive ut lysnivået. 3D -utstyret er bare for demonstrasjon, et ekte utstyr kan være nødvendig for praktisk bruk, for eksempel gardinen, men også alle andre applikasjoner du kan tenke deg.

Trinn 1: Ingredienser

For å starte dette prosjektet trenger du;

- 2 Arduino-brikkesett- En Arduino-motorskjerm- En Arduino LCD-skjerm- 1 brødbrett- 1 bi-polær trinnmotor- 1 D batteri- 1 lysavhengig motstand- 1 10k Ω motstand- 10 hann-hann-ledninger- 6 hann- hunnledninger- Tilgang til en 3D-skriver

Trinn 2: Bygging av Arduino

Bygging av Arduino
Bygging av Arduino

Først stiller du opp motorskjoldet med Arduino -pinnene, og når de er stilt opp, legger du det godt ned. Fest deretter trinnmotorens ledninger til pinnene 8, 9, 10 og 11 på motorskjermen. Deretter kobler du D -batteriet til sporene som vist i diagrammet. Deretter vil du ha de 6 ledningene (hann til hunn) for LCD -skjermen og koble dem til den andre Arduino -enheten som vist i kretsdiagrammet. Sett deretter opp LDR som vist ovenfor, med motstanden koblet til den negative raden. Når du legger til LDR, på siden med motstanden, legger du til A0 -tilkoblingene og på motsatt side, legg til 1 5V -inngang for hvert brett du bruker, så hvis du bruker 2 kort, vil du at hver av dem skal ha en 5V- og A0 -pinne til LDR.

Koble alle ledninger slik at det er det samme som diagrammet- 2 innganger til LDR- 2 utgangene fra LDR og en motstand som kobles til jord- 8 ledninger til LCD, 1 5V, 1 jord og 6 innganger- 4 ledninger som kobles til stepper- 2 tilkoblinger til batteriet- Brettbrettet skal være tilkoblet

Trinn 3: Koding av Arduino

Koding Arduino
Koding Arduino

Her er noen eksempler på kode for å endre utstyrets status basert på LDR

Dette er koden som gjør at prosjektet automatisk kan kontrollere et gardin. Bildet ovenfor forklarer de forskjellige banene gjennom de nestede IF -setningene når det gjelder at gardinet går opp, ned eller blir der det er. (klikk på bildet for å se det i sin helhet da det er formateringsproblemer)

#defineLDRA0 // Definerer variabelen "LDR" til A0 pin#include// Inkluderer trinnmotorkoden

constintstepsPerRevolution = 200; // Når trinnmotoren er aktivert, er hele rotasjonen lik 200 trinn

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Definerer inngangen til stepper som pinner 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Angir hvor raskt motoren gjør en rotationpinMode (LDR, INPUT); // Definerer variabelen "LDR" som en inngang Serial.begin (9600); // Starter en seriell avlesning }

voidloop () {intlightlevel = analogRead (LDR); // Definerer variabelen "lightlevel" som en handling som leser verdien av "LDR" Serial.print ("Light Level:"); Serial.println (lightlevel); // Skriver ut verdien av "lightlevel" med bildeteksten ovenfor

/* Det er nå en sløyfe som registrerer lysnivået på hvert punkt på veien* 3 alternativer er tilgjengelige, gå opp, gå ned, hold deg i samme posisjon* Den er designet slik at hvis lysnivået forblir det samme, vil det forbli den samme, hvis ikke vil den endre seg * dvs. hvis den er 950, går den til 952, ingenting vil skje, men hvis den gikk fra 950 til 600 ville den trekke gardinen opp og vice versa * Hvert trinn er markert med en bokstav foran trinnet for å spore hvor det er i sløyfen gjennom den serielle skjermen */

if (lightlevel> = 900) {Serial.println ("A"); // Hvilket trinn det er i loopmyStepper.step (3*stepsPerRevolution); // Stepperen gjør tre omdreininger fremover. Hvis det er negativt, går det bakoverforsinkelse (30000); // La det ligge der i 5 minutter intlightlevel = analogRead (LDR); // Definerer det variable "lightlevel" som den siste lesningen fra LDRSerial.print ("Light Level:"); // Skriver ut teksten foran variabelen Serial.println (lightlevel) // Skriver ut verdien av lysnivået

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

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

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

annet {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 (lysnivå);}

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

}

annet {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 (lysnivå);

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

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

}}

annet {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 (lysnivå);}

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

}}

}

}

Trinn 4: Valgfritt: LCD -skjerm

Dette vil skrive ut lysnivået som er oppdaget av LDR på LCD -skjermen.

#inkludere

  • // Legger til flytende krystallbibliotek med tilleggskode#definere ldr A0 // Definerer variabelen "ldr" til A0 -pinnen

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // initialiser biblioteket med tallene på grensesnittpinnene

    voidsetup () {// kode som kjøres en gang ved startlcd.begin (16, 2); // sette opp LCD -tallet antall kolonner og linjer henholdsvis pinMode (ldr, INPUT); // Definerer ldr som en input pinSerial.begin (9600); // Starter kommunikasjonen med den serielle skjermen

    }

    voidloop () {// kode som vil gjentas kontinuerligSerial.println (analogRead (ldr)); // Skriver ut avlesningen ldr henter (et tall mellom 0-1023) på den serielle monitorlcd.setCursor (6, 0); // sett markøren til kolonne 6, linje 0lcd.print (analogRead (ldr)); // Skriver ut denne avlesningen på LCD -skjermen (1000); // Forsinker den neste kommandoen i ett sekund

    }

    Trinn 5: Trykte deler

    Bruk følgende filer til å skrive ut stativet og utstyret. Du kan tilpasse utstyret til dine egne formål, og du kan bruke braketten til å montere det på en vegg eller som en skjerm. Ettersom 3D -giret er svakt, kan et ekte gir brukes som erstatning for det så lenge det matcher gardinen det ville kontrollere.

    Hvis det 3D -trykte utstyret skal brukes, har en av tannhjulene blitt fjernet slik at en seteskrue kan fikse den til motoren.

    De to fremre beina på veggbraketten kan også fjernes hvis den skulle monteres på en vegg. De ble bare lagt til slik at det ville stå opp mens vi testet med det.

    Trinn 6: Plassering

    Nå som alle delene er klare, er det på tide å starte den siste plasseringen.

    Først plasserer du trinnmotoren i den medfølgende boksen på stativet og setter giret på akselen. Deretter flytter du ledningene slik at de går bak stativet. Til slutt plasserer du arduinoen og batteriet bak stativet

    Brettet ditt skal nå se ut som det på bildet ovenfor.

    Gratulerer!

    Utstyret kan brukes til automatiserte gardiner eller andre ting du vil ha kontrollert av LDR.

    Du er ferdig. Nyt den nye skapelsen din.

Anbefalt: