สารบัญ:
- ขั้นตอนที่ 1: ขั้นตอนที่ 1: การบัดกรีและต่อวงจรภายนอกคอนเทนเนอร์
- ขั้นตอนที่ 2: ขั้นตอนที่ 2: การอัปโหลดโค้ดและปรับให้เข้ากับความต้องการของคุณ
- ขั้นตอนที่ 3: ขั้นตอนที่ 3: มี Steppers และ Arduino หากคุณต้องการ
วีดีโอ: Stepper Pomodoro Timer: 3 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
Stepper Pomodoro เป็นตัวจับเวลาบนโต๊ะเพื่อช่วยจัดการรายการงานประจำวันของพวกเขาโดยแบ่งแต่ละช่วงเวลาของการทำงานออกเป็น 30 นาที อย่างไรก็ตาม ไม่เหมือนกับตัวจับเวลา Pomodoro ปกติ มันไม่ทำให้คุณกังวลด้วยการแสดงระยะเวลาที่เหลือ แต่จะแสดงเวลาโดยประมาณที่หน้าปัดสามหน้าปัดกำลังเดินอยู่ การไม่แสดงเวลาที่แน่นอนจะช่วยให้คุณมีสมาธิกับงานที่ทำอยู่ได้จริง แทนที่จะตรวจสอบเวลาที่เหลืออยู่อย่างต่อเนื่อง Pomodoro นี้เหมาะสำหรับผู้ที่ต้องการโครงสร้างที่เบาและไม่สร้างความรำคาญในการจัดการงานของพวกเขา
เครื่องมือ
• หัวแร้ง
• เครื่องปอกสายไฟ
• เครื่องตัดเลเซอร์ (หรือเครื่องขัดขึ้นอยู่กับว่าคุณต้องการสร้างแป้นหมุนของตัวจับเวลาอย่างไร)
• สว่าน (ฉันใช้สว่านเจาะเพื่อเจาะรูที่ใหญ่พอสำหรับแป้นหมุน)
วัสดุ
• 1 Arduino Uno
• เขียงหั่นขนมครึ่งขนาด 1 แผ่น
• สะพาน 3 H (ฉันใช้ DRV8833 มอเตอร์ชีลด์ช่วยฉันเวลาและปวดหัวได้บ้าง)
• 3 สเต็ปเปอร์มอเตอร์ (ฉันใช้ NEMA 17 สเต็ปเปอร์)
• 1 ปุ่ม
• ตัวต้านทาน 220-1K โอห์ม 1 ตัว (ช่วงใดช่วงหนึ่งก็ดี)
• อะแดปเตอร์ AC/DC (ฉันใช้ไฟ 12V ซึ่งอาจใหญ่เกินไปสำหรับสเต็ปเปอร์จำนวนนี้)
• ตัวแยกไฟ
• สาย USB A-B
• สายเขียงหั่นขนม
• ประสาน
• วัสดุสำหรับใส่นาฬิกาจับเวลา
• อะครีลิคสำหรับหน้าปัด
• ตะปูหรือหมุดโลหะเพื่อทำหน้าที่เป็นตัวจับเวลาอยู่กับที่
ขั้นตอนที่ 1: ขั้นตอนที่ 1: การบัดกรีและต่อวงจรภายนอกคอนเทนเนอร์
สำหรับขั้นตอนนี้ ฉันเริ่มต้นด้วยการบัดกรีสะพาน H ทั้งหมดของฉันเข้าด้วยกัน (หากคุณซื้อแผงป้องกันมอเตอร์ คุณไม่จำเป็นต้องบัดกรีสิ่งเหล่านี้ เมื่อคุณมีสะพาน H สำหรับแต่ละสเต็ปแล้ว คุณสามารถตรวจสอบได้ว่าสเต็ปเปอร์ของคุณต่อสายอย่างไร
NEMA 17s คือสิ่งที่เรียกว่าสเต็ปปิ้งมอเตอร์แบบไบโพลาร์ ซึ่งหมายความว่ามีชุดคอยล์สองชุด (แทนที่จะเป็นหนึ่งชุด) ภายในมอเตอร์ ซึ่งจะเปลี่ยนขั้วเพื่อให้สามารถเคลื่อนที่ได้อย่างแม่นยำ ปกติสเต็ปเปอร์ไบโพลาร์จะมีสี่สายและสเต็ปเตอร์แบบโพลาร์มีหกสาย ซึ่งคำแนะนำนี้ค่อนข้างซับซ้อนทางออนไลน์ อย่างไรก็ตาม คุณสามารถต่อมัลติมิเตอร์กับสายไฟสองเส้น และดูว่ามีการเชื่อมต่อหรือไม่ สเต็ปเปอร์ NEMA 17 มีลำดับลวดในลำดับสี RED, YELLOW, GREY, GREEN โดยที่สีแดงและสีเทาเป็นคู่ขั้วแรก และสีเหลืองและสีเขียวเป็นคู่ขั้วที่สอง หาก ณ จุดใดก็ตาม สเต็ปเปอร์เริ่มกระตุกแทนที่จะเคลื่อนไหวตามที่คาดไว้ เป็นไปได้ว่าสายไฟของคุณไม่ได้โพลาไรซ์อย่างถูกต้องกับคู่แฝดหรือสายหนึ่งถูกตัดการเชื่อมต่อ สเต็ปเปอร์แต่ละตัวถูกควบคุมผ่านพินเอาต์พุตสี่ตัวที่เชื่อมต่อกับบริดจ์ DRV8833 H ลำดับการเดินสายสำหรับอินพุตไปยัง DRV8833 คือ IN1, IN2, Power, Ground, IN3, IN4 เพื่อวัตถุประสงค์ในการส่งออก NEMA เพียงแค่เชื่อมต่อกับสี่พินกลางของหกพินตามลำดับ: RED, GREY, YELLOW, GREEN ตอนนี้ให้เชื่อมต่อพลังงาน ฉันมี NEMA ของฉันบนพอร์ตดิจิทัล 2–13
ในการจ่ายไฟนี้ ฉันซื้ออะแดปเตอร์ AC/DC 12V พร้อมตัวแยกไฟเพื่อให้สามารถจ่ายไฟให้กับทั้ง Arduino และสเต็ปเปอร์ทั้งหมด คำเตือน: อย่าเชื่อมต่อสายไฟและสายกราวด์ของคุณจาก Arduino ที่ได้รับพลังงานจากพอร์ตไปยังเขียงหั่นขนมที่ได้รับพลังงานโดยตรงจาก AC/DC แล้ว มันจะทอดกระดานของคุณ จากอะแดปเตอร์ 12V ที่เสียบเข้ากับผนัง ส่วนหนึ่งของตัวแยกสัญญาณตรงไปที่พอร์ตของ Arduino และอีกส่วนหนึ่งไปยังขั้วบวกและลบของบอร์ดขนมปัง
สุดท้ายก็ถึงเวลาที่จะขอขึ้นปุ่ม ด้านหนึ่งของปุ่มจะต้องใช้ทั้งกำลังไฟ (โดยที่ตัวต้านทานของเราต่ออยู่) เช่นเดียวกับพินเอาต์พุตที่บัดกรีอยู่ (ซึ่งสามารถทำได้จากเขียงหั่นขนม) หมุดอีกอันจะเป็นพื้นของเรา ควรเสียบสายไฟทั้งสามนี้: กำลังไฟพร้อมตัวต้านทาน 5V, เอาต์พุตเป็น A0 และกราวด์ถึงกราวด์ทั้งหมดบนบอร์ด Arduino Uno
จากที่นี่ เราควรจะพยายามควบคุม stepper โดยใช้รหัสทดสอบ stepper พื้นฐานที่นี่ คำอธิบายบน Arduino.cc นี้ยังมีคำอธิบายอย่างละเอียดมากขึ้นเกี่ยวกับสเต็ปเปอร์แบบไบ/ยูนิโพลาร์ หากคุณต้องการ ต่อไปมาดูโค้ดของ Pomodoro!
ขั้นตอนที่ 2: ขั้นตอนที่ 2: การอัปโหลดโค้ดและปรับให้เข้ากับความต้องการของคุณ
ด้านล่างนี้คือรหัสสำหรับปุ่ม Pomodoro ของฉัน เพื่อปรับแต่งให้เข้ากับการตั้งค่าของคุณ ให้ทำตามขั้นตอนเหล่านี้:
1. กำหนดจำนวนก้าวต่อการปฏิวัติประเภทสเต็ปส่วนบุคคลของคุณมี (NEMA 17 มี 200 และแสดงเป็นจำนวนเต็มคงที่ที่เรียกว่า stepsPerRevolution)
2. ตั้งค่าตำแหน่งที่ปุ่มของคุณป้อนในปุ่มผู้โทรจำนวนเต็มคงที่
3. ตั้งค่าตำแหน่งที่ Arduino ของคุณควรส่งออกไปยังคำสั่ง steppers (ส่วนเหล่านี้อาจแตกต่างกันมากที่สุดระหว่างประเภทสะพาน H เนื่องจากหลายแห่งมีไลบรารีที่แตกต่างกันที่พวกเขาใช้)
4. ตั้งค่าความเร็ว stepper เป็น RPM ใน.setSpeed (ฉันตั้งค่าของฉันไว้ที่ 1 รอบต่อนาทีเมื่อหมุนตามเข็มนาฬิกาและ 30 รอบต่อนาทีเมื่อหมุนทวนเข็มนาฬิกา)
5. กำหนดจำนวนครั้งที่คุณต้องการให้แต่ละ steppers ของคุณเปิดก่อนที่จะเคลื่อนที่ (steppers ของฉันนับสิบนาที ดังนั้นพวกเขาจึงหมุนสิบครั้งที่ 1 RPM)
6 กำหนดระยะเวลาที่คุณต้องการให้หมุนย้อนกลับ
#รวม
const int stepsPerRevolution = 200; // การตั้งค่าคงที่ของจำนวนขั้นตอนในการปฏิวัติเต็มรูปแบบของสเต็ปเปอร์มอเตอร์ของฉัน
const int buttonPin = A0; // การตั้งค่าคงที่ของอินพุตปุ่มของฉัน
Stepper ก่อนStepper (stepsPerRevolution, 2, 3, 4, 5); // เริ่มต้นไลบรารี stepper บนพินบางตัว
Stepper วินาทีStepper(stepsPerRevolution, 6, 7, 8, 9); Stepper ที่สามStepper (stepsPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack(stepsPerRevolution, 2, 3, 4, 5); // เริ่มต้นไลบรารี stepper บนพินเหล่านี้ใหม่เพื่อให้สามารถรีเซ็ต rpm ได้เมื่อแจ้งเตือนว่าเวลานั้นหมดเวลาแล้ว Stepper secondStepperBack(stepsPerRevolution, 6, 7, 8, 9); Stepper thirdStepperBack(stepsPerRevolution, 10, 11, 12, 13);
int minutesCounter = 0; // int นับการปฏิวัติเต็มรูปแบบของ steppers
int timerState = ต่ำ; // สถานะปัจจุบันของตัวจับเวลาโพโมโดโร (สูง = เปิด, ต่ำ = ปิด/รีเซ็ต) int buttonState; // การอ่านปัจจุบันจากพินอินพุต int lastButtonState = HIGH; // การอ่านก่อนหน้าจากพินอินพุต
// ตัวแปรต่อไปนี้ unsigned long's เพราะเวลา วัดเป็นมิลลิวินาที
// จะกลายเป็นจำนวนที่มากกว่าที่จะเก็บไว้ใน int ได้อย่างรวดเร็ว LastDebounceTime แบบยาวที่ไม่ได้ลงชื่อ = 0; // ครั้งสุดท้ายที่พินเอาต์พุตถูกสลับ unsigned debounceDelay ยาวที่ไม่ได้ลงนาม = 50; // เวลาดีบัก; เพิ่มขึ้นหากเอาต์พุตกะพริบ
การตั้งค่าเป็นโมฆะ () {
pinMode(ปุ่มพิน, INPUT_PULLUP); // ตั้งค่าคงที่ของปุ่มเป็นอินพุต
firstStepper.setSpeed(1); // ตั้งค่าความเร็วที่ 1 รอบต่อนาที นับ 10 นาทีต่อวินาที Stepper.setSpeed(1); ThirdStepper.setSpeed(1); firstStepperBack.setSpeed(30); // ตั้งค่าความเร็วที่ 30 rpm เพื่อเตือนว่าเวลานั้นหมดลงหลังจาก Pomodoro เสร็จสิ้น secondStepperBack.setSpeed(30); ThirdStepperBack.setSpeed(30);
Serial.begin(9600); // เริ่มมอนิเตอร์แบบอนุกรมด้วยอัตราบอด 9600
}
วงเป็นโมฆะ () {
// อ่านสถานะของสวิตช์เป็นตัวแปรท้องถิ่น: int reading = digitalRead(buttonPin);
// ตรวจสอบว่าคุณเพิ่งกดปุ่ม
// (เช่น อินพุตเปลี่ยนจาก LOW เป็น HIGH) และคุณรอ // นานพอแล้วตั้งแต่การกดครั้งสุดท้ายเพื่อเพิกเฉยต่อสัญญาณรบกวนใดๆ:
// หากสวิตช์เปลี่ยนเนื่องจากเสียงหรือการกด:
if (อ่าน != lastButtonState) {// รีเซ็ตตัวจับเวลา debounding lastDebounceTime = millis (); } if ((millis() - lastDebounceTime) > debounceDelay) { // ไม่ว่าค่าที่อ่านจะอยู่ที่ใด มันอยู่ตรงนั้นนานกว่า // มากกว่าการดีบักซ์ล่าช้า ดังนั้นให้ถือว่าเป็นสถานะปัจจุบันจริง:
// หากสถานะของปุ่มเปลี่ยนไป:
ถ้า (อ่าน != buttonState) { buttonState = กำลังอ่าน;
// สลับเฉพาะการเปิดใช้ตัวจับเวลาหากสถานะปุ่มใหม่ระบุว่าถูกกด
// กดหนึ่งครั้งเพื่อเปิด กดอีกครั้งเพื่อปิดถ้า (buttonState == LOW) { timerState = !timerState; Serial.print ("สถานะตัวจับเวลาคือ "); Serial.println (timerState); } } }
ถ้า (timerState == สูง) {
Serial.println("ตัวจับเวลา Pomodoro ได้เริ่มขึ้นแล้ว"); if (minutesCounter <11) {// ถ้าค่าที่สองปัจจุบันแตกต่างจากค่าก่อนหน้า ดังนั้น firstStepper.step (stepsPerRevolution); // หมุน stepper 200 ขั้นตอน/1 รอบ minutesCounter++; Serial.print("minutesCounter คือ "); Serial.println(minutesCounter); }
if (11 <= minutesCounter && minutesCounter < 21) { // ถ้าค่าที่สองปัจจุบันแตกต่างจากค่าก่อนหน้าแล้ว secondStepper.step (stepsPerRevolution); // หมุน stepper 200 ขั้นตอน/1 รอบ minutesCounter++; Serial.print("minutesCounter คือ "); Serial.println(minutesCounter); }
if (21 <= minutesCounter && minutesCounter < 31) { // ถ้าค่าที่สองปัจจุบันแตกต่างจากค่าก่อนหน้าแล้ว thirdStepper.step (stepsPerRevolution); // หมุน stepper 200 ขั้นตอน/1 รอบ minutesCounter++; Serial.print("minutesCounter คือ "); Serial.println (นาทีตัวนับ); }
if (31 <= minutesCounter && minutesCounter < 1031) { // ถ้าค่าที่สองปัจจุบันแตกต่างจากค่าก่อนหน้าแล้ว firstStepperBack.step (-1); // หมุนถอยหลัง 1 ก้าวตามลำดับเพื่อให้ปรากฏว่าทั้งหมดทำงานพร้อมกัน secondStepperBack.step(-1); ThirdStepperBack.step(-1); นาทีเคาน์เตอร์++; Serial.print("minutesCounter คือ "); Serial.println(minutesCounter); } } อื่น { Serial.println ("ตัวจับเวลา Pomodoro ปิดอยู่"); } // บันทึกการอ่าน ครั้งหน้าผ่านลูป // มันจะเป็น lastButtonState: lastButtonState = reading; }
ขั้นตอนที่ 3: ขั้นตอนที่ 3: มี Steppers และ Arduino หากคุณต้องการ
ฉันเลือกสร้างรูปแบบสี่เหลี่ยมด้านขนานสำหรับนาฬิกาของฉัน รูปแบบนี้และการเลือกวัสดุของไม้โอ๊คแดงได้รับแรงบันดาลใจจากเฟอร์นิเจอร์สมัยใหม่ในช่วงกลางศตวรรษ ส่วนหนึ่งที่ฉันมีปัญหามากที่สุดคือการติดตั้งสเต็ปเปอร์กับแป้นหมุนผ่านช่องหน้าต่างเพื่อให้มองเห็นได้
แนะนำ:
Stepper Motor ควบคุม Stepper Motor โดยไม่ต้องใช้ไมโครคอนโทรลเลอร์!: 6 ขั้นตอน
สเต็ปเปอร์มอเตอร์ที่ควบคุมโดยสเต็ปเปอร์มอเตอร์ที่ไม่มีไมโครคอนโทรลเลอร์!: ในคำแนะนำอย่างรวดเร็วนี้ เราจะสร้างตัวควบคุมสเต็ปเปอร์มอเตอร์อย่างง่ายโดยใช้สเต็ปเปอร์มอเตอร์ โครงการนี้ไม่ต้องการวงจรที่ซับซ้อนหรือไมโครคอนโทรลเลอร์ เพื่อไม่ให้เป็นการเสียเวลา เรามาเริ่มกันเลย
เลเซอร์โปรเจคเตอร์ Pomodoro Timer: 5 ขั้นตอน
Laser Projection Pomodoro Timer: สวัสดีทุกคนที่บ้านของพวกเขาในช่วงล็อคดาวน์ ฉันหวังว่าคำแนะนำนี้จะช่วยให้คุณผ่านวันนี้ไปได้ เลยใช้เทคนิค pomodoro มาเรียนที่บ้านค่ะ สำหรับใครที่ไม่รู้ว่าเทคนิค Pomodoro คืออะไร มันคือเทคนิคที่
เครื่องทดสอบ DC และ Stepper Motor: 12 ขั้นตอน (พร้อมรูปภาพ)
เครื่องทดสอบ DC และ Stepper Motor: เมื่อไม่กี่เดือนก่อน เพื่อนคนหนึ่งของฉันได้ให้เครื่องพิมพ์อิงค์เจ็ตและเครื่องถ่ายเอกสารที่ใช้แล้วทิ้งไปสองสามเครื่อง ฉันสนใจที่จะเก็บเกี่ยวหน่วยแหล่งพลังงาน สายเคเบิล เซ็นเซอร์ และโดยเฉพาะมอเตอร์ ฉันกอบกู้สิ่งที่ทำได้และต้องการทดสอบพ่อทั้งหมด
Pomodoro Timer Met LED Ring: 5 ขั้นตอน
Pomodoro Timer Met LED Ring: สำหรับโครงการ ITTT heb ik een variatie op een Pomodoro timer gemaakt De Pomodoro "เทคนิค" มีการจัดการวิธีการ ตาย gebruikers ช่วย om grote โครงการใน kleine stappen te verdelen en regelmatig pauze te houden เฮียร์บิจ
POMODORO TECHNIQUE TIMER - อุปกรณ์ฮาร์ดแวร์ที่ใช้งานง่ายสำหรับการจัดการเวลา: 4 ขั้นตอน
POMODORO TECHNIQUE TIMER - EASY USE HARDWARE DEVICE FOR TIME MANAGEMENT 1. นี่คืออะไร ?เทคนิค Pomodoro เป็นทักษะการบริหารเวลาที่แบ่งเวลาการทำงานออกเป็น 25 นาที และตามหลังเวลาทำลาย 5 นาที รายละเอียดด้านล่าง:https://francescocirillo.com/pages/pomodoro-techni…ตัวจับเวลานี้ใช้งานง่าย ha