Sisällysluettelo:
- Vaihe 1: Ainekset
- Vaihe 2: Arduinon rakentaminen
- Vaihe 3: Arduinon koodaus
- Vaihe 4: Valinnainen: LCD -näyttö
- Vaihe 5: Tulostetut osat
- Vaihe 6: Sijoittaminen
Video: Valo -ohjattu askelmoottori + seinäkiinnike/jalusta: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
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
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
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
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:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen