درود دوستان :
به دلیل اینکه تعداد افراد علاقه مند برای ساخت این مدار زیاد شده و دوستان میخوان دست بکار بشن این تاپیک رو ایجاد کردم تا مبحث همینجا ادامه پیدا کنه .
پست اول همیشه با اطلاعات جدید ویرایش خواهد شد .
اما ویژگی های مدار :
چهار کانال PWM برای کنترل دور فن خواهد بود .
چهار ورودی برای سیم feedback فن (سیم زرد) جهت تشخیص دور بر حسب RPM یا RPS .
چهار سنسور دماسنج به صورت ماژولار .
امکان تعیین سرعت هر فن به صورت جداگانه و همچنین انتخاب پروفایل های اماده جهت تنظیم سرعت فنها از منو . مثلا پروفایل های ( Over Clock - Game - Web- Idle )
شرح مدار :
هسته ی اصلی مدار رو میکرو کنترلر Mega32 شرکت Atmel تشکیل خواهد .
این میکرو کنترلر دارای 32 کیلو بایت حافظه داخلی هست و 1024 بایت EEPROM حافظه دائیم هست که باتوجه با کار ما کافی هستش .
همچنین این میکرو کنترلر 2 تایمر 8 بیتی و 1 تایمر 16 بیتی داره که این قضیه در ادامه خواهید مارو بسیار محدود خواهد کرد .
مشکل اول :
به دلیل اینکه این میکرو در مجموع 3 تایمر کانتر داره و اگه هر سه تایمر کانتر رو واسه کانال های PWM بدیم فقط خواهیم تونست 4 کانال PWM میکرو کنترلر رو راه اندازی کنیم و تایمری هم باقی نخواهد موند !!!!
راه حل اول :
خوشبختانه مشکل این مشکل با راه اندازی PWM نرم افزاری قابل حل هستش و تنها با یدونه تایمر ومیشه روی هر پینی پالس با عرض های متفاوت ایجاد کرد .
نمونه کد در محیط بسکام :
'========================================================================
$regfile = "m32def.dat"
$crystal = 8000000
$hwstack = 100
$swstack = 100
$framesize = 100
'Soft PWM -------------------------------------------------
Config Timer2 = Timer , Prescale = 1
On Timer2 Soft_pwm
Enable Timer2
Enable Interrupts
Dim Count As Byte
Dim Spwm1 As Byte , Spwm2 As Byte , Spwm3 As Byte , Spwm4 As Byte
Spwm1 = 50
Spwm2 = 75
Spwm3 = 60
Spwm4 = 80
Spwm5 = 90
Config Porta.3 = Output
Config Porta.2 = Output
Config Porta.1 = Output
Config Porta.0 = Output
Softpwm1 Alias Porta.0
Softpwm2 Alias Porta.1
Softpwm3 Alias Porta.2
Softpwm4 Alias Porta.3
Do
Loop
End
Soft_pwm:
Incr Count
If Spwm1 > Count Then Softpwm1 = 1 Else Softpwm1 = 0
If Spwm2 > Count Then Softpwm2 = 1 Else Softpwm2 = 0
If Spwm3 > Count Then Softpwm3 = 1 Else Softpwm3 = 0
If Spwm4 > Count Then Softpwm4 = 1 Else Softpwm4 = 0
If count > 99 then count = 0
Return
مشکل دوم :
فن هایی که قصد کنترل رو داریم با ولتاژ 12 ولت کار میکنن از این خط حدافل 0.2 آمپر جریان میکشن که با توجه به 5 ولت بودن میکرو کنترل عملا به هیچ عنوال قابل اتصال مستقیم به پایه های میکرو نیستند .
راه حل مشکل دوم : خوشبختانه این یکی خیلی ساده هست و چارش استفاده از یه ترازیستو مثل bd135 و اتصال پایه بیس به میکرو و عبور جیان فن از امیتر به کلکتور .
مشکل سوم :
سیم feedback یا همون سیم زرد رنگ اول نحوه کار این قسمت رو بگم :
مدار داخلی فن دور فن رو به صورت پالس میفرسته و در اصل با افزایش سرعت چرخش فرکانس رو تغییر میده . یعنی با هر با چرخش کامل فن دو پالس ایجاد میکنه که باشمارش این پالسها و تقسیم بر 2 کردنش تعداد دور بر ثانیه به دست میاد .
اما مشکلی که هست اینه که ما واسه به دست اوردن سرعت هر فن باید پالس ها رو شمارش کنیم و واسه اینکار میشه از کانتر میکرو کنترلر استفاده کرد اما میکرو کنترلر مورد استفاده ما دوتا کانتر بیشتر نداره که واسه راه اندازی اون هم 2 تا از تایمر هامون تبدیل به کانتر میشه که مانمیخواهیم این اتفاق بیفته .
راه حل : هنوز راه حل دقیقی واسش پیدا نکردم . :unsure: