Innehållsförteckning:
- Steg 1: Ingredienser
- Steg 2: Konstruktion av Arduino
- Steg 3: Kodning av Arduino
- Steg 4: Valfritt: LCD -skärm
- Steg 5: Tryckta delar
- Steg 6: Placering
Video: Ljusstyrd stegmotor + väggfäste/stativ: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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
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
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:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)