فهرست مطالب:

تایمر استپر پومودورو: 3 مرحله (همراه با تصاویر)
تایمر استپر پومودورو: 3 مرحله (همراه با تصاویر)

تصویری: تایمر استپر پومودورو: 3 مرحله (همراه با تصاویر)

تصویری: تایمر استپر پومودورو: 3 مرحله (همراه با تصاویر)
تصویری: آموزش TIA Portal S7-1200 زیمنس ، 58 ، تیا , استپر تایمر 2024, نوامبر
Anonim
Image
Image
مرحله 1: لحیم کاری و اتصال مدار خارج از ظرف
مرحله 1: لحیم کاری و اتصال مدار خارج از ظرف

Stepper Pomodoro یک تایمر میز است که به شما کمک می کند با انجام هر دوره کاری به 30 قسمت دقیقه ای ، کارهای روزانه خود را مدیریت کنید. با این حال ، بر خلاف یک تایمر معمولی Pomodoro ، با نشان دادن زمان باقی مانده شما را مضطرب نمی کند. در عوض ، تقریباً زمان را نشان می دهد که کدام یک از سه شماره گیری در حال تیک زدن است. با نشان ندادن زمان دقیق ، به شما این امکان را می دهد که در واقع روی کار موردنظر تمرکز کنید ، نه اینکه مدام زمان باقی مانده خود را بررسی کنید. این پومودورو برای افرادی که به ساختار سبک و محجوب در مدیریت وظایف خود نیاز دارند بسیار مناسب است.

ابزارها

• آهن لحیم کاری

• استریپرهای سیم

• برش لیزری (یا بسته به نحوه ایجاد شماره گیری تایمر)

• مته (من از یک پرس مته برای ایجاد سوراخ هایی به اندازه کافی بزرگ برای شماره گیری استفاده کردم)

مواد

• 1 آردوینو Uno

• 1 تخته نان نصف

• پلهای 3 ساعته (من از DRV8833 استفاده کردم ، سپر محافظ موتور باعث صرفه جویی در زمان و سردرد من شده است)

• 3 موتور پله ای (من از پله های NEMA 17 استفاده کردم)

• 1 دکمه

• 1 مقاومت 220-1K اهم (هر محدوده خوب است)

• آداپتور AC/DC (من از ولتاژ 12 ولت استفاده کردم ، احتمالاً برای این میزان پله ها بسیار بزرگ است)

• تقسیم کننده قدرت

• سیم USB A-B

• سیم های تخته نان

• لحیم کاری

• مواد برای ظرف تایمر

• اکریلیک برای شماره گیری

• میخ یا پین فلزی به عنوان بازوی ثابت تایمر عمل می کند

مرحله 1: مرحله 1: لحیم کاری و اتصال مدار خارج از ظرف

برای این مرحله من با اتصال همه پل های H خود شروع کردم (اگر سپر موتور را خریداری کردید نیازی به لحیم کاری آنها ندارید. هنگامی که برای هر پله یک پل H دارید ، می توانید نحوه سیم کشی پله های خود را بررسی کنید.

موتورهای پله ای دوقطبی NEMA 17 به عنوان موتورهای پله ای دوقطبی شناخته می شوند ، بدین معنی که آنها دارای دو (و نه یک) سیم پیچ در داخل موتور هستند که با تغییر قطبیت ، حرکت دقیق موتور را امکان پذیر می کند. پله های دوقطبی به طور معمول دارای چهار سیم و پلکان های پلاری به طور معمول دارای شش سیم هستند ، این امر دستورالعمل های آنلاین را کمی پیچیده کرد. با این حال ، می توانید چند متر را به دو سیم متصل کنید و ببینید آیا آنها متصل هستند یا نه. پله های NEMA 17 دارای ترتیب رنگ قرمز ، زرد ، خاکستری ، سبز هستند ، رنگ قرمز و خاکستری اولین جفت قطبی و زرد و سبز دومین جفت قطبی هستند. اگر در هر مرحله استپر به جای تکمیل حرکت مورد انتظار شروع به لرزش کرد ، احتمال دارد سیم های شما به درستی به دوقلو خود قطبی نشده باشد یا یکی قطع شود. هر پله از طریق چهار پین خروجی که به پل DRV8833 H متصل می شوند کنترل می شود. ترتیب سیم کشی برای ورودی DRV8833 به شرح زیر است: IN1 ، IN2 ، Power ، Ground ، IN3 ، IN4. برای اهداف خروجی ، NEMA فقط به ترتیب به چهار وسط از شش پین به ترتیب: قرمز ، خاکستری ، زرد ، سبز متصل می شود. حالا اجازه دهید برق را وصل کنیم. من NEMA های خود را روی پورت های دیجیتال 2-13 دارم.

برای تغذیه این دستگاه ، یک آداپتور 12 ولت AC/DC با اسپلیتر خریداری کردم تا بتوانم آردوینو و همه استپرها را تغذیه کنم. هشدار: سیم برق و سیم خود را از آردوینو که قبلاً از پورت نیرو دریافت می کند به تخته نان متصل به برق مستقیم از AC/DC متصل نکنید. تخته شما را سرخ می کند. از آداپتور 12 ولت متصل به دیوار ، یک قسمت اسپلیتر مستقیماً به درگاه آردوینو و قسمت دیگر به سمت مثبت و منفی تخته نان می رود.

در نهایت ، زمان آن رسیده است که دکمه را متصل کنید. یک طرف دکمه هم به برق نیاز دارد (با مقاومت ما به هم متصل شده است) و هم پین خروجی را لحیم کرده است (این کار را می توان از تخته نان نیز انجام داد). پین دیگر زمین ما خواهد بود. این سه سیم باید به برق متصل شوند: قدرت با مقاومت 5 ولت ، خروجی A0 و اتصال زمین به زمین همه روی برد Arduino Uno.

از اینجا باید بتوانیم با استفاده از این کد تست پایه پله ای که در اینجا یافت می شود ، استپرها را کنترل کنیم. این توضیح در Arduino.cc همچنین در صورت نیاز به پله های دو قطبی/تک قطبی توضیح کامل تری می دهد. بعد اجازه دهید وارد کد Pomodoro شویم!

مرحله 2: مرحله 2: بارگذاری کد و تنظیم آن بر اساس نیازهای شما

مرحله 2: بارگذاری کد و تنظیم آن بر اساس نیازهای شما
مرحله 2: بارگذاری کد و تنظیم آن بر اساس نیازهای شما

در زیر کد مربوط به دکمه Pomodoro من آمده است ، به منظور سفارشی سازی آن بر اساس تنظیمات خود ، مراحل زیر را دنبال کنید:

1. تعداد گام در هر دور نوع شخصی پله خود را تنظیم کنید (NEMA 17s دارای 200 است و در عدد صحیح ثابت به نام stepsPerRevolution فهرست شده است).

2. محل ورود دکمه خود را به دکمه تماس گیرنده عدد صحیح ثابت تنظیم کنید.

3. محل فرمان خروجی آردوینو را تعیین کنید (این قسمتها ممکن است بیشترین تفاوت را بین انواع پل H داشته باشند زیرا بسیاری از آنها از کتابخانه های مختلفی استفاده می کنند).

4. سرعت استپر را در دور در دقیقه در.setSpeed تنظیم کنید (من زمان چرخش در جهت عقربه های ساعت را برای 1 دور در دقیقه و هنگام چرخش خلاف جهت عقربه های ساعت 30 دور در دقیقه تنظیم کرده ام).

5. تعداد دفعاتی را که می خواهید هر یک از استپرهای شما بچرخد تنظیم کنید (قدم های من ده دقیقه می شمارند ، بنابراین ده بار در 1 دور در دقیقه می چرخند).

6 مدت زمانی را که می خواهید بچرخد به عقب تنظیم کنید.

#عبارتند از

const int stepsPerRevolution = 200؛ // ثابت تعداد گام ها در هر دور کامل موتورهای پله ای من

const int buttonPin = A0؛ // تنظیم ثابت ورودی دکمه من

Stepper firstStepper (مراحلPerRevolution ، 2 ، 3 ، 4 ، 5) ؛ // راه اندازی کتابخانه stepper در پین های خاص

Stepper secondStepper (مراحلPerRevolution ، 6 ، 7 ، 8 ، 9) ؛ Stepper 3rdStepper (مراحلPerRevolution ، 10 ، 11 ، 12 ، 13) ؛ Stepper firstStepperBack (مراحلPerRevolution ، 2 ، 3 ، 4 ، 5) ؛ // مجدداً کتابخانه stepper را در این پین ها فعال کنید تا بتوانید rpm را برای زمانی که هشدار می دهید زمان به پایان رسیده Stepper secondStepperBack تنظیم مجدد کنید (مراحلPerRevolution ، 6 ، 7 ، 8 ، 9) ؛ Stepper thirdStepperBack (مراحلPerRevolution ، 10 ، 11 ، 12 ، 13) ؛

int minutesCounter = 0؛ // int شمارش دورهای کامل استپرها

int timerState = LOW؛ // وضعیت فعلی تایمر pomodoro (HIGH = on ، LOW = off/reset) int buttonState؛ // خواندن فعلی از پین ورودی int lastButtonState = HIGH؛ // خواندن قبلی از پین ورودی

// متغیرهای زیر طولانی هستند بدون علامت زیرا زمان ، بر حسب میلی ثانیه اندازه گیری می شود ،

// به سرعت تبدیل به یک عدد بزرگتر از آنچه در یک int ذخیره می شود ، می شود. unsigned long lastDebounceTime = 0؛ // آخرین باری که پین خروجی غیرفعال شد debounceDelay = 50؛ // زمان خروج ؛ در صورت چشمک زدن خروجی افزایش می یابد

void setup () {

pinMode (buttonPin ، INPUT_PULLUP) ؛ // ثابت دکمه را به عنوان ورودی تنظیم کنید

firstStepper.setSpeed (1)؛ // برای شمارش 10 دقیقه در هر مرحله steps.setSpeed (1) سرعت را در 1 دور در دقیقه تنظیم کنید. thirdStepper.setSpeed (1)؛ firstStepperBack.setSpeed (30)؛ // سرعت را 30 دور در دقیقه تنظیم کنید تا هشدار دهید که زمان پس از اتمام Pomodoro پس از اتمام secondStepperBack.setSpeed (30) به پایان رسیده است. thirdStepperBack.setSpeed (30)؛

Serial.begin (9600)؛ // شروع مانیتور سریال با نرخ باود 9600

}

حلقه خالی () {

// وضعیت سوئیچ را به یک متغیر محلی بخوانید: int reading = digitalRead (buttonPin) ؛

// بررسی کنید که آیا فقط دکمه را فشار داده اید یا خیر

// (یعنی ورودی از LOW به HIGH رفت) ، و شما به اندازه کافی // از آخرین فشار منتظر ماندید تا نویز را نادیده بگیرید:

// اگر سوئیچ به دلیل نویز یا فشار دادن تغییر کرد:

if (خواندن! = lastButtonState) {// تنظیم مجدد زمان سنجی lastDebounceTime = millis ()؛ } if ((millis () - lastDebounceTime)> debounceDelay) {// در هر مرحله ای که بخوانید ، بیشتر از // تاخیر خروج وجود داشته است ، بنابراین آن را به عنوان وضعیت فعلی واقعی در نظر بگیرید:

// اگر حالت دکمه تغییر کرده باشد:

if (خواندن! = buttonState) {buttonState = خواندن ؛

// فقط در صورتی که حالت دکمه جدید نشان می دهد که فشار داده شده است ، فعال کننده تایمر را تغییر دهید

// یکبار فشار دهید تا روشن شود ، دوباره فشار دهید تا اگر (buttonState == LOW) {timerState =! timerState؛ Serial.print ("وضعیت تایمر است") ؛ Serial.println (timerState) ؛ }}}

if (timerState == HIGH) {

Serial.println ("تایمر پومودورو شروع شده است")؛ if (minutesCounter <11) {// اگر مقدار دوم فعلی متفاوت از مقدار قبلی باشد firstStepper.step (stepsPerRevolution) ؛ // 200 پله را بچرخانید/1 دور در دقیقه Counter ++؛ Serial.print ("minutesCounter is") ؛ Serial.println (minutesCounter)؛ }

if (11 <= minutesCounter && minutesCounter <21) {// اگر مقدار دوم فعلی متفاوت از مقدار قبلی باشد secondStepper.step (stepsPerRevolution) ؛ // 200 پله را بچرخانید/1 دور در دقیقه Counter ++؛ Serial.print ("minutesCounter is") ؛ Serial.println (minutesCounter)؛ }

if (21 <= minutesCounter && minutesCounter <31) {// اگر مقدار دوم فعلی متفاوت از مقدار قبلی باشد ، thirdStepper.step (stepsPerRevolution) ؛ // 200 پله را بچرخانید/1 دور در دقیقه Counter ++؛ Serial.print ("minutesCounter is") ؛ Serial.println (minutesCounter)؛ }

if (31 <= minutesCounter && minutesCounter <1031) {// اگر مقدار دوم فعلی متفاوت از مقدار قبلی باشد firstStepperBack.step (-1) ؛ // گام به گام را به ترتیب 1 قدم به عقب برگردانید تا مانند همه در حال اجرا باشند secondStepperBack.step (-1) ؛ thirdStepperBack.step (-1) ؛ minutesCounter ++؛ Serial.print ("minutesCounter is") ؛ Serial.println (minutesCounter)؛ }} else {Serial.println ("تایمر Pomodoro خاموش است")؛ } // خواندن را ذخیره کنید. دفعه بعد از طریق حلقه ، // آخرین lastButtonState خواهد بود: lastButtonState = خواندن ؛ }

مرحله 3: مرحله 3: در صورت تمایل شامل استپرها و آردوینو باشید

مرحله 3: در صورت تمایل شامل استپرها و آردوینو باشید
مرحله 3: در صورت تمایل شامل استپرها و آردوینو باشید
مرحله 3: در صورت تمایل شامل استپرها و آردوینو باشید
مرحله 3: در صورت تمایل شامل استپرها و آردوینو باشید
مرحله 3: در صورت تمایل شامل استپرها و آردوینو باشید
مرحله 3: در صورت تمایل شامل استپرها و آردوینو باشید

من تصمیم گرفتم یک فرم متوازی الاضلاع برای ساعت خود ایجاد کنم. این فرم و انتخاب مصالح بلوط قرمز از مبلمان مدرن قرون وسطی الهام گرفته شده است. یکی از قسمت هایی که من با آن بیشترین سختی را داشتم این بود که قدمگاه ها را با شماره گیری از روی درهای پشتی خود قرار دهید تا از آنجا دیده شود.

توصیه شده: