Innehållsförteckning:

Ljusstyrd stegmotor + väggfäste/stativ: 6 steg
Ljusstyrd stegmotor + väggfäste/stativ: 6 steg

Video: Ljusstyrd stegmotor + väggfäste/stativ: 6 steg

Video: Ljusstyrd stegmotor + väggfäste/stativ: 6 steg
Video: Ljusstyrd rullgardin (Micro:bit + servomotor CR) 2024, November
Anonim
Ljusstyrd stegmotor + väggfäste/stativ
Ljusstyrd stegmotor + väggfäste/stativ

Detta stativ används för att inrymma en Arduino -styrd stegmotor, som är utformad för att automatiskt styra en gardin enligt ljusnivån i rummet. Du kan också lägga till en LCD -skärm för att skriva ut ljusnivån. 3D -växeln är bara för demonstration, en riktig redskap kan behövas för praktisk tillämpning som gardinen men också alla andra applikationer du kan tänka dig.

Steg 1: Ingredienser

För att starta detta projekt behöver du;

- 2 Arduino-chipset- En Arduino-motorskärm- En Arduino LCD-skärm- 1 brödbräda- 1 tvåpolig stegmotor- 1 D-batteri- 1 ljusberoende motstånd- 1 10k Ω motstånd- 10 han-han-ledningar- 6 han- honkablar- Tillgång till en 3D-skrivare

Steg 2: Konstruktion av Arduino

Konstruktion av Arduino
Konstruktion av Arduino

Rikta först upp motorskyddet med Arduino -stiften och när de är uppställda placerar du det ordentligt. Fäst därefter stegmotorns ledningar i stiften 8, 9, 10 och 11 på motorskyddet. Anslut därefter D -batteriet i spåren som visas i diagrammet. Därefter vill du ha de 6 ledningarna (man till hona) för LCD -skärmen och anslut dem till den andra Arduino -enheten som visas i kretsschemat. Ställ sedan in LDR som visas ovan, med motståndet anslutet till den negativa raden. När du lägger till LDR, på sidan med motståndet, lägg till A0 -anslutningarna och på motsatt sida, lägg till 1 5V -ingång för varje kort du använder, så om du använder 2 kort vill du att alla har en 5V- och A0 -stift som går till LDR.

Anslut alla ledningar så att det är detsamma som diagrammet- 2 ingångar till LDR- 2 utgångar från LDR och ett motstånd som ansluter till jord- 8 ledningar till LCD, 1 5V, 1 jord och 6 ingångar- 4 ledningar som ansluter till steg- 2 anslutningar till batteriet- Brödbrädans jord bör anslutas

Steg 3: Kodning av Arduino

Kodning Arduino
Kodning Arduino

Här är några exempelkoder för att ändra status för växeln baserat på LDR

Detta är koden som gör att projektet automatiskt kan styra en gardin. Bilden ovan förklarar de olika vägarna genom de kapslade IF -uttalandena när det gäller att gardinen går upp, ner eller stannar där den är. (klicka på bilden för att se den i sin helhet eftersom det finns formateringsproblem)

#defineLDRA0 // Definierar variabeln "LDR" till A0 pin#include// Inkluderar stegmotorkoden

constintstepsPerRevolution = 200; // När stegmotorn är aktiverad är dess fulla rotation lika med 200 steg

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Definierar ingången till steget som stift 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Ställer in hur snabbt motorn gör en rotationpinMode (LDR, INPUT); // Definierar variabeln "LDR" som en ingång Serial.begin (9600); // Startar en seriell avläsning }

voidloop () {intlightlevel = analogRead (LDR); // Definierar variabeln "lightlevel" som en åtgärd som läser värdet av "LDR" Serial.print ("Light Level:"); Serial.println (lightlevel); // Skriver ut värdet "lightlevel" med bildtexten ovan

/* Det finns nu en slinga som detekterar ljusnivån vid varje punkt på vägen* 3 alternativ är tillgängliga, gå upp, gå ner, stanna i samma position* Den är utformad så att om ljusnivån förblir densamma, kommer den att förbli densamma, om inte ändras det * dvs om det är 950, går sedan till 952, ingenting kommer att hända, men om det gick från 950 till 600 skulle det dra upp gardinen och vice versa * Varje steg markeras med en bokstav framför steget för att spåra var det är i slingan genom seriell bildskärm */

if (lightlevel> = 900) {Serial.println ("A"); // Vilket steg det är i loopmyStepper.step (3*stepsPerRevolution); // Steppen gör tre varv framåt. Om det är negativt går det bakåtfördröjning (30000); // Lämnar det där i 5 minuter intlightlevel = analogRead (LDR); // Definierar det variabla "lightlevel" som den senaste avläsningen från LDRSerial.print ("Light Level:"); // Skriver ut texten framför variabeln Serial.println (lightlevel) // Skriver ut värdet på ljusnivån

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

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

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

annars {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 (ljusnivå);}

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

}

annars {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 (ljusnivå);

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

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

}}

annars {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 (ljusnivå);}

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

}}

}

}

Steg 4: Valfritt: LCD -skärm

Detta skulle skriva ut ljusnivån som detekteras av LDR på LCD -skärmen.

#omfatta

  • // Lägger till flytande kristallbiblioteket med ytterligare kod#definiera ldr A0 // Definierar variabeln "ldr" till A0 -stiftet

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // initiera biblioteket med numren på gränssnittsstiften

    voidsetup () {// kod som körs en gång vid startlcd.begin (16, 2); // ställ in LCD -skärmens antal kolumner och rader respektive pinMode (ldr, INPUT); // Definierar ldr som en input pinSerial.begin (9600); // Startar kommunikation med seriell bildskärm

    }

    voidloop () {// kod som kommer att upprepas kontinuerligtSerial.println (analogRead (ldr)); // Skriver ut läsningen som ldr hämtar (ett tal mellan 0-1023) på seriell monitorlcd.setCursor (6, 0); // ställ markören till kolumn 6, rad 0lcd.print (analogRead (ldr)); // Skriver ut denna läsning på LCD -skärmen (1000); // Fördröjer nästa kommando i en sekund

    }

    Steg 5: Tryckta delar

    Använd följande filer för att skriva ut stativet och redskapet. Du kan anpassa redskapet för dina egna ändamål och du kan använda fästet för att montera det på en vägg eller som en skärm. Eftersom 3D -växeln är svag kan en riktig växel användas som ersättning för den så länge den matchar gardinen den skulle styra.

    Om den 3D -tryckta växeln ska användas har en av kugghjulets tänder tagits bort så att en inställningsskruv kan fixa den till motorn.

    De två främre benen på väggfästet kan också tas bort om det skulle monteras på en vägg. De tillsattes bara så att det skulle stå upp medan vi testade med det.

    Steg 6: Placering

    Nu när alla delar är klara är det dags att börja den slutliga placeringen.

    Placera först stegmotorn i den medföljande lådan på stativet och sätt växeln på axeln. Nästa, flytta trådarna så att de går bakom stativet Sätt slutligen arduino och batteri bakom stativet

    Din tavla ska nu se ut som den på bilden ovan.

    Grattis!

    Kugghjulet kan användas för automatiska gardiner eller något annat du vill ha kontrollerat av LDR.

    Du är färdig. Njut av din nya skapelse.

Rekommenderad: