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

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

الصورة الرمزية ZWAWITOTTI10
ZWAWITOTTI10
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2009
المشاركات: 76
نشاط [ ZWAWITOTTI10 ]
قوة السمعة:0
قديم 30-05-2013, 11:18 PM المشاركة 1   
ha مساعدة في فتح و اغلاق باب بالرولي Twitter FaceBook Google+




السلام عليكم
اريد مساعدة في فتح واغلاق باب وذلك عن طريق فتوريزيستور LDR متصلة ببورت الانالوج الفكرة هي لما الشخص يقطع الليزر الموجه للـ LDR فان الباب سيفتح لـ 5 ثواني ولو بقي فانه يبقى مفتوح الى ان يدخل او يخرج ليغلق بعد 20 ثانية وهنا المشكل الذي مررت به حيث فكرتي كانت بـ while اي مادام الشخض واقف فيبقى مفتوح حيث لاحضت ان while داخل اخرى تركت الانالوج لا يعمل ولم افهم لماذا ولو نزعتها لاشتغلت لكن بدون التوقف مادام الشخص متوقف.
الكود مرفق مع المحكاة

http://www.mediafire.com/download/36qo694o2dr4l9d/16f876a_commande_d'un_barrier_-_Copie.rar

كود:
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;

char x;char B,A1,A2,A3,A4,ferme,ouvre;
char zw[20]="DAHMANI A.MOUMEN";
char display[16]="";
unsigned int result;
float volt,volt_p,temp,temp_p;

void adc()
{
    result=adc_read(0);
    volt=result*4.88;
    temp=volt/10;
 }
void initialize()
{
  trisb=0; trisa=0xff; trisc=0; portc=0;
  adcon1=0x80;
  lcd_init();
  lcd_cmd(_lcd_clear);
  lcd_cmd(_LCD_CURSOR_OFF);
 }
void ouvrire()
{
 portc.f0=1;
 portc.f4=0;
 lcd_out(2,1,"Barrier Ouvrir");
 }
void fermer()
{
  portc.f0=0;
  portc.f4=1;
  lcd_out(2,1,"Barrier Fermer");
 }
void arret()
{
 portc.f4=0;
 portc.f0=0;
 lcd_out(2,1,"Barrier Arret..");
}
void main()
{
  initialize();
while(1)
  {
    adc();
    portc.f3=1;
    lcd_out(1,1,zw);
    delay_ms(400);
    lcd_cmd(_lcd_clear);
    floattostr(temp,display);
    lcd_out(1,1,display);

        if(volt>=2500)
         {
           ouvrire();
           Delay_ms(5000);
           while(1)
            { adc();
              arret();
              Delay_ms(2000);
              if(volt<2500)break;
             }break;
          }
        if(volt<2500)
         { fermer();
           Delay_ms(5000);
           while(1)
                { adc();
                  arret();
                  Delay_ms(2000);
                  if(volt>=2500)break;
                 }
          }
       }
    }


التعديل الأخير تم بواسطة : ZWAWITOTTI10 بتاريخ 30-05-2013 الساعة 11:24 PM
اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 31-05-2013, 11:39 AM المشاركة 2   
افتراضي


اعتقد ان الموضوع لا يحتاج الى مدخل تناظري ...

كود:
void main() 
{char i=0;
 trisa=1;trisb=0;portb=0;
 loop:   i=0;
         if(porta.f0==0){
                         while(porta.f0==0)portb=1;
                         for(i=0;i<200;i++){
                                           delay_ms(100);
                                           if(porta.f0==0)goto loop;
                                           }
                          portb=0;
                          }
 goto loop;
}

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

الصورة الرمزية ZWAWITOTTI10
ZWAWITOTTI10
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2009
المشاركات: 76
نشاط [ ZWAWITOTTI10 ]
قوة السمعة:0
قديم 31-05-2013, 10:19 PM المشاركة 3   
x1



يا اخي الكريم انا قلت تحكم في موتور تيار مستمر يعني مخرجين للتحكم به وانت واضع ليد وحدة ، فكرة الهاي امبيدنس وصلتني لكن برنامجك اضن انه خاطئ 100/100
وارجو ان تفهمني جيدا وشكرا على محاولة المساعدة





التعديل الأخير تم بواسطة : ZWAWITOTTI10 بتاريخ 31-05-2013 الساعة 10:38 PM

الصورة الرمزية ZWAWITOTTI10
ZWAWITOTTI10
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2009
المشاركات: 76
نشاط [ ZWAWITOTTI10 ]
قوة السمعة:0
قديم 31-05-2013, 10:21 PM المشاركة 4   
افتراضي




الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 01-06-2013, 09:37 PM المشاركة 5   
افتراضي


ضع ليد اخر يعمل على العكس تماما مع الليد الاول ...

إضافة رد

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

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

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


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

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