Përmbajtje:

Stepper Motor i kontrolluar nga drita + Kllapa e murit/qëndrim: 6 hapa
Stepper Motor i kontrolluar nga drita + Kllapa e murit/qëndrim: 6 hapa

Video: Stepper Motor i kontrolluar nga drita + Kllapa e murit/qëndrim: 6 hapa

Video: Stepper Motor i kontrolluar nga drita + Kllapa e murit/qëndrim: 6 hapa
Video: FULL BUILD | Rebuilding A DESTROYED Porsche 911 Turbo! 2024, Nëntor
Anonim
Stepper Motor i kontrolluar nga drita + mbajtëse/mbajtëse muri
Stepper Motor i kontrolluar nga drita + mbajtëse/mbajtëse muri

Ky stendë përdoret për të vendosur një motor stepper të kontrolluar nga Arduino, i krijuar për të kontrolluar automatikisht një perde sipas nivelit të dritës në dhomë. Ju gjithashtu mund të shtoni një ekran LCD për të printuar nivelin e dritës. Pajisja 3D është vetëm për demonstrim, një pajisje e vërtetë mund të jetë e nevojshme për aplikim praktik siç është perdja, por edhe çdo aplikacion tjetër që mund të mendoni.

Hapi 1: Përbërësit

Për të filluar këtë projekt do t'ju duhet;

- 2 çipa Arduino- Një mburojë motorike Arduino- Një ekran Arduino LCD- 1 tabelë me petë- 1 Stepper Motor bi-polar- 1 bateri D- 1 Rezistencë e varur nga drita- 1 Rezistencë 10k Ω- 10 Tela meshkuj-6 meshkuj- telat femra- Qasja në një printer 3D

Hapi 2: Ndërtimi i Arduino

Ndërtimi i Arduino
Ndërtimi i Arduino

Së pari rreshtoni mburojën e motorit me kunjat Arduino dhe pasi të jenë rreshtuar, vendoseni poshtë fort. Tjetra ngjitni telat e motorit stepper në kunjat 8, 9, 10 dhe 11 të mburojës së motorit. Pas kësaj lidhni baterinë D në lojëra elektronike siç tregohet në diagram. Tjetra ju do të dëshironi të merrni 6 telat (meshkuj në femra) për ekranin LCD dhe lidhini ato në njësinë tjetër Arduino siç tregohet në diagramin e qarkut. Pastaj vendosni LDR siç tregohet më sipër, me rezistencën që lidhet me rreshtin negativ. Kur shtoni LDR, në anën e rezistorit, shtoni lidhjet A0 dhe në anën e kundërt, shtoni 1 hyrje 5V për secilën tabelë që po përdorni, kështu që nëse përdorni 2 dërrasa, do të dëshironi që secila prej tyre të ketë një kunj 5V dhe A0 që shkon në LDR.

Lidhni të gjitha telat në mënyrë që të jetë e njëjtë me diagramin- 2 Hyrje në LDR- 2 Dalje nga LDR dhe një rezistencë që lidhet me tokën- 8 tela në LCD, 1 5V, 1 Ground dhe 6 hyrje- 4 tela që lidhen me stepper- 2 lidhje me baterinë- Toka e pllakës së bukës duhet të lidhet

Hapi 3: Kodimi i Arduino

Kodimi Arduino
Kodimi Arduino

Këtu është një kod mostër për të ndryshuar statusin e ingranazhit bazuar në LDR

Ky është kodi që do të lejonte që projekti të kontrollonte automatikisht një perde. Fotografia e mësipërme shpjegon rrugët e ndryshme përmes deklaratave të futura IF përsa i përket perdes që ngrihet, zbret ose qëndron aty ku është. (klikoni mbi imazhin për ta parë të plotë pasi ka probleme me formatimin)

#defineLDRA0 // Përcakton ndryshoren "LDR" në A0 pin#include// Përfshin kodin motor stepper

constintstepsPerRevolution = 200; // Kur motor stepper është aktivizuar, rrotullimi i tij i plotë është i barabartë me 200 hapa

SteppermyStepper (hapatPerRevolution, 8, 9, 10, 11); // Përcakton hyrjen në hapës si kunjat 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Vendos sa shpejt motori bën një rotacionpinMode (LDR, INPUT); // Përcakton variablin "LDR" si një hyrje Serial.begin (9600); // Fillon një lexim serik }

voidloop () {intlightlevel = analogRead (LDR); // Përcakton variablin "lightlevel" si një veprim që lexon vlerën e "LDR" Serial.print ("Niveli i Dritës:"); Serial.println (niveli i lehtë); // Shtyp vlerën e "lightlevel" me titullin e mësipërm

/* Tani ekziston një lak i cili zbulon nivelin e dritës në çdo pikë të rrugës* 3 opsione janë në dispozicion, ngjituni, zbritni, qëndroni në të njëjtin pozicion* isshtë projektuar në mënyrë që nëse niveli i dritës të mbetet i njëjtë, do të qëndroni të njëjtë, nëse jo do të ndryshojë * dmth nëse është 950, atëherë shkon në 952, asgjë nuk do të ndodhë, megjithatë nëse do të shkonte nga 950 në 600 do të tërhiqte perden lart dhe anasjelltas * Çdo hap nënkuptohet me një letër para hapit për të gjurmuar se ku është në lak përmes monitorit serik */

if (lightlevel> = 900) {Serial.println ("A"); // Cili hap është në loopmyStepper.step (3*hapaPerRevolution); // Hapi bën 3 rrotullime përpara. Nëse është negative, shkon prapa vonesa (30000); // E lë atje për 5 minuta intlightlevel = analogRead (LDR); // Përcakton variablin "lightlevel" si leximin më të fundit nga LDRSerial.print ("Niveli i dritës:"); // Shtyp tekstin para variablës Serial.println (lightlevel) // Shtyp vlerën e nivelit të dritës

if (lightlevel> = 900) {Serial.println ("B"); myStepper.step (0); vonesë (10000); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);

if (lightlevel> = 900) {Serial.println ("C"); myStepper.step (3*-stepsPerRevolution); vonesë (500); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);}

tjetër {Serial.println ("D"); myStepper.step (3*-stepsPerRevolution); vonesë (10000); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);}}

tjetër {Serial.println ("E"); myStepper.step (3*-stepsPerRevolution); vonesë (10000); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);

if (lightlevel> = 900) {Serial.println ("F"); myStepper.step (0); vonesë (500); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);}

else {Serial.println ("G"); myStepper.step (0); vonesë (10000); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);}}

}

else {Serial.println ("H"); myStepper.step (0); vonesë (10000); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);

if (lightlevel> = 900) {Serial.println ("I"); myStepper.step (3*stepsPerRevolution); vonesë (10000); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);

if (lightlevel> = 900) {Serial.println ("J"); myStepper.step (3*-stepsPerRevolution); vonesë (500); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);}

tjetër {Serial.println ("K"); myStepper.step (3*-stepsPerRevolution); vonesë (10000); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);

}}

else {Serial.println ("L"); myStepper.step (0); vonesë (10000); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);

if (lightlevel> = 900) {Serial.println ("M"); myStepper.step (0); vonesë (500); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);}

else {Serial.println ("N"); myStepper.step (0); vonesë (10000); intlightlevel = analogRead (LDR); Serial.print ("Niveli i dritës:"); Serial.println (niveli i lehtë);

}}

}

}

Hapi 4: Opsionale: Ekran LCD

Kjo do të printonte nivelin e dritës të zbuluar nga LDR në ekranin LCD.

#përfshi

  • // Shton bibliotekën e kristaleve të lëngëta me kod shtesë#define ldr A0 // Përcakton variablin "ldr" në kunjin A0

    LiquidCrystal LCD (8, 9, 4, 5, 6, 7); // inicializoni bibliotekën me numrat e kunjave të ndërfaqes

    voidsetup () {// kodi që ekzekutohet një herë në startlcd.begin (16, 2); // vendos numrin e kolonave dhe linjave të LCD përkatësishtpinMode (ldr, INPUT); // Përcakton ldr si një input pinSerial.begin (9600); // Fillon komunikimin me monitorin serik

    }

    voidloop () {// kodi që do të përsëritet vazhdimishtSerial.println (analogRead (ldr)); // Shtyp leximin që merr ldr (një numër midis 0-1023) në serial monitorlcd.setCursor (6, 0); // vendosni kursorin në kolonën 6, rreshti 0lcd.print (analogRead (ldr)); // Shtyp këtë lexim në ekranin e ekranit LCD (1000); // Vonon komandën tjetër për një sekondë

    }

    Hapi 5: Pjesët e Shtypura

    Përdorni skedarët e mëposhtëm për të printuar stendën dhe ingranazhet. Mund ta personalizoni ingranazhin për qëllimet tuaja dhe mund ta përdorni kllapën për ta montuar në mur ose si ekran. Meqenëse ingranazhi 3D është i dobët, një ingranazh i vërtetë mund të përdoret si zëvendësues i tij për sa kohë që përputhet me perden që do të kontrollonte.

    Nëse do të përdoret ingranazhi i printuar 3D, një nga dhëmbët e ingranazhit është hequr në mënyrë që një vidë e vendosur ta fiksojë atë në motor.

    2 këmbët e përparme të kllapës së murit gjithashtu mund të hiqen nëse do të montoheshin në një mur. Ato u shtuan vetëm që të ngrihej ndërsa ne po testonim me të.

    Hapi 6: Vendosja

    Tani që të gjitha pjesët janë gati, është koha për të filluar vendosjen përfundimtare.

    Së pari, vendoseni motorin shkelës në kutinë e dhënë në stendë dhe vendosni ingranazhin në boshtTjetra, lëvizni telat në mënyrë që ata të shkojnë prapa stendës Së fundi, vendosni arduino dhe baterinë prapa stendës

    Tabela juaj tani duhet të duket si ajo e paraqitur më lart.

    Urime!

    Pajisja mund të përdoret për perde të automatizuara ose ndonjë gjë tjetër që dëshironi të kontrollohet nga LDR.

    Ju keni mbaruar. Shijoni krijimin tuaj të ri.

Recommended: