در این حالت، آیسی 555 به ازای دریافت یک پالس کوتاه (Trigger)، یک پالس خروجی با زمان مشخص و ثابت تولید میکند.
اتصالات کلیدی:
پایه 1 (GND): به زمین وصل میشود.
پایه 8 (VCC): به منبع تغذیه مثبت وصل میشود.
پایه 4 (RESET): به VCC وصل میشود.
پایه 5 (CTRL): معمولاً یک خازن 0.01µF (10nF) به زمین وصل میشود.
پایه 2 (TRIG): به پالس ورودی (Trigger Pulse) وصل میشود. این پالس باید ولتاژی کمتر از 13VCC31?VCC? داشته باشد.
پایه 6 (THRES): به نقطه مشترک بین مقاومت RR و خازن CC وصل میشود.
پایه 7 (DISCH): به نقطه مشترک بین مقاومت RR و خازن CC وصل میشود.
مقاومت R: بین VCC و پایه 7 (DISCH) وصل میشود.
خازن C: بین نقطه مشترک پایههای 6 و 7 و زمین وصل میشود.
نحوه عملکرد:
در حالت عادی، ولتاژ پایه TRIG (که به مقاومت R و خازن C متصل است) بالاتر از 13VCC31?VCC? است و خروجی LOW قرار دارد.
وقتی یک پالس کوتاه (کمتر از1/3VCC) به پایه TRIG وارد میشود، آیسی فعال شده، خروجی HIGH میشود و پایه 7 (DISCH) را از زمین قطع میکند.
خازن C از طریق مقاومتR شروع به شارژ شدن از ولتاژ1/3VCC به سمت بالا میکند.
وقتی ولتاژ خازن به 2/3VCC (ولتاژ پایه THRES) میرسد، آیسی خروجی را LOW کرده و پایه 7 (DISCH) را دوباره به زمین وصل میکند. این پایان پالس خروجی است.
خازن C دشارژ شده و آیسی آماده دریافت پالس بعدی است.
این حالت مونوستابل (Monostable Mode) - تایمر دقیق به چه دردی میخورد؟
این حالت برای تولید یک پالس خروجی با زمان دقیق و مشخص به ازای دریافت یک سیگنال ورودی (Trigger) استفاده میشود. انگار یک “تایمر یکبارمصرف” است.
کاربردهای عملی:
تایمر ساده: روشن کردن یک دستگاه (مثل فن، چراغ) برای مدت زمان مشخص پس از فشردن یک دکمه. مثلاً تایمر تردمیل یا تایمر دستگاه قهوهساز.
طولانی کردن پالس: اگر یک پالس ورودی خیلی کوتاه باشد، میتوان از 555 مونوستابل برای ایجاد یک پالس خروجی با طول مدت زمان دلخواه استفاده کرد.
تولید تأخیر زمانی: ایجاد یک تأخیر قابل تنظیم قبل از فعال شدن یک مدار دیگر.
مدارهای آلارم: فعال کردن آلارم برای مدت زمان مشخص پس از وقوع یک رویداد (مثل باز شدن در).
مدارهای رباتیک: مثلاً فعال کردن یک عملگر (Actuator) برای مدت زمان مشخص.
کنترل درب گاراژ یا جک پارکینگی: فشردن دکمه، درب را برای مدت معینی باز یا بسته نگه میدارد.
مثال: فرض کنید میخواهید وقتی یک دکمه را فشار میدهید، یک فن به مدت 5 دقیقه روشن بماند و بعد خودکار خاموش شود. حالت مونوستابل 555 برای این کار ایدهآل است
لیست محبوبترین زبانهای برنامهنویسی در بین دولوپرهای خانم گزارشی تحت عنوان زنان در حوزه تکنولوژی در سال 2018 منتشر شد که در آن بیش از 14000دولوپر حرفهای مشارکت داشتند و از میان ایشان حدود 2000نفر خانم بودند. در راستای مشاهده تغییرات جالبی که در صنعت تکنولوژی در حال شکلگیری است،اجازه دهید لیستی از زبانهای برنامهنویسی را که بیشتر دولوپرهای خانم از آنها استفاده میکنند، بررسی کنیم:
1. Java
2. JavaScript
3. C
4. C++
5. Python
6. PHP
7. C#
8. Ruby
9. R
10. Perl
11. TypeScript
12. Swift
13. Scala
14. Go
15. Haskell
در این حالت، 555 بدون نیاز به پالس خارجی، به طور مداوم یک موج مربعی در خروجی تولید میکند.
اتصالات کلیدی:
پایه 1 (GND): به زمین وصل میشود.
پایه 8 (VCC): به منبع تغذیه مثبت وصل میشود.
پایه 4 (RESET): به VCC وصل میشود (تا ریست نشود).
پایه 5 (CTRL): معمولاً یک خازن 0.01µF (10nF) به زمین وصل میشود تا نویز فیلتر شود.
پایههای 6 (THRES) و 2 (TRIG): این دو پایه به هم متصل میشوند.
مقاومت RA: بین VCC و پایه 7 (DISCH) وصل میشود.
مقاومت RB: بین پایه 7 (DISCH) و نقطه اتصال پایههای 2 و 6 وصل میشود.
خازن C: بین نقطه اتصال پایههای 2 و 6 و زمین وصل میشود.
نحوه عملکرد:
وقتی آیسی روشن میشود، خازن C از طریق RARA? و RBRB? شروع به شارژ شدن میکند.
ولتاژ خازن به تدریج بالا میرود. وقتی به 2/3VCC (ولتاژ پایه THRES) میرسد، آیسی وضعیت خروجی را LOW کرده و پایه 7 (DISCH) را به زمین وصل میکند.
حالا خازن C از طریق RBRB شروع به دشارژ شدن از ولتاژ2/3VCC به سمت پایین میکند.
وقتی ولتاژ خازن به 1/3VCC (ولتاژ پایه TRIG) میرسد، آیسی دوباره وضعیت خروجی را HIGH کرده و پایه 7 (DISCH) را از زمین قطع میکند.
چرخه دوباره با شارژ شدن خازن از طریق RARB وRBRBتکرار میشود.
این حالت آستابل (Astable Mode) - تولیدکننده موج پیوسته به چه دردی میخورد؟
این حالت اساساً یک نوسانساز (Oscillator) است و برای تولید سیگنالهای کلاک (Clock) یا موجهای تکرارشونده استفاده میشود.
کاربردهای عملی:
تولید سیگنال کلاک: برای میکروکنترلرها، شمارندهها، یا مدارهای دیجیتالی که نیاز به یک سیگنال زمانبندی منظم دارند.
مولتیویبراتور: ایجاد پالسهای تکراری با فرکانس قابل تنظیم.
تولید تون (Tone Generator): در مدارهای ساده صدا یا الارم، با استفاده از بلندگو و تقویتکننده.
چشمکزن LED: ایجاد افکت چشمک زدن برای LEDها با فرکانس دلخواه.
تولید PWM (Pulse Width Modulation): با تغییر نسبت زمان High به Low بودن پالس (Duty Cycle) میتوان پهنای پالس را تغییر داد که برای کنترل سرعت موتور، شدت نور LED، یا درایو کردن مدارهای دیگر استفاده میشود. (اگرچه 555 دقیقترین PWM را نمیدهد، اما برای کاربردهای ساده مناسب است).
تولید نویز صوتی: در برخی مدارها برای تولید نویز سفید یا صورتی.
مثال: فرض کنید میخواهید یک LED را با فرکانس 1 هرتز (یک بار در ثانیه) چشمک بزنید، یا یک پالس کلاک 1 کیلوهرتزی برای یک شمارنده بسازید. حالت آستابل بهترین گزینه است
سؤال اصلی: «از چه موادی برای بدنه رباتم استفاده کنم؟ چطور قطعات رو به هم وصل کنم؟»
نکات کلیدی: معرفی متریالهایی مثل پلکسیگلاس، ABS، آلومینیوم، و روشهای اتصال (پیچ، مهره، چسب).
انتخاب متریال و متدولوژی اتصال، شالوده اصلی پایداری و عملکرد ربات تو را تعیین میکند. برای پروژههایی که نیازمند دقت مهندسی هستند، باید تعادلی میان «استحکام»، «وزن» و «قابلیت ماشینکاری» برقرار کرد. در ادامه، تحلیلی از متریالها و استراتژیهای اتصال برای سیستم شاسی ربات آورده شده است:
تحلیل متریالهای ساختاری
پلکسیگلاس (Acrylic): گزینهای عالی برای نمونهسازی سریع (Prototyping) با استفاده از برش لیزری است. مزیت اصلی آن شفافیت بصری و سهولت در کار است، اما باید توجه داشت که این ماده در برابر ضربات ناگهانی شکننده است و در نقاط اتصال تحت تنش، مستعد ترک خوردن است.
ABS (پلاستیک مهندسی): چاپ سهبعدی با فیلامنت ABS، آزادی عمل فوقالعادهای در طراحی هندسههای پیچیده و یکپارچه به تو میدهد. ABS مقاومت ضربهای بهتری نسبت به پلکسی دارد و امکان استفاده از «مهرههای تزریقی» (Heat-set inserts) را فراهم میکند که اتصالاتی بسیار حرفهای و مستحکم ایجاد میکند.
آلومینیوم (سری 6061): برای رباتهایی که تحت بارهای مکانیکی شدید هستند یا نیاز به دقت ساخت بالا دارند، آلومینیوم (بهویژه پروفیلهای T-slot) انتخاب استاندارد است. این متریال نسبت استحکام به وزن بینظیری دارد و برای بدنه اصلی (Chassis) که باید موتورها و قطعات سنگین را تحمل کند، ایدهآل است.
استراتژیهای اتصال (Joining Techniques)
برای اتصال اجزا، هدف ما دستیابی به قابلیت دمونتاژ (Disassembly) و نگهداری آسان است:
اتصالات مکانیکی (پیچ و مهره): استفاده از پیچهای فولادی (گرید 8.8 یا بالاتر) به همراه مهرههای قفلشونده (Nyloc) یا واشرهای فنری، برای جلوگیری از باز شدن اتصالات بر اثر ارتعاشات موتور، حیاتی است. در طراحیهای دقیق، استفاده از سوراخهای رزوه شده (Tapped holes) در قطعات آلومینیومی پیشنهاد میشود.
چسبهای صنعتی: در قطعات غیرتحتفشار، استفاده از چسبهای اپوکسی دوجزئی یا سیانواکریلاتهای تقویتشده توصیه میشود. اما دقت کن که چسب نباید جایگزین اتصالات مکانیکی اصلی شود، بلکه باید به عنوان مکملی برای افزایش صلبیت ساختار در نقاط بحرانی استفاده شود.
پیشنهاد نهایی:
برای یک ربات توسعهیافته، توصیه میکنم بدنه اصلی را از پروفیلهای آلومینیومی برای تحمل بار (Load-bearing) و قطعات جانبی، براکتها و کاورها را با پرینت سهبعدی (ABS یا PETG) طراحی کنید. این «رویکرد هیبریدی»، همزمان به شمااستحکام صنعتی و انعطافپذیری لازم برای اضافه کردن سنسورها و بردهای الکترونیکی را میدهد.
برای اینکه فرم دیگری را در C# لود کنی از کد زیر استفاده کنین:
// در کلاس Form1.cs
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(); // ایجاد یک نمونه از فرم دوم
form2.Show(); // نمایش فرم دوم به صورت جداگانه
// یا
// form2.ShowDialog(); // نمایش فرم دوم به صورت Modal (باید بسته بشه تا به فرم اول دسترسی پیدا کنی)
}
clearviewport :
clearviewport در زبان C++ مستقیماً به عنوان یک تابع یا کلمه کلیدی استاندارد وجود ندارد. اما در چارچوبهای گرافیکی یا بازیسازی (مانند OpenGL، DirectX، یا موتورهای بازی مثل Unity و Unreal Engine)، این مفهوم به پاک کردن یا بازنشانی ناحیه نمایش (viewport) اشاره دارد.
به طور خلاصه، clearviewport در این بافتها به معنای پاک کردن بافر رنگ و/یا عمق با یک رنگ یا مقدار مشخص است تا بتوان صحنه جدیدی را در آن ترسیم کرد. این کار قبل از شروع رندر کردن فریم جدید انجام میشود تا از تداخل تصاویر قبلی با تصویر جدید جلوگیری شود.
linerel :
linerel به صورت مستقیم یک تابع یا مفهوم استاندارد در زبان C++ یا کتابخانههای رایج آن نیست. احتمالاً منظور شما یکی از موارد زیر است:
line (تابع ترسیم خط): در کتابخانههای گرافیکی مانند BGI (Borland Graphics Interface) یا OpenGL، تابعی به نام line یا مشابه آن وجود دارد که برای ترسیم یک خط مستقیم بین دو نقطه استفاده میشود.
یک تابع سفارشی: ممکن است linerel نام یک تابع سفارشی در پروژهای باشد که شما با آن کار میکنید و وظیفهی آن ترسیم خطی با توجه به یک موقعیت نسبی (relative) باشد.در هر صورت، این تابع یا مفهوم به ترسیم یک خط مستقیم در محیط گرافیکی اشاره دارد.
converttorgb :
converttorgb به طور کلی به فرآیند تبدیل یک مقدار رنگی از یک فرمت (مانند HSL، HSV، CMYK، یا کد هگزادسیمال) به فرمت RGB (قرمز، سبز، آبی) اشاره دارد. این تبدیل برای نمایش رنگها در صفحه نمایش یا استفاده در توابع گرافیکی که ورودی RGB میپذیرند، ضروری است.
getdisplaycolor :
getdisplaycolor به طور کلی به تابعی اشاره دارد که رنگ نمایش داده شده در یک پیکسل خاص روی صفحه نمایش را برمیگرداند. این تابع معمولاً در برنامههایی که نیاز به تحلیل یا تعامل با رابط کاربری گرافیکی (GUI) دارند، استفاده میشود.
palettetype *getdefaultpalette:
PaletteType *getdefaultpalette( ); در C++ به یک تابع اشاره دارد که یک اشارهگر به یک ساختار داده از نوع PaletteType را برمیگرداند که نمایانگر پالت رنگ پیشفرض سیستم یا برنامه است.