تبليغاتX
الکترونیک و روباتیک

سلام،

این پروژه یک نوع تایمره که کنترل روشن و خاموش شدن یک یا چند وسیله رو به طور پیوسته انجام می دهد، به این صورت که برای زمان (T1) وسیله مورد نظر روشن و برای زمان (T2) خاموش می ماند و این روال مرتبا تکرار می شود. ضمنا هر دو زمان مذکور به راحتی از طریق کلید های کنترل قابل تنظیم می باشند.

از این وسیله می توان برای انجام کنترل های منظم با فواصل زمانی طولانی استفاده کرد از آن جمله می توان به آبیاری باغچه اشاره کرد (یا هر کاری که برای مدت زمان معیین با فواصل مشخص و تعداد نا محدود تکرار نیاز به اجرا داشته باشد!)

در این پروژه از میکروکنترلر Mega8 در حالت RTC استفاده شده. کدهای برنامه و شماتیک مربوطه رو در اولین فرصت براتون upload می کنم.

امیدوارم از این پروژه لذت ببرین؛

موفق و پیروز باشید.

+ نوشته شده توسط افشین در شنبه بیست و هفتم تیر 1388 و ساعت 17:12 |

LCD گرافیکی

چند وقت پیش برای انجام یه پروژه مجبور به استفاده از LCD گرافیکی شدم ( که قبلا در موردشون چیز زیادی نمیدونستم! )

اون چیزی که در بازار پیدا میشه عمدتا (قبل از این اوضاع ) از انواع SED , KS0108, T6963c هستند. انواع دیگه هم هست که یا اصلا در بازار موجود نیست (ایران) یا بسیار کمیابه.

در مجموع از بین این سه تا اگر مجبور شدین با یکی کار کنید بنده T6963c رو پیشنهاد میکنم که نسخه های قبلی Bascom هم کاملا سازگاره (حداقل در مورد ۱۲۸*۱۲۸ مطمنم! ) و البته از T6963c سریعتر و به مقدار قابل ملاحظه ای هم گران تره! نوع آخری رو هم Bascom میشناسه اما من در موردش اطلاعات زیادی ندارم.

و اما در مورد GLCD با تراسه درایور KS0108 که فعلا در بازار قیمت مناسبی داره....

این Lcd برای نسخه های قدیمی Bascom تعریف نشدست اما آخرین ورژن Bascom  بسته های نرم افزاری مربوطه را برای راه اندازیش داره که برای توضیحو تفصیل بیشتر میتونید از راهنمای Bascom استفاده کنید یا انکه برید دنبال نسخه فارسیش ( کتاب آقای کاهه ویرایش دوم ) اما اگه وقت کافی دارین و می خواید یه کار اساسی انجام بدین و برای پروژه های دیگه لنگ Bascom نمونید پیشنهاد میکنم Datasheet مربوطه رو از اینترنت بگیرید (۵-۶ صفحه بیشتر نیست! ) و خودتون به طور ابتدایی براش برنامه بنویسید. راهاندازیش زیاد مشکل نیست. تعداد دستورالعمل های مورد نیاز برای را اندازیش هم خیلی کمه.فقط کمی حوصله می خواد که شما دارین الحمدلله!!

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

برای کارای تکمیلی مثل طراحی فونت یا تصویر  و البته یه چند تایی هم پروژه سعی میکنم بعدا یه چیزایی اضافه کنم.

موفق باشید.

ما رو بی خبر از کاراتون نزارین و 

نظر هم یادتون نره

مرسی .

+ نوشته شده توسط افشین در پنجشنبه بیست و هفتم دی 1386 و ساعت 7:22 |
سلام:

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

بنابراین برای این پروژه فقط از میکروهایی میشه استفاده کرد که یکی از  تایمر/کانتر های داخلیش قابلیت کار به صورت آسنکرون رو داشته باشن مثل :

8535, M163 , M103 , M603 , M8 , M32  و ...

در ضمن برای استفاده از این تایمر باید از یک کریستال 32768 Hz استفاده کرد.

برای ساخت این ساعت فقط کافیه بعد از معرفی میکرو - کریستال و پایه های LCD - اینتراپت کلی رو فعال کرده بعد تایمر مربوطه رو تنظیم کنیم .حالا با یه دستور ساده می تونیم ساعت رو نمایش بدیم .

$regfile = "M8Def.Dat"
 $crystal = 8000000
 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.0 , Rs = Portb.1
 Config Lcd = 16 * 2

Enable Interrupts

Config Clock = Soft

Do
  Home                                                      'cursor home
  Lcd Date$ ; "  " ; Time$                                  'show the date and time
Loop

End

  وقتی که config clock رو مساوی soft قرار می دین کامپایلر bascomavr خودش زحمت همه چی رو میکشه و حدود ۳۰ بایت از حافظه رو هم پر میکنه و یه سری متغیر توی برنامه تولید میکنه و هر ثانیه اونا رو آپ تو دیت میکنه .

 فرم نمایش ساعت ۲۴ ساعته به صورت "ثانیه:دقیقه:ساعت" است و فرم نمایش تقویم هم با دستور زیر قابل تنظیم است :

Config Date = Mdy , Separator = /                           ' ANSI-Format

سایر فرمت ها هم در راهنمای کامپایلر موجود هستند .

در ضمن میتونین مبدا ساعت و تاریخ رو هم به دلخواه در برنامه تنظیم کنید :

Date$ = "11/11/00"

Time$ = "02:20:00"

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

موفق باشید

+ نوشته شده توسط افشین در یکشنبه نوزدهم فروردین 1386 و ساعت 4:36 |
این مطلب از وبلاگ microrobot کپی کردم. برای اطلاعات بیشتر روی لینکش کلیک کنید.

با تشکر از آقای حمید نعمت بخش.

سخت افزار:

آی سی DS 1307  که به ای سی  تاریخ و ساعت معروف است این قابلیت را داراست که می تواند زمان و تاریخ را در خود ذخیره نگه دارد و با قطع برق دستگاه نیز اطلاعات خود را از دست نمی دهد و  این به خاطر باتری پشتیبانی است که به آن وصل شده است.پروتکل ارتباطی گه از آن برای ارتباط با این آی سی استفاده شده است  I2C    می باشد.از خواص این پرو تکل به نکات زیر می توان اشاره کرد.

1)تنها  با دو پایه می توان عمل ارتباط را انجام داد یعنی نسبت به بقیه پروتکل ها پایه های کمتری از میکرو اشغال می شود.

2)طول داده ها  8 بیتی می باشد.

همان طور که در  شماتیک مدار ملاحظه می فرمایید ، در بین پایه های 1 و2  باید کریستال نصب شود که در شکل کشیده نشده است و همین طور پایه شماره 3 نیز باید با باتری پشتیبان تغذیه شود. نکته قابل توجه در مدار مقاومت های بالا کشنده روی پایه های 5  و  6  می باشد که در صورتی که این دو مقاومت وصل نشود مدار کار نخواهد کرد.در ادامه توضیحاتی درباره این دو پایه آورده شده است.

SCL  :   (پالس ساعت) جهت همزمان کردن ارسال داده ها به کار می رود.

SDA  :داده ها از طریق این خط ارسال می شوند.

سرعت انتقال داده ها از طریق این خطوط بالا تر از یک مگا هرتز است.

پایه شماره هفت که به نام Sout   شناخته می شود با هر ثانیه یکبار یک منطقی می شود که در مدار زیر این کار با یک LED    آشکار می شود.

 

 

DS1307 via PIC16F877

 

سخت افزار:

راجع به دقت این مدار باید عرض کنم که تا سال 2100  برنامه ریزی شده است(طبق ادعای کارخانه سازنده).در صورتی که در ساخت و یا برنامه نویسی آن به مشکلی برخوردید ، در قسمت نظر خواهی اعلام کنید._حمید نعمت بخش_

*************************************************************
'*  Name    : rtc.BAS                             

'*  Author  : [h-nemat bakhsh]                                 
'*  Notice  : Copyright (c) 2006 [hamid_nb0@yahoo.com]         
'*************************************************************
*********************www.microrobot.mihanblog.com**************
define OSC 4
include"modedefs.bas"
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 0
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2                                   
TRISC= %11111111
SDA var PORTC.0
SCL var PORTC.1
DB0 var byte[8]
CMCON = %00000111                 
gosub write_1307
read_1307:                                   
I2CREAD SDA,SCL,$D1,$00,[STR DB0\8]
lcdout $fe,1,"Time=",hex2 DB0[2],":",hex2 DB0[1],":",hex2 db0[0]
lcdout $fe,$c0,"date=",hex2 DB0[4],":",hex2 DB0[5],":",hex2 db0[6]
pause 1000
goto read_1307
end
Write_1307:
     
   
     ' Set time & date to 21:58:00 Tuesday 6th of July 2004
I2CWRITE SDA,SCL,$D0,$00,[$00,$58,$21,$00,$6,$7,$4,$90]
pause 10
RETURN

 

اگر به آدرس http://microrobot.mihanblog.com/ یه سری بزنید می تونید مطالب جالبی راجع به :

 

ربات نور یاب (بولینگر):

 

شمارنده مادون قرمز با سون سگمنت

 

 راه اندازی استپر موتور با میکرو کنترلر pic16f84a

نرم افزار

سخت افزار

راه اندازی از ترانزیستور قدرت TIP122 

سرعت موتور

گشتاور نگهدارنده

 

 

مطالعه کنید همچنین مطالب بعدیشون که عبارت است از :

 

تابلو روان(تابلو نویسنده ) 8*8  با استفاده از PIC16F877 

ارتباط کیبورد( کی پد) و LCD   با PIC16F877   با استفاده از ای سی کیبورد 

 

+ نوشته شده توسط افشین در شنبه چهارم فروردین 1386 و ساعت 5:27 |
سلام:

به خاطر تاخیر می بخشید ! در اسرع وقت تلافیش رو در میارم !

این آخرین نسخه از پروژه DTMF Controller است که قبلا شرح دادم به اضافه PCB که البته فقط جای چهار تا رله رو داره (چون برای تحویلش عجله داشتم) + تصویر چیدمان قطعات روی PCB و شماتیک.

فقط کافیه توی یه برنامه مثل word اسکیلش رو درست کنید ( فاصله پین های آی سی از هم باید ۲.۵ میلیمتر باشه) بعد روی کاغذ گلاسه پرینت لیزریش کنید و ..... ( شرح کار در آرشیو موجوده ).

DTMF device control perfect v1.bas, 5 KB

DTMF device control perfect v1.hex, 3 KB

DTMF controler schematic.bmp, 1,840 KB

dtmf3.2.bmp, 19,481 KB

dtmf3.bmp, 812 KB 

 

 

+ نوشته شده توسط افشین در دوشنبه بیست و هشتم اسفند 1385 و ساعت 7:5 |
این پروژه رو به طور اتفاقی و کاملا نا خواسته طراحی کردم....داستانش مفصله. با این همه چیزه جالبی از آب در اومد... خودم که خیلی حال کردم. انشا الله که شما هم ازش لذت میبرین.

 PIC_Digital_Lcd_Ferq_meter

این پروژه بر مبنای دستور COUNT موجود در کامپایلر PICBASIC PRO طراحی شده است.این دستور برای اندازه گیری فرکانس سیگنالی است که به ورودی اعمال شده. این اندازه گیری در یک بازه زمانی معین انجام می شود. دستور فوق دارای سه پارامتر است. اول پایه ای که قرار است از آن نمونه برداری شود .دوم طول زمان نمونه برداری و سوم نام متغیری که عدد در آن ذخیره می شود.

 کار مهم برنامه نویسی فقط یه لوپ کوچکه که تعین میکنه عدد روی LCD بر حسب هرتز باشه یا کیلو هرتز.

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

راستی یادم رفت بگم که این مدار با کریستال ۴ مگا هرتز می تونه فقط تا فرکانس ۲۵ کیلو رو نشون بده.

در ادامه کد های PICBASIC PRO رو مشاهده می کنید:

   ' LCD should be connected as follows:
'       LCD     PIC
'       DB4     PortA.0
'       DB5     PortA.1
'       DB6     PortA.2
'       DB7     PortA.3
'       RS      PortA.4 (add 4.7K pullup resistor to 5 volts)
'       E       PortB.3
'       RW      Ground
'       Vdd     5 volts
'       Vss     Ground
'       Vo      20K potentiometer (or ground)
'       DB0-3   No connect

       
        r var word
        f var word
 loop:  f = 0
        r = 0
   count portb.0 , 1000 , f
        if f > 1000 then khz
        Lcdout $fe, 1   ' Clear LCD screen
        Lcdout #f       ' Display Freq.
        lcdout $FE, $14
        lcdout "Hz"
      
      goto loop
     
 khz:   r = f // 1000
        f = f / 1000
        Lcdout $fe, 1   ' Clear LCD screen
        Lcdout #f       ' Display Freq.
        lcdout "."
        lcdout #r
        lcdout $FE, $14
        lcdout "KHz"
      goto loop      

فایل شبیه سازی شده با پروتوس رو از اینجا دانلود کنید.

کد های Hex رو هم از اینجا دانلود کنید.

+ نوشته شده توسط افشین در جمعه پانزدهم دی 1385 و ساعت 4:49 |
این پروژه عینا از وبلاگ http://www.acrosoft.blogfa.com/ کپی شده. با تشکر از آقای علیرضا عبدشاه.

این مدار با میکرو کنترل AVR طراحی شده است و از سنسور حرارتی LM35 که ساخت کارخانه ناسیونال است استفاده می کند و دمارا بر روی یک LCD 4*20 نشان می دهد .

این مدار می تواند دما را تا ۴۰ درجه سانتیگراد اندازه بگیرد.

برای دانلود نقشه فایل HEXو ASM که در قالب یک فایل Zip می باشد روی گزینه دانلود کلیک کنید.

                                         Download 

 

+ نوشته شده توسط افشین در جمعه پانزدهم دی 1385 و ساعت 3:54 |
راستی کدهای Hex رو هم برای میکرو باید دانلود کنید.

دانلود کدهای میکرو

پسورد برای وارد شدن به برنامه ۸۳۱۵ است که باید با همان پروتکل ذکر شده در متن وارد شود.

منتظر نظرات شما هستم.

 موفق باشید. 

+ نوشته شده توسط افشین در پنجشنبه بیست و سوم آذر 1385 و ساعت 4:27 |
سلام به همه دوستان.

 بخاطر تاخیر باید بنده رو ببخشید. قسمتی از پروژه رو برای دانلود گذاشتم. انشا ا... که به دردتون بخوره.

لطفا نظر یادتون نره .ممنون و موفق باشید.

*********************************************************************

فهرست مطالب :

 

 

o       خلاصه قابليت هاي دستگاه

 

o       پيش در آمد

 

o       مقـدمـه ای بـر سیسـتم DTMF

 

o       خلاصه عـملـکـرد دسـتـگـاه

 

o       شــرح دسـتگـاه

 

    • مـدار آشکـار سـاز زنگ

 

    • میکروکنتـرلـر به عنوان محل پـردازش -  تصمیم گیری -  کنتـرل – و ذخیـره و اجرای بـرنامه

 

    • مـدار برقـرار كننـده تماس

 

    • مـدار مبـدل سيگنـال DTMF به كــدهاي BCD

 

    • مـدار ارسـال سیگنـالـهای صـوتی

 

    • مـدار مبـدل کنتـرل بـرای رلـه ها

 

 

o       ضميمه

 

    • نمـودار ترتيبـي ارتبـاط اجـزا دستـگاه

 

    • فلـوچارت برنـامه اصـلي دستـگاه

 

    • شكل شماتيـك دستـگاه كنتـرل از راه طريق تلفـن

  

 

 

 

 

خلاصه قابليت هاي دستگاه:

 

-      کنتـرل 5 خط به صورت روشـن و خاموش  

-      قابل افزايـش تا 32 كانال به صورت روشـن و خاموش

-      حفاظت با کلمه عبـور رقمي

-      قابليت افزايش ارقام كلمه عبور تا10 رقم ( و بيشتر)

-      قابل حفاظت از طريق فرمان خروج در صورت ورود رمز غلـط

-      ارسال آلارم اتصال براي اطلاع كاربردر موقع برقراري ارتباط

-      ارسال آلارم خطا براي اطلاع كاربر از وارد كردن كـد اشتباه

-      ارسال آلارم تاییـد براي اطلاع كاربر از دريافـت صحيح كد

-      ارسال آلارم پایـان براي اطلاع كاربر از پايـان تماس

-       دریافت فرمان قطع تماس از کاربـر

-      نمایشگرهای LED

-      انتخاب خروجي به شكل سوييـچ يا پالـس

 

 

 

 

 

 

" چکیده پروژه "

 

 

  این دستگاه یک سیستم کنترل از راه دور است که با استفاده از شبكه تلفـن کار میکند. اين دستگاه براي كار با  سیستم Tone  طراحي شده است و قادر است 5 کانـال را به صورت دو حالـت خامـوش یا روشـن کنتـرل کند. البته تعداد كانال هاي ارتباطي را در صورت نياز ميتوان با افزودن يك طبقه به 32 كانال رساند.

از جمله پارامتـرهاي مهـمي كه براي بررسي دستگاه هاي كنتـرل از راه دور مـورد بحـث قرار ميگيـرند بـرد مفـيد آن دستگاه اسـت. منظـور از برد مفـيد در اينجا فاصله مكانـي اسـت كه از آنجا كاربـر همچـنان قـادر بـه برقـراري ارتبـاط و كنتـرل دستگاه خواهـد بود.

با توجه به اينكه در اين سيستم براي ارسال و دريافـت اطلاعات و فراميـن از شبـكه تلفـن استفـاده مي شـود لـذا برد قابل کنترل برای این دستگاه مستقیما به میزان گستردگی و قابلیت شبکه مخابراتی بستگی دارد. به عبارت دیگر از هر کجايي که امکـان برقـراری ارتبـاط با شبکه مخابراتی موجود باشد می توان این دستگاه را کنترل کرد. این موضوع خود بیـانگر قابلـيت بسیار مهم دستگاه یعنی سهولت در دستیابی و استفاده برای کاربر است. همچنیـن این دستگاه قابلیـت کنتـرل توسط دستگاههای تلفـن ثابـت و همـراه را نيـز دارا مي باشـد.

درعين حال ضعف كنترلي اين دستگاه مستقيما از ضعف شبكه مخابراتي در پوشش ارتباطي همه مناطق ناشي مي شـود.

در مقابـل به عنوان مهمـترین عیـب این دستگاه میتـوان به نیاز آن به اتصال دائمي به خطوط تلفـن ثابت اشـاره کـرد که مانعي قابـل توجهي در قابليـت تحرك آن می شـود که البته با توجه به کاربرد آن به عنوان یک دستگاه كنتـرل خانگی یا اداری به راحتی میـتوان از آن چشـم پوشیـد.

 

دانلود متن کامل

 

+ نوشته شده توسط افشین در پنجشنبه بیست و سوم آذر 1385 و ساعت 4:5 |

فعلا همين قدر عرض كنم كه اين دستگاه با سيستم تـــــن كار ميكند. قلبش هم آي سي ۸۸۷۰ است كه در واقع يه DTMF Decoder است. DTMF همان سيستم شماره گيري تــــــــــن است و داراي ۵ خروجي به اين ترتيب است: خروجيهاي ۱ تا ۴ براي نمايش كد BCD معادل عدد فشرده شده و خروجی پنجم برای اعلام دریافت کد جدید( چهار خروجی اول دارای latch بوده تا رسیدن کد بعدی در خروجی باقی میمانند و خروجی پنجم در هنگام refresh شدن کد برای یک لحظه High میشود). واحد اصلي كنترل و پردازش يه ميكرو PIC16F85 است.دستگاه در نهایت میتونه پنج کانال خروجی مجزا همزمان به صورت خاموش و روشن یا ۳۲ کانال مجزا غیر همزمان به صورت خاموش یا روشن تولید کند.

 سیستم کلی یه این صورته که اول باید تعداد زنگهای تلفن شمرده شود.بعد از خوردن تعداد مورد نظر زنگ میکرو یه رله رو فعال میکنه تا یه مقاومت کوچک رو با خط سری کنه تا ولتاژ حدود ۵۰ ولت خط رو تا حدود ۱۲ ولت پایین بکشه بعد هم شروع به خوندن دکمه های فشرده شده میکنه.به این ترتیب که اول منتظر علامت # و بعد password میشه اگه درست بود منتظر فرمان های کنترلی میشه و رد غیر این صورت دوباره باید password وارد بشه اگه تا سه بار این کار اشتباه انجام بشه تماس قطع خواهد شد.

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

توجه : جزییات کامل پروژه همراه با فلوچارت ها+برنامه+بلوک دیاگرام+شماتیک پس از پایان و ارائه پروژه به صورت pdf برای دانلود قرار خواهد گرفت.عجله نکنید!

 

+ نوشته شده توسط افشین در دوشنبه بیست و چهارم مهر 1385 و ساعت 11:22 |
سلام بر همگی:

 نماز و روزه هاتون هم قبول باشه انشاا...

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

برای عضو شدن میتونید از طریق منوی عضویت سریع اقدام کنید. کافیه یه اسم به عنوان کاربر-آدرس میل و یه کلمه به عنوان پسورد وارد کنید و کلیک کنید ظرف چند ثانیه شما عضو سایت میشید و میتونید از نرم افزار ها و مقاله های آموزشی اون به طور کاملا رایگان استفاده کنید. در ضمن چند تا مقاله هم برای آموزش Pic داره.ارزش سر زدن رو داره.                

   بعد از عضویت دانلود کنید ۷.۴۰ مگابایت                    PicBasic Pro Full Version 2.45 free

موفق باشید.

+ نوشته شده توسط افشین در چهارشنبه دوازدهم مهر 1385 و ساعت 6:8 |
این تصویر نمونه اولیه دستگاه کنترل با ۵ کانال کنترلی که قادره بعد از در یافت و شمارش زنگ تلفن با طرف مقابل(کاربر) ارتباط برقرار کنه و به فرامین وی عمل کنه (کانال ها رو به طور مجزا خاموش یا روشن کنه).

 

+ نوشته شده توسط افشین در سه شنبه چهارم مهر 1385 و ساعت 5:10 |
 

 

+ نوشته شده توسط افشین در جمعه بیست و چهارم شهریور 1385 و ساعت 14:42 |

 

همونطور که قول داده بودم جزیات کنترول خودکار برای سیستم روشنایی رو اضافه کردم.

شماتیک مدار رو دارین می بینین و در ادامه:

( لطفا تصویر زیر رو قبلا ذخیره کنید تا با وضوه و انازه مناسب مشاهده کنید)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

برای اتصال LCD به این صورت عمل کنید:

 

LCD should be connected as follow

       LCD     PIC

       DB4     PortA.0

       DB5     PortA.1

      DB6     PortA.2

       DB7     PortA.3

      RS      PortA.4 (add 4.7K pullup resistor to 5 volts)

      E       PortB.3

      RW      Ground

      Vdd     5 volts

       Vss     Ground

       Vo      20K potentiometer (or ground)

       DB0-3   No connect

 

 برنامه به زبان یسیک با  PICBasic Pro . برای دیدن وضعیت پایه های میکرو به این قسمت مراجعه کنید .

 

http://www.2shared.com/file/1620695/8423b79a/lamp_sensing_timer.html?s=1

 

کدهای Hex برنامه:

 

 دانلود

 

فایل تحت Proteus 6 professional که فقط کافیه کدهای Hex رو داخلش Load کنید و طرز کار مدار رو با کامپیوتر ببینید. ( توی پروتوس روی میکرو کلیک چپ کنید و وقتی انتخاب شد کلیک راست کنید حالا توی قسمت Program File در پنجره ای که باز میشه آدرس فایل Hex رو بدین بعد Ok کنید و در صفحه اصلی روی دکمه Play برای شروع شبیه سازی کلیک کنید. حالا می تونید با کلید های مدار کار کنید و طرز کار زمان سنج رو روی LCD ببینید البته در عمل مدار بدون LCD هم میتونه کار کنه و نیازی نیست حتما ازش استفاده کرد.)

 

 دانلود

 

   برنامه به زبان یسیک با  PICBasic Pro . (( در صورتی که نور از مقدار مشخصی بیشتر باشد مدار از کار می افتد) برای این قسمت باید یک پایه فتوسل ( مقاومت حساس به نور) رو به  PORTB.4 متصل کنید و پایه دیگه رو به یه خازن حدود 0.1 میکرو فاراد وصل کنید و خازن رو به زمین     : ((

 

http://www.2shared.com/file/1620691/834e7383/lamp_sensing_timer_whit_auto_enable.html?s=1

 

کدهای Hex برنامه با enable. (در صورتی که نور از مقدار مشخصی بیشتر باشد مدار از کار می افتد) :

 

دانلود

 

+ نوشته شده توسط افشین در جمعه بیست و چهارم شهریور 1385 و ساعت 13:25 |

 هدف از این پروژه طراحی و ساخت سیستمی است برای خاموش کردن چراغها است.

به این ترتیب که وقتی برای بار اول کسی می خواد وارد اتاق بشه باید یه کلید رو فشار بده تا چراغها روشن بشن و تا وقتی که فرد یا افرادی در اتاق باشند چراغها روشن می مونن اما اگر برای مدت زمان معینی مثلا 3 دقیقه سنسور- حرکتی را در اتاق سنس نکند ( کسی در اتاق نباشد) چراغها به طور خودکار خاموش میشن و برای روشن شدن مجدد آنها بایستی دوباره کلید فشار داده بشه. همچنین قابلیت توقف خودکار نیز بعدا به این سیستم اضافه شد. کار این قسمت خاموش کردن سیستم است- وقتی که نور بیشتر از حد معین باشه مثلا در طول روز سیستم به طور اتوماتیک به حالتDisable  میره و تا زمانی که شدت نور کم نشه چراغها روشن نمیشن.< استاد راهنمای پروژه : جناب آقای دکتر خنشان > 

 برای انجام این کار از میکروکنترلر PIC 16F84  استفاده کردیم. برنامه مورد نظر رو با PICBASIC PRO نوشته و اون رو توی Proteus  تست کردم. بعد از انجام اصلاحات جزیی مدار رو روی بردبورد پیاده شد و به خوبی هم کار کرد. این شیوه کلی کاره.

 سنسور مورد استفاده در این پروژه همان سنسور مورد استفاده در دزدگیر منازل و اماکن است که قادر است با دقت کافی وجود فرد را در اتاق سنس کند. علاوه براین تغذیه این سنسور از دستگاه مرکزی دزدگیر و در حدود 12 ولت است. این سنسورها دو دسته خروجی دارند که یکی حفاظت درب محفظه سنسور و دیگری مربوط به وظعیت فعال سنسور است. این دسته سنسورها برای اینکه در مقابل قطع سیم از خارج محافظت بشن از کنتاکت بسته N.C استفاده میکنن.

 برای تغذیه مدار از یه آی سی رگولاتور 7805 و دو تا خازن استفاده شده. در واقع تغذیه مدار از ولتاژ تغذیه سنسور گرفته میشه. در برنامه برای خوندن وضعیت این سنسور از دستور Button استفاده شده.

BUTTON Pin,Down,Delay,Rate,BVar,Action,Label

همچنین از یه کلید فشاری برای per start  استفاده شده که برای خوندن وضعیت این کلید هم از دستور Button استفاده کردیم.

برای حالت disable از یک فتوسل استفاده شده . دستور به کار رفته در این قسمت دستور pot است. این دستور امکان خواندن و پردازش روی مقدار یک مقاومت را به ما می دهد. البته این یه A/D نیست ولی تونست مشکل ما رو حل کنه. ( میدونید که PIC16F84  - A/D نداره !)

قالب کلی دستور Pot هم به این صورته:

POT Pin,Scale,Var

 

مقدار مقاومت عنصر مورد نظر ( پتانسیومتر یا فتوسل یا... ) با اندازه گیری زمان شارژ و دشارژ خازن متصل به اون مقاومت بدست میاد.

اما این دستور یه مشکل داره و اون هم تعین مقدار Scale برای اینکه این مقدار به روش آزمون و خطا بدست میاد و قاعده دقیقی برای تعینش وجود نداره.

از اونجایی که قرار بود مدار ما یه سری چراغهای 220 ولتی رو کنترل کنه بایستی از یه مدار واسط استفاده می کردیم. برای اینکه زیاد درگیر مشکلات ناشی از نویز و ... بر روی میکرو نباشیم – از یه اپتوکوپلر استفاده کردیم. اپتوکوپلر ما (MOC 3010) در یک طرف ( ورودی ) یه LED ( پایه های 1و2 ) و در طرف دیگر ( خروجی ) یه دیاک ( پایه های 4و6 ) داره.

از اون جایی که این دو عنصر هیچ نوع ارتباط دیگری با هم ندارند – به خوبی می تونن نقش ایزولاتور رو ایفا کنند.

  با روشن شدن LED – مقاومت دیاک به شدت کاهش می یابد. با اتصال دیاک بین فاز و گیت یه ترایاک میشه اون رو روشن و خاموش کرد. در صورتی که جریان ترایاک به تنهایی کافی نباشد میشه از اون مستقلا برای راه اندازی یه کنتاکتور استفاده کرد.

شماتیک و کدهای برنامه را به زودی اضافه میکنم.

+ نوشته شده توسط افشین در پنجشنبه نهم شهریور 1385 و ساعت 23:8 |