Përmbajtje:
- Hapi 1: Hapi 1: Saldimi dhe lidhja e qarkut jashtë kontejnerit
- Hapi 2: Hapi 2: Ngarkimi i kodit dhe përshtatja e tij sipas nevojave tuaja
- Hapi 3: Hapi 3: Përmbajini Steppers dhe Arduino nëse dëshironi
Video: Kohëmatësi Stepper Pomodoro: 3 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:28
Stepper Pomodoro është një kohëmatës tavoline për të ndihmuar në menaxhimin e listës së detyrave të tyre të përditshme duke e ndarë secilën periudhë të punës në segmente 30 minutëshe. Sidoqoftë, ndryshe nga një kohëmatës normal Pomodoro, nuk ju shqetëson duke treguar sasinë e kohës së mbetur. Në vend të kësaj, ajo tregon kohën përafërsisht përmes cilës nga të tre dials është tik -tak. Duke mos treguar kohën e saktë ju lejon të përqendroheni në të vërtetë në detyrën në fjalë, në vend që të kontrolloni vazhdimisht kohën tuaj të mbetur. Ky Pomodoro është i përsosur për ata që kanë nevojë për një strukturë të lehtë dhe modeste në menaxhimin e detyrave të tyre.
Mjetet
• Makine per ngjitjen e metalit
• Zhveshëset me tela
• Prerës me lazer (ose sander në varësi të mënyrës se si dëshironi të krijoni numrat e kohëmatësit)
• Stërvitje (kam përdorur një stërvitje për të shpuar vrima mjaft të mëdha për numrat)
Materiale
• 1 Arduino Uno
• 1 pjatë buke me madhësi gjysmë
• Ura 3 H (kam përdorur DRV8833, një mburojë motorike më ka kursyer pak kohë dhe dhimbje koke)
• 3 motorë Stepper (kam përdorur stepat NEMA 17)
• 1 Buton
• 1 rezistencë 220-1K ohm (çdo brenda rrezes është e mirë)
• Përshtatës AC/DC (kam përdorur një 12V, ndoshta shumë i madh për këtë sasi stepash)
• Ndarës i energjisë
• Teli USB A-B
• Telat e pllakave të bukës
• Saldator
• Materialet për enën e kohëmatësit
• Akrilik për dials
• Thonjtë ose kunjat metalikë për të vepruar si krah i palëvizshëm i kohëmatësit
Hapi 1: Hapi 1: Saldimi dhe lidhja e qarkut jashtë kontejnerit
Për këtë hap unë fillova duke bashkuar të gjitha urat e mia H (nëse blini mburojën motorike nuk duhet të lidhni këto. Pasi të keni një urë H për secilin hap, mund të kontrolloni se si janë lidhur telat tuaj.
NEMA 17 janë ata që njihen si motorë stepper bipolarë, që do të thotë se ata kanë dy (dhe jo një) mbështjellje brenda motorit të cilat ndryshojnë polaritetin për të lejuar lëvizjen e saktë të motorit. Hapat bipolar normalisht kanë katër tela dhe stepat Polar normalisht kanë gjashtë, kjo i komplikoi udhëzimet në internet pak. Sidoqoftë, mund të lidhni një metër shumëfish në dy tela dhe të shihni nëse ato janë të lidhura ose nëse nuk janë. Nxjerrësit NEMA 17 kanë rendin e tyre të telit në rendin e ngjyrave të KUQ, të Verdhë, GRI, GREEN, ku e kuqja dhe grija janë çifti i parë polar dhe e verdha dhe jeshilja çifti i dytë polar. Nëse në çdo moment hapi fillon të dridhet në vend që të përfundojë lëvizjen e pritshme, shanset janë që telat tuaj në një farë mënyre nuk janë polarizuar saktë me binjakun e tyre ose një është shkëputur. Çdo hap kontrollohet nëpërmjet katër kunjave dalës të cilët lidhen me urat DRV8833 H. Rendi i instalimeve elektrike për hyrjen në DRV8833 është: IN1, IN2, Power, Ground, IN3, IN4. Për qëllime dalëse, NEMA thjesht lidhet me katër të mesmet nga gjashtë kunjat në rendin e: E KUQ, GRI, E VERT,, E GJELLE. Tani le të lidhim energjinë. Unë kam NEMA -të e mia në portet dixhitale 2-13.
Për ta fuqizuar këtë kam blerë një përshtatës 12V AC/DC me ndarës për të qenë në gjendje të fuqizojë si Arduino, ashtu edhe të gjithë stepat. KUJDES: Mos i lidhni telat e rrymës dhe të tokëzimit nga Arduino që tashmë marrin energji nga porti në panelin e bukës që merr energji të drejtpërdrejtë nga AC/DC. Do të skuqet dërrasa juaj. Nga përshtatësi 12V i lidhur në mur, një pjesë e ndarësit shkoi direkt në portin e Arduino dhe tjetra në pozitive dhe negative të tabelës së bukës.
Së fundmi, është koha për të lidhur butonin. Njëra anë e butonit do të ketë nevojë për energji (me rezistencën tonë të bashkuar), si dhe kunjin e daljes të bashkuar (kjo mund të bëhet edhe nga pllaka e bukës). Kunja tjetër do të jetë toka jonë. Këto tre tela duhet të lidhen me: Fuqinë me rezistencë në 5V, daljen në A0 dhe tokëzimin në tokë të gjitha në vetë bordin Arduino Uno.
Nga këtu ne duhet të jemi në gjendje të përpiqemi të kontrollojmë hapat duke përdorur këtë kod bazë të testit të hapave që gjendet këtu. Ky shpjegim në Arduino.cc gjithashtu bën një shpjegim më të plotë të stepave bi/polare nëse keni nevojë për të. Tjetra le të hyjmë në kodin për Pomodoro!
Hapi 2: Hapi 2: Ngarkimi i kodit dhe përshtatja e tij sipas nevojave tuaja
Më poshtë është kodi për butonin tim Pomodoro, në mënyrë që ta personalizoni sipas konfigurimit tuaj, ndiqni këto hapa:
1. Vendosni sa hapa për revolucion ka lloji juaj i hapave personal (NEMA 17 kanë 200 dhe është i shënuar në numrin e plotë konstant të quajtur stepsPerRevolution).
2. Vendosni se ku po futet butoni juaj në butonin e thirrësit të numrit të plotë konstant.
3. Vendosni se nga duhet të dalë arduino juaj për të komanduar hapat (këto pjesë mund të ndryshojnë më shumë midis llojeve të urës H, pasi shumë prej tyre kanë biblioteka të ndryshme që përdorin).
4. Vendosni shpejtësinë e hapit në RPM në.setSpeed (e kam vendosur timen për 1 rpm kur ktheni në drejtim të akrepave të orës dhe 30 rpm kur ktheheni në drejtim të kundërt).
5. Vendosni sa herë dëshironi që secila nga njerkat tuaja të kthehet para se të vazhdojë (njerkat e mia numërojnë dhjetë minuta, kështu që ato rrotullohen dhjetë herë me 1 RPM).
6 Vendosni sa kohë dëshironi që ajo të rrotullohet prapa.
#përfshi
const int hapaPerRevolution = 200; // vendosja e konstantes se sa hapa janë në çdo revolucion të plotë të motorëve të mi stepper
const int buttonPin = A0; // vendosja e konstantes së hyrjes së butonit tim
Stepper firstStepper (hapaPerRevolution, 2, 3, 4, 5); // inicializoni bibliotekën stepper në disa kunja
Stepper secondStepper (hapaPerRevolution, 6, 7, 8, 9); Hapi i tretë Hapi (hapatPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (hapatPerRevolution, 2, 3, 4, 5); // riinitalizoni bibliotekën stepper në këto kunja për të qenë në gjendje të rivendosni rpm për kur paralajmëroni se koha ka skaduar Stepper secondStepperBack (hapatPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack (hapatPerRevolution, 10, 11, 12, 13);
int minutaCounter = 0; // int duke numëruar revolucionet e plota të stepave
int timerState = LOW; // gjendja aktuale e kohëmatësit pomodoro (HIGH = on, LOW = off/reset) butoni intState; // leximi aktual nga kunja hyrëse int lastButtonState = HIGH; // leximi i mëparshëm nga kunja hyrëse
// variablat e mëposhtëm janë të gjata pa shenjë sepse koha, e matur në milisekonda, // shpejt do të bëhet një numër më i madh sesa mund të ruhet në një int. pa shenjë e gjatë lastDebounceTime = 0; // hera e fundit që kunja e daljes ishte e ndryshuar pa nënshkrim debounceDelay = 50; // koha e zbardhjes; rritet nëse prodhimi dridhet
void setup () {
pinMode (buttonPin, INPUT_PULLUP); // vendosni konstanten e butonit si hyrje
firstStepper.setSpeed (1); // vendosni shpejtësinë në 1 rpm për numërimin 10 minuta për stepper secondStepper.setSpeed (1); tretëStepper.setSpeed (1); firstStepperBack.setSpeed (30); // vendosni shpejtësinë në 30 rpm për të paralajmëruar se koha ka skaduar pasi Pomodoro ka përfunduar secondStepperBack.setSpeed (30); tretëStepperBack.setSpeed (30);
Serial.filloj (9600); // filloni monitorin serik me një normë baud 9600
}
lak void () {
// lexoni gjendjen e kalimit në një ndryshore lokale: int leximi = digitalRead (buttonPin);
// kontrolloni për të parë nëse sapo keni shtypur butonin
// (dmth. hyrja shkoi nga LOW në HIGH), dhe ju keni pritur // mjaft kohë që nga shtypja e fundit për të injoruar çdo zhurmë:
// Nëse ndërruesi ndryshoi, për shkak të zhurmës ose shtypjes:
nëse (leximi! = lastButtonState) {// rivendosni kohëmatësin e debunimit lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// çfarëdo që të jetë leximi, ka qenë atje për më gjatë // sesa vonesa e debuncimit, prandaj merreni si gjendjen aktuale aktuale:
// nëse gjendja e butonit ka ndryshuar:
nëse (leximi! = buttonState) {buttonState = leximi;
// kaloni vetëm aktivizimin e kohëmatësit nëse gjendja e re e butonit tregon se është shtypur
// shtyp një herë për ta ndezur, shtyp përsëri për ta fikur nëse (buttonState == LOW) {timerState =! timerState; Serial.print ("Gjendja e kohëmatësit është"); Serial.println (timerState); }}}
nëse (timerState == LART) {
Serial.println ("Kohëmatësi Pomodoro ka filluar"); if (minutaCounter <11) {// nëse vlera e dytë aktuale është e ndryshme nga vlera e mëparshme atëherë firstStepper.step (stepsPerRevolution); // ktheni hapin 200 hapa/1 rrotull minutaCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutaCounter); }
nëse (11 <= minutaCounter && minutaCounter <21) {// nëse vlera e dytë aktuale është e ndryshme nga vlera e mëparshme atëherë secondStepper.step (stepsPerRevolution); // ktheni hapin 200 hapa/1 rrotull minutaCounter ++; Serial.print ("minutesCounter is"); Serial.println (minuta Counter); }
nëse (21 <= minutaCounter && minutaCounter <31) {// nëse vlera e dytë aktuale është e ndryshme nga vlera e mëparshme atëherë thirdStepper.step (hapatPerRevolution); // ktheni hapin 200 hapa/1 rrotull minutaCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutaCounter); }
nëse (31 <= minutaCounter && minutaCounter <1031) {// nëse vlera e dytë aktuale është e ndryshme nga vlera e mëparshme atëherë firstStepperBack.step (-1); // kthejeni hapin mbrapa 1 hap në sekuencë për t'u dukur sikur të gjithë po punojnë njëkohësisht secondStepperBack.step (-1); tretëStepperBack.step (-1); minutaCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutaCounter); }} else {Serial.println ("Kohëmatësi Pomodoro është i fikur"); } // ruani leximin. Herën tjetër përmes lakut, // do të jetë lastButtonState: lastButtonState = leximi; }
Hapi 3: Hapi 3: Përmbajini Steppers dhe Arduino nëse dëshironi
Zgjodha të krijoja një formë paralelogramike për orën time. Kjo formë dhe zgjedhjet materiale të lisit të kuq u frymëzuan nga mobiljet moderne të shekullit të mesëm. Njëra pjesë me të cilën e kisha më së shumti vështirësi ishte vendosja e njerkëve me numra përmes portave të tyre që duheshin parë.
Recommended:
Stepper Motor i kontrolluar me motor Stepper pa mikrokontrollues (V2): 9 hapa (me fotografi)
Stepper Motor i kontrolluar Stepper Motor Pa Mikrokontrollues (V2): Në një nga udhëzimet e mia të mëparshme, ju tregova se si të kontrolloni një motor stepper duke përdorur një motor stepper pa një mikrokontrollues. Ishte një projekt i shpejtë dhe argëtues, por erdhi me dy probleme të cilat do të zgjidhen në këtë Udhëzues. Pra, me zgjuarsi
Kohëmatësi Pomodoro i Projektimit me Laser: 5 Hapa
Kohëmatësi Pomodoro i Projektimit me Laser: Përshëndetje për të gjithë në shtëpitë e tyre gjatë mbylljes. Shpresoj që ky udhëzues t'ju ndihmojë të kaloni këto ditë. Kështu që unë kam përdorur teknikën pomodoro për të studiuar në shtëpi. Për këdo që nuk e di se çfarë është teknika pomodoro, është një teknikë që
Stepper Motor i kontrolluar Stepper Motor - Stepper Motor si një kodues rrotullues: 11 hapa (me fotografi)
Stepper Motor i kontrolluar Stepper Motor | Stepper Motor Si një kodues rrotullues: Keni disa motorë stepper të shtrirë përreth dhe doni të bëni diçka? Në këtë udhëzues, le të përdorim një motor stepper si një kodues rrotullues për të kontrolluar pozicionin e një motori tjetër stepper duke përdorur një mikrokontrollues Arduino. Pra, pa u zgjatur më tej, le të gjejmë
Stepper Motor Me D Flip Flops dhe 555 Timer; Pjesa e Parë e Qarkut Kohëmatësi 555: 3 Hapa
Motor Stepper Me D Flip Flops dhe Kohëmatës 555; Pjesa e Parë e Qarkut Kohëmatësi 555: Motori stepper është një motor DC që lëviz në hapa diskrete. Përdoret shpesh në printera dhe madje edhe në robotikë. Unë do ta shpjegoj këtë qark në hapa. Pjesa e parë e qarkut është një 555 kohëmatës Imageshtë imazhi i parë (shih më lart) me një çip 555 me
Kohëmatësi Pomodoro u takua me Unazën LED: 5 hapa
Pomodoro Timer u takua me Unazën LED: Mbani parasysh projektin e ITTT që të ketë ndryshime në funksionimin e kohëmatësit Pomodoro. De Pomodoro " teknik " është plotësisht e menaxhimit të mënyrës së vdekjes së njerëzve që mund të ndihmojnë në një projekt në kleine stappen te verdelen en regelmatig pauze te houden. Hierbij