Sisällysluettelo:

Valo -ohjattu askelmoottori + seinäkiinnike/jalusta: 6 vaihetta
Valo -ohjattu askelmoottori + seinäkiinnike/jalusta: 6 vaihetta

Video: Valo -ohjattu askelmoottori + seinäkiinnike/jalusta: 6 vaihetta

Video: Valo -ohjattu askelmoottori + seinäkiinnike/jalusta: 6 vaihetta
Video: 40w moving head 2024, Marraskuu
Anonim
Kevyesti ohjattu askelmoottori + seinäkiinnike/jalusta
Kevyesti ohjattu askelmoottori + seinäkiinnike/jalusta

Tässä jalustassa käytetään Arduino -ohjattua askelmoottoria, joka on suunniteltu ohjaamaan verhoa automaattisesti huoneen valotason mukaan. Voit myös lisätä LCD -näytön tulostaaksesi valon. 3D -vaihde on vain esittelyä varten, todellinen vaihde voi olla tarpeen käytännön sovelluksiin, kuten verhoihin, mutta myös muihin sovelluksiin, joita voit ajatella.

Vaihe 1: Ainekset

Tämän projektin aloittamiseen tarvitset;

- 2 Arduino-sirusarjaa- Arduino-moottorisuoja- Arduino-LCD-näyttö- 1 leipälevy- 1 kaksinapainen askelmoottori- 1 D-akku- 1 valosta riippuva vastus- 1 10 kΩ: n vastus- 10 uros-urosjohtoa- 6 uros- naarasjohdot- Pääsy 3D-tulostimeen

Vaihe 2: Arduinon rakentaminen

Arduinon rakentaminen
Arduinon rakentaminen

Aseta ensin moottorin suojus Arduino -nastoihin ja aseta se tiukasti alas, kun ne ovat rivissä. Kiinnitä seuraavaksi askelmoottorin johdot moottorinsuojuksen nastoihin 8, 9, 10 ja 11. Kytke D -akku aukkoihin kuvan osoittamalla tavalla. LCD -näyttö ja kytke ne toiseen Arduino -yksikköön kytkentäkaavion mukaisesti. Sitten asenna LDR yllä kuvatulla tavalla, jolloin vastus on liitetty negatiiviseen riviin. A0 -liitännät ja vastakkaiselle puolelle lisää 1 5 V: n tulo kullekin käyttämällesi levylle, joten jos käytät 2 levyä, haluat, että jokaisessa niistä on 5 V: n ja A0 -nasta LDR: ään.

Liitä kaikki johdot niin, että ne ovat kaavion mukaiset- 2 tuloa LDR: ään- 2 ulostuloa LDR: stä ja vastus, joka yhdistää maadoitukseen- 8 johtoa nestekidenäyttöön, 1 5 V, 1 maa ja 6 tuloa- 4 johtoa askel- 2 liitäntää akkuun- Leipälevyn maadoitus on kytkettävä

Vaihe 3: Arduinon koodaus

Arduinon koodaus
Arduinon koodaus

Tässä on esimerkki koodista vaihteen tilan muuttamiseksi LDR: n perusteella

Tämä on koodi, jonka avulla projekti voi automaattisesti ohjata verhoa. Yllä oleva kuva selittää eri polut sisäkkäisten IF -lausekkeiden kautta verhon nousun, laskun tai pysymisen suhteen. (klikkaa kuvaa nähdäksesi sen kokonaisuudessaan, koska muotoilussa on ongelmia)

#defineLDRA0 // Määrittää muuttujan "LDR" arvoksi A0 pin#include// Sisältää askelmoottorin koodin

constintstepsPerRevolution = 200; // Kun askelmoottori aktivoidaan, sen täysi kierros on 200 askelta

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Määrittää askeleen syötteen nastat 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Määrittää, kuinka nopeasti moottori pyörii kierretapaaMode (LDR, INPUT); // Määrittää muuttujan "LDR" tuloksi Serial.begin (9600); // Käynnistää sarjamittauksen }

voidloop () {intlightlevel = analogRead (LDR); // Määrittää muuttujan "lightlevel" toiminnoksi, joka lukee arvon "LDR" Serial.print ("Light Level:"); Serial.println (lightlevel); // Tulostaa "kevyen tason" arvon yllä olevan tekstityksen kanssa

/* Nyt on silmukka, joka tunnistaa valon tason joka tiepisteessä* 3 vaihtoehtoa on käytettävissä, nouse, laske, pysy samassa asennossa* Se on suunniteltu siten, että jos valotaso pysyy samana, se pysy samana, ellei se muuttuu * eli jos se on 950, sitten menee 952: een, mitään ei tapahdu, mutta jos se siirtyisi 950: stä 600: een, se vetäisi verhon ylös ja päinvastoin * Jokainen vaihe on merkitty kirjaimella vaiheen edessä seurataksesi missä se on silmukassa sarjamonitorin kautta */

if (lightlevel> = 900) {Serial.println ("A"); // Mikä vaihe on loopmyStepper.step (3*stepsPerRevolution); // Askeltaja tekee 3 kierrosta eteenpäin. Jos se on negatiivinen, se siirtyy taaksepäin viive (30000); // Jättää sen sinne 5 minuutiksi intlightlevel = analogRead (LDR); // Määrittää muuttuvan "lightlevel" -arvon viimeisimmäksi lukemaksi LDRSerial.printistä ("Light Level:"); // Tulostaa tekstin muuttujan Serial.println eteen (lightlevel) // Tulostaa valotason arvon

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

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

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

else {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 (kevyt taso);}

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

}

else {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:"); Sarja.println (kevyt taso);

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

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

}}

else {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 (kevyt taso);}

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

}}

}

}

Vaihe 4: Valinnainen: LCD -näyttö

Tämä tulostaisi LDR: n havaitseman valon tason nestekidenäytölle.

#sisältää

  • // Lisää nestekidekirjaston lisäkoodilla#define ldr A0 // Määrittää muuttujan "ldr" A0 -nastaan

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // alustetaan kirjasto käyttöliittymän nastojen numeroilla

    voidsetup () {// koodi, joka suoritetaan kerran osoitteessa startlcd.begin (16, 2); // aseta nestekidenäytön sarakkeiden ja rivien määrä vastaavasti pinMode (ldr, INPUT); // Määrittää ldr: n tulotapiksiSerial.begin (9600); // Aloittaa viestinnän sarjamonitorin kanssa

    }

    voidloop () {// koodi, joka toistetaan jatkuvastiSerial.println (analogRead (ldr)); // Tulostaa lukeman, jonka ldr poimii (luku väliltä 0-1023) sarjamonlcd.setCursor (6, 0); // aseta kohdistin sarakkeeseen 6, rivi 0lcd.print (analogRead (ldr)); // Tulostaa tämän lukeman nestekidenäytölle (1000); // Viivästyttää seuraavan komennon sekunnin

    }

    Vaihe 5: Tulostetut osat

    Tulosta jalusta ja vaihde seuraavien tiedostojen avulla. Voit räätälöidä vaihteen omiin tarkoituksiisi ja voit kiinnittää sen kiinnikkeellä seinälle tai näyttöön. Koska 3D -vaihde on heikko, oikeaa vaihdetta voidaan käyttää sen korvikkeena niin kauan kuin se vastaa sen ohjaamaa verhoa.

    Jos aiot käyttää 3D -tulostettua vaihdetta, yksi hammaspyörän hampaista on poistettu, jotta säätöruuvi voi kiinnittää sen moottoriin.

    Seinäkiinnikkeen kaksi etujalkaa voidaan myös irrottaa, jos se kiinnitetään seinään. Ne lisättiin vain, jotta se pysyisi pystyssä, kun testasimme sitä.

    Vaihe 6: Sijoittaminen

    Nyt kun kaikki osat ovat valmiita, on aika aloittaa lopullinen sijoittaminen.

    Aseta ensin askelmoottori jalustan mukana toimitettuun laatikkoon ja aseta vaihde akselille Seuraavaksi siirrä johdot niin, että ne menevät telineen taakse Lopuksi aseta arduino ja akku jalustan taakse

    Taulusi pitäisi nyt näyttää yllä olevan kuvan mukaiselta.

    Onnittelut!

    Vaihdetta voidaan käyttää automaattisiin verhoihin tai mihin tahansa muuhun asiaan, jonka haluat LDR: n ohjaavan.

    Olet valmis. Nauti uudesta luomuksestasi.

Suositeltava: