Talaan ng mga Nilalaman:

Banayad na Kinokontrol na Stepper Motor + Wall Bracket / Stand: 6 na Hakbang
Banayad na Kinokontrol na Stepper Motor + Wall Bracket / Stand: 6 na Hakbang

Video: Banayad na Kinokontrol na Stepper Motor + Wall Bracket / Stand: 6 na Hakbang

Video: Banayad na Kinokontrol na Stepper Motor + Wall Bracket / Stand: 6 na Hakbang
Video: Стиральная машина рвет вещи (диагностика и ремонт) 2024, Disyembre
Anonim
Banayad na Kinokontrol na Stepper Motor + Wall Bracket / Stand
Banayad na Kinokontrol na Stepper Motor + Wall Bracket / Stand

Ginagamit ang stand na ito upang makapaglagay ng isang Arduino stepper motor na motor, na idinisenyo upang awtomatikong kontrolin ang isang kurtina ayon sa antas ng ilaw sa silid. Maaari ka ring magdagdag ng isang LCD screen upang mai-print ang antas ng ilaw. Ang 3D gear ay para lamang sa pagpapakita, ang isang tunay na gamit ay maaaring kailanganin para sa praktikal na aplikasyon tulad ng kurtina ngunit din ang anumang iba pang application na maaari mong maiisip.

Hakbang 1: Mga Sangkap

Upang simulan ang proyektong ito kakailanganin mo;

- 2 Arduino chip-set- Isang Arduino motor Shield- Isang Arduino LCD Screen- 1 Breadboard- 1 bi-polar Stepper Motor- 1 D na baterya- 1 Light Dependent Resistor - 1 10k Ω Resistor- 10 Mga male-male wires- 6 Male- mga kable na babae- Pag-access sa isang 3D printer

Hakbang 2: Konstruksyon ng Arduino

Pagtatayo ng Arduino
Pagtatayo ng Arduino

I-line up muna ang kalasag ng motor gamit ang mga pin ng Arduino at kapag nakapila na sila, ilagay ito nang mahigpit. Susunod na ikabit ang mga wire ng stepper motor sa mga pin 8, 9, 10 at 11 ng kalasag ng motor. Matapos na ikonekta ang baterya D sa mga puwang tulad ng ipinakita sa diagram. Susunod na gugustuhin mong makuha ang 6 na mga wire (lalaki sa babae) para sa ang screen ng LCD at isaksak ang mga ito sa iba pang yunit ng Arduino tulad ng ipinakita sa circuit diagram. Pagkatapos ay i-set up ang LDR tulad ng ipinakita sa itaas, kasama ang risistor na kumokonekta sa negatibong hilera. Kapag idinagdag ang LDR, sa gilid ng risistor, idagdag ang mga koneksyon sa A0 at sa kabaligtaran, magdagdag ng 1 5V input para sa bawat board na iyong ginagamit, kaya kung gumagamit ka ng 2 board, gugustuhin mong magkaroon ng 5V at A0 pin ang bawat isa sa LDR.

Ikonekta ang lahat ng mga wires kaya't pareho ito ng diagram- 2 Mga input sa LDR- 2 Mga output mula sa LDR at isang risistor na kumokonekta sa ground- 8 na mga wire sa LCD, 1 5V, 1 Ground at 6 na input- 4 na mga wire na kumokonekta sa stepper- 2 mga koneksyon sa baterya- Ang groundboard ground ay dapat na konektado

Hakbang 3: Coding Arduino

Coding Arduino
Coding Arduino

Narito ang ilang sample code upang baguhin ang katayuan ng gear batay sa LDR

Ito ang code na magpapahintulot sa proyekto na awtomatikong kontrolin ang isang kurtina. Ipinapaliwanag ng larawan sa itaas ang iba't ibang mga landas sa pamamagitan ng nakapugad na mga pahayag ng KUNG sa mga tuntunin ng kurtina na pataas, pababa o manatili kung nasaan ito. (mag-click sa imahe upang makita ito nang buo dahil may mga isyu sa pag-format)

# kahuluganLDRA0 // Tinutukoy ang variable na "LDR" sa A0 pin # isama// Kasama ang stepper motor code

constintstepsPerRevolution = 200; // Kapag ang stepper motor ay naaktibo, ang buong pag-ikot nito ay katumbas ng 200 mga hakbang

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Tinutukoy ang input sa stepper bilang mga pin 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Itinatakda kung gaano kabilis ang motor ay gumagawa ng isang rotationpinMode (LDR, INPUT); // Tinutukoy ang variable na "LDR" bilang isang input Serial.begin (9600); // Nagsisimula ng isang serial na pagbasa }

voidloop () {intlightlevel = analogRead (LDR); // Tinutukoy ang variable na "lightlevel" bilang isang aksyon na binabasa ang halaga ng "LDR" Serial.print ("Light Level:"); Serial.println (lightlevel); // Nai-print ang halaga ng "lightlevel" na may caption sa itaas

/ * Mayroon na ngayong isang loop na nakita ang antas ng ilaw sa bawat punto ng paraan * 3 mga pagpipilian ay magagamit, umakyat, bumaba, manatili sa parehong posisyon * Ito ay dinisenyo upang kung ang lightlevel ay mananatiling pareho, ito ay manatiling pareho, kung hindi ito magbabago * ibig sabihin kung ito ay 950, pagkatapos ay mapupunta sa 952, walang mangyayari, gayunpaman kung nagpunta ito mula 950 hanggang 600 ay hihilahin nito ang kurtina at ibaliktad ang * Ang bawat hakbang ay sinasaad ng isang titik sa harap ng hakbang upang subaybayan kung nasaan ito sa loop sa pamamagitan ng serial monitor * /

kung (lightlevel> = 900) {Serial.println ("A"); // Aling hakbang ito sa loopmyStepper.step (3 * stepsPerRevolution); // Ang stepper ay gumagawa ng 3 pasulong na mga rebolusyon. Kung ito ay negatibo, bumabalik ito sa likod (30000); // Iniwan ito doon sa loob ng 5 minuto ng intlightlevel = analogRead (LDR); // Tinutukoy ang mabubuting "lightlevel" bilang pinakabagong pagbabasa mula sa LDRSerial.print ("Antas ng Banayad:"); // I-print ang teksto sa harap ng variable na Serial.println (lightlevel) // I-print ang halaga ng antas ng ilaw

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

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

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

iba pa {Serial.println ("E"); myStepper.step (3 * -stepsPerRevolution); antala (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

kung (lightlevel> = 900) {Serial.println ("F"); myStepper.step (0); antala (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}

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

}

iba pa {Serial.println ("H"); myStepper.step (0); antala (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

kung (lightlevel> = 900) {Serial.println ("I"); myStepper.step (3 * stepsPerRevolution); antala (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

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

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

}}

iba pa {Serial.println ("L"); myStepper.step (0); antala (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

kung (lightlevel> = 900) {Serial.println ("M"); myStepper.step (0); antala (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}

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

}}

}

}

Hakbang 4: Opsyonal: LCD Screen

Ipo-print nito ang antas ng ilaw na nakita ng LDR sa LCD screen.

# isama

  • // Nagdaragdag ng likidong kristal na aklatan na may karagdagang code # tukuyin ang ldr A0 // Tinutukoy ang variable na "ldr" sa A0 pin

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // ipasimula ang library sa mga bilang ng mga interface ng interface

    voidsetup () {// code na tumatakbo nang isang beses sa startlcd.begin (16, 2); // set up ang bilang ng mga haligi at linya ng LCD ayon sa pagkakabanggitMin (ldr, INPUT); // Tinutukoy ang ldr bilang isang input pinSerial.begin (9600); // Nagsisimula ang komunikasyon sa serial monitor

    }

    voidloop () {// code na mauulit na tuloy-tuloySerial.println (analogRead (ldr)); // Nai-print ang pagbabasa ng pick ng ldr (isang numero sa pagitan ng 0-1023) sa serial monitorlcd.setCursor (6, 0); // itakda ang cursor sa haligi 6, linya 0lcd.print (analogRead (ldr)); // Nai-print ang pagbabasa na ito sa LCD screendelay (1000); // Naantala ang susunod na utos para sa isang segundo

    }

    Hakbang 5: Mga Naka-print na Bahagi

    Gamitin ang mga sumusunod na file upang mai-print ang stand at gear. Maaari mong ipasadya ang gear para sa iyong sariling mga layunin at maaari mong gamitin ang bracket upang mai-mount ito sa isang pader o bilang isang display. Dahil mahina ang gear ng 3D, maaaring magamit ang isang totoong gear bilang isang kapalit nito hangga't tumutugma ito sa kurtina na makokontrol nito.

    Kung gagamitin ang naka-print na gear na 3D, natanggal ang isa sa mga ngipin ng gear upang ang isang itinakdang tornilyo ay maaaring ayusin ito sa motor.

    Ang harap na 2 binti ng bracket ng pader ay maaari ring alisin kung mai-mount sa isang pader. Naidagdag lamang ang mga ito upang tumayo ito habang sinusubukan namin ito.

    Hakbang 6: Pagkalagay

    Ngayon na handa na ang lahat ng mga bahagi, oras na upang simulan ang pangwakas na pagkakalagay.

    Una, ilagay ang stepper motor sa ibinigay na kahon sa stand at ilagay ang gear sa axle Susunod, ilipat ang mga wire upang mapunta sila sa likod ng stand Panghuli, ilagay ang arduino at baterya sa likod ng stand

    Ang iyong board ay dapat na magmukha sa larawan sa itaas.

    Binabati kita!

    Maaaring magamit ang gear para sa mga awtomatikong kurtina o anumang iba pang bagay na nais mong kontrolin ng LDR.

    Tapos ka na. Masiyahan sa iyong bagong nilikha.

Inirerekumendang: