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

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

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 21-05-2015, 06:16 AM المشاركة 1   
افتراضي اهداء الى القرية مشروع لعرض مستوى المياة داخل الخزان مذود بأنذار Twitter FaceBook Google+



السلام عليكم ورحمة الله

اقدم لكم مشروع لقياس مستوى الماء داخل الخزان ...




كود البرنامج




كود:
 //   ****  ENG . ABDALLA HYGAZY   ****  //
 // *** ELEMAN.ELECTRONIC*YAHOO.COM  *** //
 
unsigned short mask(unsigned short num);
unsigned char a3=0,a2=0,a1=0;
    void interrupt(){
    
     portb=1;
  portd=mask(a1);
   delay_ms(5);
     portb=2;
  portd=mask(a2);
   delay_ms(5);
    portb=4;
  portd=mask(a3);
   INTCON=0b00100000;
        TMR0=0;
}

         void main() {
          int x=0;
        adcon1=0x06;
   OPTION_REG=0b10000101;
    INTCON=0b10100000;
          TMR0=217;
   TRISB=0;   PORTB=0;
   TRISC=0;   PORTC=0;
   TRISD=0;   PORTD=0;
   TRISA=63;  PORTA=0;
   TRISE=1;   PORTE=0;
//**********************************//
             staret:
         a1=0; a2=0; a3=0;
             while(1){
  if(porta.f5==1){goto loop1;};
//*********************************//
}
            loop1:
           while(1){
        a3=0;a2=2;a1=5;
     if(porta.f4==1){goto loop2;}
     if(porta.f5==0){goto staret;}
}
            loop2:
           while(1){
        a3=0;a2=5;a1=0;
     if(porta.f3==1){goto loop3;}
     if(porta.f4==0){goto loop1;}
}
            loop3:
           while(1){
        a3=0;a2=7;a1=0;
    if(porta.f2==1){goto loop4;}
    if(porta.f3==0){goto loop2;}
}
            loop4:
          while(1){
       a3=0;a2=8;a1=0;
    if(porta.f1==1){goto loop5;}
    if(porta.f2==0){goto loop3;}
}
            loop5:
           while(1){
       a3=0;a2=9;a1=0;
    if(porta.f0==1){goto loop6;}
    if(porta.f1==0){goto loop4;}
}
           loop6:
          while(1){
      a3=1;a2=0;a1=0;
    if(porta.f0==0){goto loop5;}
    if(porte.f0==1){for(;;){if(porta.f0==0){goto loop5;}portc.f0=1;delay_ms(400);portc.f0=0;delay_ms(200);}}
}
}
unsigned short mask(unsigned short num){
   switch (num){
case 0 : return 0xC0;
case 1 : return 0xF9;
case 2 : return 0xA4;
case 3 : return 0xB0;
case 4 : return 0x99;
case 5 : return 0x92;
case 6 : return 0x82;
case 7 : return 0xF8;
case 8 : return 0x80;
case 9 : return 0x90;
}
}
//***************  END  ******************//

فكرة المشروع ..

هو .. يوجد 7 سوتشات لكل سوتش مرحلة معينة بيخرج بها قيمه على شاشات ال 7سيجمنت وهو بيبدأ من المفتاح رقم 5 من البورت (A) فى الميكروكنترولر ..

اذا تم الضغط على المفتاح الاول ... وهو رقم 5 من البورت (A) سوف يعطى قيه 25 % على شاشة ال 7سيجمنت ... ولو تم الضغط على المفتاح الثانى .. وهو رقم 4 من البورت (A ) سوف تذيد هذة القيمه الى ان تصل 50 % وهكذا الى ان يتم الضغط على كل السوتشات للوصل للسوتش رقم 6 وهو البن رقم 0 من البورت (A) ويوجد مفتاح سابع هذا المفتاح فائدته سوف يعطى انذار اذا تجاوز منسوب المياة الحد الاقصى فى الخزان هيضوى ليد فلاش للدلالة على ان مستوى المياة تعدى المنسوب المقرر له .. وطبعااا من الممكن استبدال الليد بأنذار صوتى ..



ملحوظة لازم تبدأ بالضغط على المفتاح رقم 5 .. ولذيادة القيمة لابد ان يكون الفتاح رقم 5 مستمر بالضغط عليه واضغط على المفتا حاللذى يليه


ملحوظات هول الدائرة أو البرنامج ..


عند توصيل الدائرة على ارض الواقع يجب الانتباة من توصيل اطراف السوتشات بطريقة صحيحه .. بمعنى انا مستخدم فى الدائرة اعلاة سوتشان عاديىه فقط لمحكاة الدائرة ,, ولكن عند توصيل الدائرة على ارض الواقع هيتم استبدال هذة السوتشات بلأسلاك نحاس لكل سوتش .. الفكرة انها . نوع الترنزوستر المستخدم هو .... PNP .... وطبعااا عشان نستخد الترنزوستر ده كمفتاح لازم نطبق جهد سالب بقيمه 400 ملى فولت على قاعدة الترنزوستر ليتم تفعيل الترنزوستر ويعمل كمفتاح ... طيب الفكرة هنا ان احنا هنوصل سلك قادم من قاعدة الترنزوستر وهنشيل العزل عن طرف السلط بمساحة واحد سنتم .. وهنضع سلك أخر بجوار السلك القادم من قاعدة كل ترنزوستر .. وعند صعود المياة الى السلكين هيتم توصيل تيار ضعيف من خلال مقاومة المياة وبالتالى هيشتغل الترنزوستر فى هذة الحالة كمفتاح ... وهنطبق نفس الفكرة مع باقى قواعد الترنزوسترات ....


صورة توضح طريقة توسيل حساسات مستوى الماء داخل الخزان ...







صورة الدائرة الالكترونية ....













رابط لتحميل المشروع كامل


http://download1513.mediafire.com/cp...8%A7%D9%86.rar





تحياتى لكم اخوكم عبدالله حجازى





.................................:c hr:


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 21-05-2015 الساعة 06:37 AM
اعلانات

الصورة الرمزية Sallam
Sallam
:: مهندس متميز ::
تاريخ التسجيل: Mar 2006
الدولة: Syria
المشاركات: 518
نشاط [ Sallam ]
قوة السمعة:0
قديم 21-05-2015, 06:50 AM المشاركة 2   
افتراضي


شكرا استاذ عبد الله حجازي

مشروع رائع
ولكن لي استفسار عن كيفية قياس مستوى الخزان بطريقة اخرى
مثلا باستعمال خطين فقط
او بالاعتماد على فواشة مربوطة الى مقاومة متغيرة وبالتالي تتغير قيمة المقاومة بحسب موقع وجود الفواشة ( الطابة ) داخل الخزان

اشكرك مجددا مع تمنياتي لك بكل التوفيق

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 21-05-2015, 12:31 PM المشاركة 3   
افتراضي


شكرا استاذ عبد الله حجازي

مشروع رائع
ولكن لي استفسار عن كيفية قياس مستوى الخزان بطريقة اخرى
مثلا باستعمال خطين فقط
او بالاعتماد على فواشة مربوطة الى مقاومة متغيرة وبالتالي تتغير قيمة المقاومة بحسب موقع وجود الفواشة ( الطابة ) داخل الخزان

اشكرك مجددا مع تمنياتي لك بكل التوفيق

السلام عليكم ورحمه الله

اشكرك اخى الكريم على مداخلتك ..
من الممكن فعلا القياس بطرفين أو طرف واحد فقط ولكن هذا الامر يحتاج الى استخدام خاصية الاشارة التماسليه الموجودة فى البورت (A) ولكن للأسف لم اتعامل مع هذة الخاصية من قبل ..

تحياتى لك اخى الكريم..


jossyouri
:: مهندس ::
تاريخ التسجيل: May 2015
المشاركات: 10
نشاط [ jossyouri ]
قوة السمعة:0
قديم 21-05-2015, 12:56 PM المشاركة 4   
افتراضي السلام عليكم و رحم اله و بركاته


هلا بالغالي عبد الله
اخي ابي اتواصل معاك يا ريت لو بامكانك تضفني على االفيس بوك


الصورة الرمزية Sallam
Sallam
:: مهندس متميز ::
تاريخ التسجيل: Mar 2006
الدولة: Syria
المشاركات: 518
نشاط [ Sallam ]
قوة السمعة:0
قديم 21-05-2015, 03:01 PM المشاركة 5   
افتراضي


أشكرك لردك على سؤالي

لقد قمت بتجربة مشروعك على بروتس فكان الحساس الأول يظهر 25 ثم الثاني 50 ثم الثالث 70 ثم الرابع 80 ثم الخامس 90 ثم السادس 100 وأخر الكل يعطي انذار عن طريق وميض الليد.

معناها ممكن ان نستعمل مع الليد ترانزستور يقوم بالتحكم بريليه للتحكم بمضخة الماء بحيث يفصل المحرك

وأيضا من الممكن عند الوصول لمستوى الحساس الأول إعطاء الأمر للمضخة بالعمل.

وأيضا مع بعض التعديلات البسيطة يصبح مشروعك متكامل.

فهل يمكن إجراء مثل هذه التعديلات على هذا المشروع

مع كل الشكر وبالتوفيق


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 22-05-2015, 12:10 AM المشاركة 6   
افتراضي


هلا بالغالي عبد الله
اخي ابي اتواصل معاك يا ريت لو بامكانك تضفني على االفيس بوك
اهلا بك اخى الكريم ..


انا بحاول ارسال رساله على الخاص لك ولكن يظهر ان الرسائل الخاصة تبعك معطلة


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 22-05-2015 الساعة 12:13 AM

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 22-05-2015, 12:16 AM المشاركة 7   
افتراضي


أشكرك لردك على سؤالي

لقد قمت بتجربة مشروعك على بروتس فكان الحساس الأول يظهر 25 ثم الثاني 50 ثم الثالث 70 ثم الرابع 80 ثم الخامس 90 ثم السادس 100 وأخر الكل يعطي انذار عن طريق وميض الليد.

معناها ممكن ان نستعمل مع الليد ترانزستور يقوم بالتحكم بريليه للتحكم بمضخة الماء بحيث يفصل المحرك

وأيضا من الممكن عند الوصول لمستوى الحساس الأول إعطاء الأمر للمضخة بالعمل.

وأيضا مع بعض التعديلات البسيطة يصبح مشروعك متكامل.

فهل يمكن إجراء مثل هذه التعديلات على هذا المشروع

مع كل الشكر وبالتوفيق

رائع وملاحظات جميله وافكار جميله طبعااا من الممكن ان نضيف أى شئ فى البرنامج ... هضيف بعد المزايا اللتى ذكرتها وهرفع الكود قريباا ان شاء الله ..

تحياتى لك ولكل أهل سوريا الغالة


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 22-05-2015, 02:39 AM المشاركة 8   
افتراضي كود جديد للمشروع تم اضافة متور لطرمبة المياة


السلام عليكم ومن منطلك التشارك والافكار الجديدة تم اضافه مميزات للبرنامج جديده...
المشروع تحت التطوير الدائم للوصول لأفضل النتائج..




الكود الجديد




// **** ENG . ABDALLA HYGAZY **** //
// *** ELEMAN.ELECTRONIC*YAHOO.COM *** //


unsigned short mask(unsigned short num);
unsigned char a3=0,a2=0,a1=0;
void interrupt(){

portb=1;
portd=mask(a1);
delay_ms(5);
portb=2;
portd=mask(a2);
delay_ms(5);
portb=4;
portd=mask(a3);
INTCON=0b00100000;
TMR0=0;
}

void main() {
int x=0;
adcon1=0x06;
OPTION_REG=0b10000101;
INTCON=0b10100000;
TMR0=217;
TRISB=0; PORTB=0;
TRISC=0; PORTC=0;
TRISD=0; PORTD=0;
TRISA=63; PORTA=0;
TRISE=1; PORTE=0;
//**********************************//
staret:
a1=0; a2=0; a3=0;
while(1){
if(porta.f5==1){goto loop1;};
//*********************************//
}
loop1:
while(1){
a3=0;a2=2;a1=5;
if(porta.f4==1){goto loop2;}
if(porta.f5==0){goto staret;}
portc.f1=1;

}
loop2:
while(1){
a3=0;a2=5;a1=0;
if(porta.f3==1){goto loop3;}
if(porta.f4==0){goto loop1;}
portc.f1=1;
}
loop3:
while(1){
a3=0;a2=7;a1=0;
if(porta.f2==1){goto loop4;}
if(porta.f3==0){goto loop2;}
portc.f1=1;
}
loop4:
while(1){
a3=0;a2=8;a1=0;
if(porta.f1==1){goto loop5;}
if(porta.f2==0){goto loop3;}
portc.f1=1;
}
loop5:
while(1){
a3=0;a2=9;a1=0;
if(porta.f0==1){goto loop6;}
if(porta.f1==0){goto loop4;}
portc.f1=1;

}
loop6:
while(1){
portc.f1=0;
a3=1;a2=0;a1=0;
if(porta.f0==0){goto loop5;}
if(porte.f0==1){for(;{if(porta.f0==0){goto loop5;}portc.f0=1;delay_ms(400);portc.f0=0;delay_ms(200);}}
}
}
unsigned short mask(unsigned short num){
switch (num){
case 0 : return 0xC0;
case 1 : return 0xF9;
case 2 : return 0xA4;
case 3 : return 0xB0;
case 4 : return 0x99;
case 5 : return 0x92;
case 6 : return 0x82;
case 7 : return 0xF8;
case 8 : return 0x80;
case 9 : return 0x90;
}
}
//*************** END ******************//







التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 22-05-2015 الساعة 02:47 AM
إضافة رد

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

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

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


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

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