Turinys:

Šviesos valdomas žingsninis variklis + sieninis laikiklis/stovas: 6 žingsniai
Šviesos valdomas žingsninis variklis + sieninis laikiklis/stovas: 6 žingsniai

Video: Šviesos valdomas žingsninis variklis + sieninis laikiklis/stovas: 6 žingsniai

Video: Šviesos valdomas žingsninis variklis + sieninis laikiklis/stovas: 6 žingsniai
Video: Zingsninis variklis su valdikliu (Steper motor with driver) 2024, Lapkritis
Anonim
Šviesos valdomas žingsninis variklis + sieninis laikiklis/stovas
Šviesos valdomas žingsninis variklis + sieninis laikiklis/stovas

Šis stovas naudojamas „Arduino“valdomam žingsniniam varikliui, skirtam automatiškai valdyti užuolaidą pagal šviesos lygį kambaryje. Taip pat galite pridėti LCD ekraną, kad išspausdintumėte šviesos lygį. 3D pavara skirta tik demonstravimui, tikros pavaros gali prireikti praktiniam pritaikymui, pavyzdžiui, uždangai, bet ir bet kokiai kitai programai, apie kurią galite pagalvoti.

1 žingsnis: Ingredientai

Norėdami pradėti šį projektą, jums reikės;

- 2 „Arduino“mikroschemų rinkiniai- „Arduino“variklio skydas- „Arduino“skystųjų kristalų ekranas- 1 duonos lenta- 1 dviejų polių žingsninis variklis- 1 D baterija- 1 nuo šviesos priklausomas rezistorius- 1 10k Ω rezistorius- 10 laidų- 6 moterų laidai- Prieiga prie 3D spausdintuvo

2 žingsnis: „Arduino“kūrimas

„Arduino“statyba
„Arduino“statyba

Pirmiausia sulygiuokite variklio skydą su „Arduino“kaiščiais ir, kai jie bus išdėstyti, tvirtai padėkite. Tada prijunkite žingsninio variklio laidus prie variklio skydo 8, 9, 10 ir 11 kaiščių. Po to prijunkite D bateriją prie angų, kaip parodyta diagramoje. Toliau norėsite gauti 6 laidus (nuo vyrų iki moterų) LCD ekraną ir prijunkite juos prie kito „Arduino“įrenginio, kaip parodyta grandinės schemoje. Tada nustatykite LDR, kaip parodyta aukščiau, rezistoriui prijungus prie neigiamos eilutės. Pridėdami LDR, prie šono su rezistoriumi pridėkite prie A0 jungčių ir priešingoje pusėje pridėkite 1 5 V įvestį prie kiekvienos naudojamos plokštės, taigi, jei naudojate 2 plokštes, norėsite, kad kiekviena iš jų turėtų 5V ir A0 kaiščius, einančius į LDR.

Prijunkite visus laidus taip, kaip parodyta diagramoje- 2 įėjimai į LDR- 2 išėjimai iš LDR ir rezistorius, jungiantis prie įžeminimo- 8 laidai prie LCD, 1 5 V, 1 įžeminimas ir 6 įėjimai- 4 laidai, prijungti prie stepper- 2 jungtys prie akumuliatoriaus- Duonos lentos įžeminimas turi būti prijungtas

3 žingsnis: „Arduino“kodavimas

Kodavimas Arduino
Kodavimas Arduino

Čia yra pavyzdinis kodas, skirtas pakeisti pavaros būseną pagal LDR

Tai kodas, kuris leistų projektui automatiškai valdyti uždangą. Aukščiau pateikta nuotrauka paaiškina skirtingus kelius per įdėtus IF teiginius, atsižvelgiant į tai, kaip uždanga kyla aukštyn, žemyn arba lieka ten, kur yra. (spustelėkite paveikslėlį, kad pamatytumėte jį visiškai, nes yra formatavimo problemų)

#defineLDRA0 // Apibrėžia kintamąjį „LDR“į A0 kaištį#include// Apima žingsninio variklio kodą

constintstepsPerRevolution = 200; // Kai suaktyvinamas žingsninis variklis, visas jo sukimasis yra lygus 200 žingsnių

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Nustato žingsnio įvestį kaip 8, 9, 10, 11 kaiščius

voidsetup () {myStepper.setSpeed (60); // nustato, kaip greitai variklis sukasi sukimosi režimu (LDR, INPUT); // apibrėžia kintamąjį „LDR“kaip įvestį Serial.begin (9600); // Pradeda nuoseklųjį skaitymą }

voidloop () {intlightlevel = analogRead (LDR); // Apibrėžia kintamąjį „lightlevel“kaip veiksmą, nuskaitantį „LDR“Serial.print („Šviesos lygis:“) reikšmę; Serial.println (lengvas lygis); // Spausdinama „šviesaus lygio“vertė su antrašte aukščiau

/* Dabar yra kilpa, kuri aptinka šviesos lygį kiekviename kelio taške* Galimos 3 parinktys, pakilkite, nusileiskite žemyn, likite toje pačioje padėtyje* Ji sukurta taip, kad jei šviesos lygis išliks toks pat, jis likti tas pats, jei ne, jis pasikeis * ty jei jis yra 950, tada eina į 952, nieko neįvyks, tačiau jei jis pakiltų nuo 950 iki 600, tai užtrauktų uždangą aukštyn ir atvirkščiai * Kiekvienas žingsnis yra pažymėtas raide prieš žingsnį, kad būtų galima stebėti, kur jis yra cikle per serijinį monitorių */

if (lightlevel> = 900) {Serial.println ("A"); // Kuris žingsnis yra loopmyStepper.step (3*stepsPerRevolution); // Stepper daro 3 apsisukimus į priekį. Jei jis neigiamas, jis vėluoja (30000); // Palieka jį 5 min. Intlightlevel = analogRead (LDR); // Kintamą „šviesos lygį“apibrėžia kaip naujausią rodinį iš LDRSerial.print („Šviesos lygis:“); // Spausdina tekstą prieš kintamąjį Serial.println (lightlevel) // Spausdina šviesos lygio reikšmę

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

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

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 (lengvas lygis);}

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:"); Serial.println (lengvas lygis);

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

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 (lengvas lygis);}

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

}}

}

}

4 žingsnis: pasirinktinai: LCD ekranas

Taip LCD ekrane būtų atspausdintas LDR aptiktas šviesos lygis.

#įtraukti

  • // Prideda skystųjų kristalų biblioteką su papildomu kodu#define ldr A0 // Apibrėžia kintamąjį „ldr“prie A0 kaiščio

    „LiquidCrystal lcd“(8, 9, 4, 5, 6, 7); // inicijuoti biblioteką naudojant sąsajos kaiščių numerius

    voidsetup () {// kodas, kuris vieną kartą paleidžiamas startlcd.begin (16, 2); // nustatyti LCD stulpelių ir eilučių skaičių atitinkamaipinMode (ldr, INPUT); // Apibrėžia ldr kaip įvesties kaištįSerial.begin (9600); // Pradeda ryšį su serijiniu monitoriumi

    }

    voidloop () {// kodas, kuris bus nuolat kartojamasSerial.println (analogRead (ldr)); // Spausdina serijos monitorlcd.setCursor (6, 0) rodmenis, kuriuos paima ldr (skaičius nuo 0 iki 1023); // nustatykite žymeklį į 6 stulpelio eilutę 0lcd.print (analogRead (ldr)); // Spausdina šį rodmenį skystųjų kristalų ekrane (1000); // Sekančią komandą atideda vienai sekundei

    }

    5 žingsnis: spausdintos dalys

    Norėdami atspausdinti stovą ir pavarą, naudokite šiuos failus. Galite pritaikyti pavarą savo reikmėms ir naudoti laikiklį, kad pritvirtintumėte prie sienos arba kaip ekraną. Kadangi 3D pavara yra silpna, tikra pavara gali būti naudojama kaip jos pakaitalas, kol ji atitinka uždangą, kurią ji valdytų.

    Jei ketinama naudoti 3D spausdintą pavarą, vienas krumpliaračio dantis buvo nuimtas, kad varžtas galėtų jį pritvirtinti prie variklio.

    Priekines 2 sieninio laikiklio kojas taip pat galima nuimti, jei jis bus pritvirtintas prie sienos. Jie buvo tik pridėti, kad jis atsistotų, kol mes su juo bandėme.

    6 žingsnis: vieta

    Dabar, kai visos dalys yra paruoštos, laikas pradėti galutinį išdėstymą.

    Pirmiausia įdėkite žingsninį variklį į stovo dėžę ir padėkite pavarą ant ašies. Tada perkelkite laidus taip, kad jie eitų už stovo. Galiausiai padėkite arduino ir akumuliatorių už stovo

    Dabar jūsų lenta turėtų atrodyti taip, kaip pavaizduota aukščiau.

    Sveikinu!

    Pavara gali būti naudojama automatinėms užuolaidoms ar bet kuriam kitam dalykui, kurį norite valdyti LDR.

    Su tavimi baigta. Mėgaukitės savo nauja kūryba.

Rekomenduojamas: