قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية fathiidriss
fathiidriss
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2005
الدولة: ليبيا
المشاركات: 58
نشاط [ fathiidriss ]
قوة السمعة:0
قديم 19-10-2008, 10:42 PM المشاركة 1   
افتراضي تشغيل واطفاء اوتماتيكي للمولد الكهربائي Twitter FaceBook Google+



القدره الهائله للبيك وسهوله برمجتها فتحت الباب لتعديل اجهزه وتجهيزات كثيره
ومعروف لدي كل من حاول بناء منظومة للاقلاع الذاتي للمولدات الكهربائيه يلاحظ انه
يستعين بعدد كبير من الكونتاكترات والريليهات واسلاك توصيل كثيره
وهنا اخوتي لدي مخطط في منتهي البساطه والامان للمحرك والمولد وهو مصمم
بالميكروكونترولر الشائع الاستعمال f84a والبرنامج المرفق مكتوب بالبيك بيسك
حتي يتسني للاخوه من تعديل التايمرات لفترة الاقلاع والاطفاء المفاتيح الظاهره في المخطط وضعت بذلك الشكل لتتناسب مع برنامج البروتيوس وهي اصلا عباره عن حساسات ضغط الزيت وثيرموسويتش حراره مياه التبريد ومفتاح اطفاء الطواري
يمكن ان توصل مع فوتوكوبول حتي لا تسبب ارتعاش غلق المفتاح المعروف في توصيله البيك مع المفاتيح الالكترومكانيكيه .
الريليهات المبينه ب (g) و (m) هي لكونتاكتر المولد والتغذيه العامه وهي ما يعرف
بالقلاب
اما الريليهات المبينه ب (accl) و (starter) وهي توصل لصمام الوقود والاستارتر
الملف في الرابط الاتي به البرنامج والمخطط بالبروتيوس مع وجود ملف الهكس
الرابط
>>>>>>>> http://www.zshare.net/download/500679191112f0de/
وهذا رابط اخر >>>>>>>>> http://www.4shared.com/file/245524641/9ee8756f/autorun_gen.html<<<<<<<<<<<<<


التعديل الأخير تم بواسطة : fathiidriss بتاريخ 21-03-2010 الساعة 01:06 PM
اعلانات

الصورة الرمزية fathiidriss
fathiidriss
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2005
الدولة: ليبيا
المشاركات: 58
نشاط [ fathiidriss ]
قوة السمعة:0
قديم 20-10-2008, 11:47 PM المشاركة 2   
افتراضي


هذه برنامج الاسمبلي الخاص بتشغيل واطفاء المولد الكهربائي


;* auto start stop
;* for electrical generator
;*
;*
;*

Fathi Idris

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

LIST
N1 = 23
N2 = 24
N3 = 25
N3H = 26
#Define SENSOR PORTA,0
#Define WATTER PORTA,1
#Define OIL PORTA,2
#Define FUEL PORTA,3
#Define RESET PORTA,4
#Define RUNING PORTB,0
#Define M_ON PORTB,1
#Define FAULT PORTB,2
#Define ALARM PORTB,3
#Define STARTER PORTB,4
#Define ACCL PORTB,5
#Define _M PORTB,6
#Define _G PORTB,7
F1_SOF equ $ ; AUTO_RUN_GENERATOR.BAS
F1_000030 equ $ ; in [AUTO_RUN_GENERATOR.BAS] trisa = $1f
Movlw 31
Bsf STATUS,5
ram_bank = 1
Movwf TRISA
F1_000031 equ $ ; in [AUTO_RUN_GENERATOR.BAS] trisb = $01
Movlw 1
Movwf TRISB
F1_000032 equ $ ; in [AUTO_RUN_GENERATOR.BAS] portb = 0
Bcf STATUS,5
ram_bank = 0
Clrf PORTB
F1_000033 equ $ ; in [AUTO_RUN_GENERATOR.BAS] While 1 = 1
bc*LL1
MAIN
F1_000035 equ $ ; in [AUTO_RUN_GENERATOR.BAS] m = 1
Bsf PORTB,6
F1_000036 equ $ ; in [AUTO_RUN_GENERATOR.BAS] m_on = 1
Bsf PORTB,1
F1_000037 equ $ ; in [AUTO_RUN_GENERATOR.BAS] g = 0
Bcf PORTB,7
F1_000038 equ $ ; in [AUTO_RUN_GENERATOR.BAS] If sensor = 1 Then
Btfss PORTA,0
Goto bc*LL4
F1_000039 equ $ ; in [AUTO_RUN_GENERATOR.BAS] delayms 1000
Movlw 3
Movwf PP1H
Movlw 232
Call dly*w
F1_000040 equ $ ; in [AUTO_RUN_GENERATOR.BAS] portb = 0
Clrf PORTB
F1_000041 equ $ ; in [AUTO_RUN_GENERATOR.BAS] GoTo start
Goto START
Goto bc*LL5
bc*LL4
F1_000042 equ $ ; in [AUTO_RUN_GENERATOR.BAS] Else: GoTo main

Goto MAIN
F1_000043 equ $ ; in [AUTO_RUN_GENERATOR.BAS] End If
bc*LL5
START
F1_000045 equ $ ; in [AUTO_RUN_GENERATOR.BAS] For n1 = 1 To 3
Movlw 1
Movwf N1
fr*lb7
Movlw 4
Subwf N1,W
Btfsc STATUS,0
Goto nx*lb8
F1_000046 equ $ ; in [AUTO_RUN_GENERATOR.BAS] accl = 1
Bsf PORTB,5
F1_000047 equ $ ; in [AUTO_RUN_GENERATOR.BAS] starter = 1
Bsf PORTB,4
F1_000048 equ $ ; in [AUTO_RUN_GENERATOR.BAS] For n2 = 1 To 5
Movlw 1
Movwf N2
fr*lb9
Movlw 6
Subwf N2,W
Btfsc STATUS,0
Goto nx*lb10
F1_000049 equ $ ; in [AUTO_RUN_GENERATOR.BAS] delayms 1000
Movlw 3
Movwf PP1H
Movlw 232
Call dly*w
F1_000050 equ $ ; in [AUTO_RUN_GENERATOR.BAS] Next n2
Incfsz N2,F
Goto fr*lb9
nx*lb10
F1_000051 equ $ ; in [AUTO_RUN_GENERATOR.BAS] If runing = 1 Then GoTo test_sensor
Btfss PORTB,0
Goto bc*LL11
Goto TEST_SENSOR
bc*LL11
F1_000052 equ $ ; in [AUTO_RUN_GENERATOR.BAS] starter = 0
Bcf PORTB,4
F1_000053 equ $ ; in [AUTO_RUN_GENERATOR.BAS] Next n1
Incfsz N1,F
Goto fr*lb7
nx*lb8
FAULT_RUN
F1_000055 equ $ ; in [AUTO_RUN_GENERATOR.BAS] portb = 0
Clrf PORTB
FAULT_RUN1
F1_000057 equ $ ; in [AUTO_RUN_GENERATOR.BAS] fault = 1
Bsf PORTB,2
F1_000058 equ $ ; in [AUTO_RUN_GENERATOR.BAS] sound alarm, [120,60,110,60,120,60]
Movlw PORTB
Movwf GEN
Movlw 8
Movwf GENH
Movlw 120
Movwf PP1
Movlw 60
Call Noise
Movlw 110
Movwf PP1
Movlw 60
Call Noise
Movlw 120
Movwf PP1
Movlw 60
Call Noise
F1_000059 equ $ ; in [AUTO_RUN_GENERATOR.BAS] toggle fault
Movlw 4
Xorwf PORTB,F
Bsf STATUS,5
ram_bank = 1
Bcf TRISB,2
F1_000060 equ $ ; in [AUTO_RUN_GENERATOR.BAS] delayms 500
Movlw 1
Bcf STATUS,5
ram_bank = 0
Movwf PP1H
Movlw 244
Call dly*w
F1_000061 equ $ ; in [AUTO_RUN_GENERATOR.BAS] If Reset = 0 Then GoTo main
Btfsc PORTA,4
Goto bc*LL13
Goto MAIN
bc*LL13
F1_000062 equ $ ; in [AUTO_RUN_GENERATOR.BAS] GoTo fault_run1
Goto FAULT_RUN1
TEST_SENSOR
F1_000064 equ $ ; in [AUTO_RUN_GENERATOR.BAS] starter = 0
Bcf PORTB,4
F1_000065 equ $ ; in [AUTO_RUN_GENERATOR.BAS] accl = 1
Bsf PORTB,5
F1_000066 equ $ ; in [AUTO_RUN_GENERATOR.BAS] For n3 = 1 To 10
Clrf N3H
Movlw 1
Movwf N3
fr*lb15
Movfw N3H
Btfss STATUS,2
Goto nx*lb16
Movlw 11
Subwf N3,W
Btfsc STATUS,0
Goto nx*lb16
F1_000067 equ $ ; in [AUTO_RUN_GENERATOR.BAS] delayms 1000
Movlw 3
Movwf PP1H
Movlw 232
Call dly*w
F1_000068 equ $ ; in [AUTO_RUN_GENERATOR.BAS] Next n3
Incf N3,F
Skpnz
Incfsz N3H,F
Goto fr*lb15
nx*lb16
F1_000069 equ $ ; in [AUTO_RUN_GENERATOR.BAS] If fuel = 1 Then GoTo fault_run
Btfss PORTA,3
Goto bc*LL17
Goto FAULT_RUN
bc*LL17
F1_000070 equ $ ; in [AUTO_RUN_GENERATOR.BAS] If watter = 1 Then GoTo fault_run
Btfss PORTA,1
Goto bc*LL19
Goto FAULT_RUN
bc*LL19
F1_000071 equ $ ; in [AUTO_RUN_GENERATOR.BAS] If oil = 1 Then GoTo fault_run
Btfss PORTA,2
Goto bc*LL21
Goto FAULT_RUN
bc*LL21
F1_000072 equ $ ; in [AUTO_RUN_GENERATOR.BAS] delayms 1000
Movlw 3
Movwf PP1H
Movlw 232
Call dly*w
F1_000073 equ $ ; in [AUTO_RUN_GENERATOR.BAS] m = 0
Bcf PORTB,6
F1_000074 equ $ ; in [AUTO_RUN_GENERATOR.BAS] delayms 1000
Movlw 3
Movwf PP1H
Movlw 232
Call dly*w
F1_000075 equ $ ; in [AUTO_RUN_GENERATOR.BAS] g = 1
Bsf PORTB,7
F1_000076 equ $ ; in [AUTO_RUN_GENERATOR.BAS] m_on = 1
Bsf PORTB,1
F1_000077 equ $ ; in [AUTO_RUN_GENERATOR.BAS] If sensor = 0 Then
Btfsc PORTA,0
Goto bc*LL23
F1_000078 equ $ ; in [AUTO_RUN_GENERATOR.BAS] For n3 = 1 To 60
Clrf N3H
Movlw 1
Movwf N3
fr*lb25
Movfw N3H
Btfss STATUS,2
Goto nx*lb26
Movlw 61
Subwf N3,W
Btfsc STATUS,0
Goto nx*lb26
F1_000079 equ $ ; in [AUTO_RUN_GENERATOR.BAS] delayms 1000
Movlw 3
Movwf PP1H
Movlw 232
Call dly*w
F1_000080 equ $ ; in [AUTO_RUN_GENERATOR.BAS] Next n3
Incf N3,F
Skpnz
Incfsz N3H,F
Goto fr*lb25
nx*lb26
F1_000081 equ $ ; in [AUTO_RUN_GENERATOR.BAS] g = 0
Bcf PORTB,7
F1_000082 equ $ ; in [AUTO_RUN_GENERATOR.BAS] delayms 1000
Movlw 3
Movwf PP1H
Movlw 232
Call dly*w
F1_000083 equ $ ; in [AUTO_RUN_GENERATOR.BAS] m = 1
Bsf PORTB,6
F1_000084 equ $ ; in [AUTO_RUN_GENERATOR.BAS] m_on = 1
Bsf PORTB,1
F1_000085 equ $ ; in [AUTO_RUN_GENERATOR.BAS] For n3 = 1 To 60
Clrf N3H
Movlw 1
Movwf N3
fr*lb27
Movfw N3H
Btfss STATUS,2
Goto nx*lb28
Movlw 61
Subwf N3,W
Btfsc STATUS,0
Goto nx*lb28
F1_000086 equ $ ; in [AUTO_RUN_GENERATOR.BAS] delayms 1000 ; keep generator runing although main suplly come back
Movlw 3
Movwf PP1H
Movlw 232
Call dly*w
F1_000087 equ $ ; in [AUTO_RUN_GENERATOR.BAS] next n3 ; here generator is stop runing
Incf N3,F
Skpnz
Incfsz N3H,F
Goto fr*lb27
nx*lb28
F1_000088 equ $ ; in [AUTO_RUN_GENERATOR.BAS] accl = 0
Bcf PORTB,5
F1_000089 equ $ ; in [AUTO_RUN_GENERATOR.BAS] GoTo main
Goto MAIN
Goto bc*LL28
bc*LL23
F1_000090 equ $ ; in [AUTO_RUN_GENERATOR.BAS] Else: GoTo test_sensor

Goto TEST_SENSOR
F1_000091 equ $ ; in [AUTO_RUN_GENERATOR.BAS] End If
bc*LL28
F1_000094 equ $ ; in [AUTO_RUN_GENERATOR.BAS] GoTo main
Goto MAIN
F1_000101 equ $ ; in [AUTO_RUN_GENERATOR.BAS] Wend
Goto bc*LL1
bc*LL2
F1_000102 equ $ ; in [AUTO_RUN_GENERATOR.BAS] End
Pb*lb30
Sleep
Goto Pb*lb30
END

وهنا رابط لصورة المخطط وملف الاسمبلي

>>>>>>http://www.zshare.net/download/50108542374a3d36 <<<<<<<


التعديل الأخير تم بواسطة : fathiidriss بتاريخ 20-10-2008 الساعة 11:56 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 3,062
نشاط [ زكي شاكر ]
قوة السمعة:183
قديم 29-10-2008, 10:18 PM المشاركة 3   
افتراضي


السلام عليكم
شكرا اخي الكريم على اشراكك إيانا هذه المشاريع النافعة ان شاء الله..
اظن ان اضافة شرح لتعليمات البرنامج الاساسية، قد تساهم في الاستفادة منه أكثر.. خاصة للاخوة المبتدئين في البرمجة. مجرد رأي.
تحياتي


الصورة الرمزية fathiidriss
fathiidriss
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2005
الدولة: ليبيا
المشاركات: 58
نشاط [ fathiidriss ]
قوة السمعة:0
قديم 31-10-2008, 11:31 PM المشاركة 4   
افتراضي


شكرا اخي زكي شاكر علي هذه الملاحظة
الفكره الاساسيه تعتمد علي وجود مجس يبين وجود التيار العام وهو ال sensor يمكن ان يكون ريلي او حساس الطور وهو ما يسمي بقاطع الفيز للخطوط ثلاث اوجه و مجس اخر يبين توليد التيار المناسب عندما يعمل المولد وهو ممثل بالمفتاح
running
يعني مفتاحين واحد يبين وجود التيار العام والآخر تيار المولد
طالما ان التيار العام موجود يطبق علي portb.0 جهد 5 فولت وهي 1 منطقي وفي هذه الحاله يشتغل الكونتاكتر m وهو كونتاكتر دخول التيار العام ثم يستمر البرنامج في حلقه ما لم يتغير حال portb.0 الي منطق (0) او صفر فولت وهذه تتم عندما يوصل مفتاح sensor علي النقاط (NC) المقفوله في الريلي تحسس التيار العام
في هذه الحاله يتم تنفيذ الاتي اولا تصفر المخارج (PORTB ) مع العلم ان PORTA
مبرمج ليكون مخارج و PORTB مداخل الا PORTB.0 وهو مدخل لمجس وجود التيار العام
ومن ثم ياتي الامر بتشغيل accl و starter وهي ظهور 5 فولت علي الطرفين RB.1 و RB.2 اي (1) منطقي
يبدا المولد في الحركه اي كأننا اشعلنا محرك السياره اذا نجح المولد في الاقلاع
يطبق المفتاح RUNNING صفر منطقي علي RB0 وحينها يتم تنفيذ مرحله اختبار محسات حرارة ما ء التبريد ومجس الزيت و الوقود اذا وجدت في الحاله (0) منطقي
يستمر التنفيذ والا تظهر حلقه FAULT_RUNNIN
وهي PORTB =0 واخراج نغمة تحذير في المخرج RP3
في الحاله الثانيه اذا فشل المولد في الاقلاع تحصل فترة تاخير ومنها يبدأ تنفيذ الحلقه الثانيه من NEXT N ويكرر البرنامج نفسه حتي تصبح N =4 واذا لم يشتغل المولد في تلك الثلاث محاولات يقفذ البرنامج الي FAULT_RUNNIN
اما اذا استمر المولد في الحركه فان RUNNING يكون (1) منطقي ونكون قد تجاوزنا مرحله الاقلاع وفحص الزيت والماء والوقود واخذ المولد الوقت الكافئ في الأحماء
ثم يبدأ بعدها تشغيل الكونتاكتر المولد وهو (g)


thaers3d
:: مهندس ::
تاريخ التسجيل: Jul 2006
المشاركات: 8
نشاط [ thaers3d ]
قوة السمعة:0
قديم 14-01-2009, 12:21 PM المشاركة 5   
افتراضي


ألف شكر لك.
وأتمنى المزيد من الدارات العملية المفيدة؟


mostafa_lord
:: مهندس ::
تاريخ التسجيل: Jul 2013
المشاركات: 2
نشاط [ mostafa_lord ]
قوة السمعة:0
قديم 20-07-2013, 06:22 PM المشاركة 6   
افتراضي


القدره الهائله للبيك وسهوله برمجتها فتحت الباب لتعديل اجهزه وتجهيزات كثيره
ومعروف لدي كل من حاول بناء منظومة للاقلاع الذاتي للمولدات الكهربائيه يلاحظ انه
يستعين بعدد كبير من الكونتاكترات والريليهات واسلاك توصيل كثيره
وهنا اخوتي لدي مخطط في منتهي البساطه والامان للمحرك والمولد وهو مصمم
بالميكروكونترولر الشائع الاستعمال f84a والبرنامج المرفق مكتوب بالبيك بيسك
حتي يتسني للاخوه من تعديل التايمرات لفترة الاقلاع والاطفاء المفاتيح الظاهره في المخطط وضعت بذلك الشكل لتتناسب مع برنامج البروتيوس وهي اصلا عباره عن حساسات ضغط الزيت وثيرموسويتش حراره مياه التبريد ومفتاح اطفاء الطواري
يمكن ان توصل مع فوتوكوبول حتي لا تسبب ارتعاش غلق المفتاح المعروف في توصيله البيك مع المفاتيح الالكترومكانيكيه .
الريليهات المبينه ب (g) و (m) هي لكونتاكتر المولد والتغذيه العامه وهي ما يعرف
بالقلاب
اما الريليهات المبينه ب (accl) و (starter) وهي توصل لصمام الوقود والاستارتر
الملف في الرابط الاتي به البرنامج والمخطط بالبروتيوس مع وجود ملف الهكس
الرابط
>>>>>>>> http://www.zshare.net/download/500679191112f0de/
وهذا رابط اخر >>>>>>>>> http://www.4shared.com/file/245524641/9ee8756f/autorun_gen.html<<<<<<<<<<<<<
أخ fathiidriss اذا امكن اعادة رفع الملف لان الروابط لا تعمل وانا محتاج الدائرة ضروري ولك جزيل الشكر والثواب

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 09:19 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025