NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3533 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 3 123 آخرینآخرین
نمایش نتایج: از 1 به 20 از 52

موضوع: راهنمایی جهت نوشتن برنامه

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض راهنمایی جهت نوشتن برنامه

    دوستان عزیز سلام
    من میخوام یه برنامه بنویسم که سه ردیف ال ای دی رو باهاش کنترل کنم به صورت زیر:
    1- ردیف زرد روشن باشه
    2-اگه کلید 1 فشار داده شد ردیف زرد خاموش شه و ردیف قرمز روشن شه ( بطور دائم) تا کلید آزاد شه
    3- اگه کلید 2 فشار داده شد ردیف زرد خاموش شه و ردیف سبز روشن شه ( بطور دائم ) تا کلید آزاد شه
    به دلیل تازه کاری نتونستم بنویسمش و این در اومد
    while (1)
    {
    PORTB=255;
    delay_ms(250);


    if(PIND.0==1)
    {
    PORTB=0;
    PORTC=255;
    }
    else if (PIND.0==0)
    PORTB==255;



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

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

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

  4. #3
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadeghbakhshi نمایش پست ها
    سلام
    شما باید از اینتراپت استفاده کنید
    به این شکل که اول ردیف زرد روشن هست
    اگر کلید یک فشرده شد وقفه در لبه ی بالا رونده ایجاد بشه و بعد
    توی زیر روال وقفه ردیف زرد خاموش بشه و ردیف قرمز روشن بشه
    بعد که کلید رها شد وارد زیر روال وقفه ی پایین رونده بشه
    و پورتهای مورد نظر رو نات کنه
    برای حالت سوم هم به همین شکل هست
    در مورد برنامه ای هم که نوشتید ایف اولی اجرا میشه بعد خارج میشه
    وارد ایف دوم نمیشه و دوباره به اول حلقه بر میگرده
    و از اونجایی که پورت سی رو ست کردید دوباره ردیف زرد روشن میشه و 250 میلی ثانیه صبر میکنه
    این باعث میشه که چشمک بزنه ولی چون سرعتش بالا هست شما فقط ردیف زرد رو روشن میبینید
    دو خط اول حلقه ی وایل رو کات کنید و قبل از وایل بنیویسید
    ممنون از راهنماییت دوست عزیز
    درست شد فقط بعد از اینکه کلید رو رها میکنم به حالت اولش برنمیگرده.
    جساراتا شما رشته تحصیلیتون چیه ؟
    ویرایش توسط DIN : 17-07-2014 در ساعت 22:11

  5. #4
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

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

  6. #5
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

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

    عرض کردم خدمتتون
    بعد از اینکه کلید رو فشار دادم میخوام اون ردیف ال ای دی که روشنه خاموش شه ردیف دیگه ای روشن شه
    بعد از اینکه کلید رها شد ال ای دی ها به حالت قبل برگردن

  7. #6
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    با سلام.
    شما میتونید که پایه هایی که به کلید وصل شدن رو pull-down کنین یعنی با یه مقاومت مثلا 3.3 یا 10 کیلو به زمین وصل کنین در این صورت وقتی کلید رها میشه مقدار اون به سطح منطقی صفر میرسه.
    و در داخل برنامه یه شرط بزارین که اگه کلید یک فشار داده شده باشه ردیف یک و اگه دومی فشار داده شده باشه ردیف دوم و در غیر اینصورت ردیف سوم. یعی یه ساختار else-if به کار ببرید.
    من فرم کلی برنامه رو نوشتم شما میتونید از رو این برنامه رو بنویسید.
    کد:
    while(1){
        if(PINB.0==1){//key 1
            PORTD=255;//RED ON
            PORTA=0;//ZARD OFF
            PORTC=0;//GREEN OFF
            }
        else if(PINB.1==1){//key 2
            PORTD=0;//RED OFF
            PORTA=0;//ZARD OFF
            PORTC=255;//GREEN ON
            }
        else
            {
            PORTD=0;//RED OFF
            PORTA=255;//ZARD On
            PORTC=0;//GREEN OFF
            }
        }

  8. #7
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    ممنون از راهنماییتون مشکلم حل شد
    منبع خوبی برای آموزش کدویژن میتونید بهم معرفی کنید؟

  9. #8
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    نقل قول نوشته اصلی توسط DIN نمایش پست ها
    ممنون از راهنماییتون مشکلم حل شد
    منبع خوبی برای آموزش کدویژن میتونید بهم معرفی کنید؟
    سلام
    کتاب ای وی ار نوشته پرتویی فر و مظاهری و یک نفر دیگه هست
    که انتشارات نص داره منتشر میکنه
    ولی از من میشنوی برو سراغ اتمل استادیو
    یدونه اردونیو بخر حالش رو ببر
    کلی هم مثال توی اینترنت براش هست

  10. #9
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

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

  11. #10
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام
    به نظرم این
    اتمل استادیو
    مبحث جالبی میاد میشه راجبش بیشتر بهم توضیح بدی ؟
    ممنون
    ویرایش توسط DIN : 19-07-2014 در ساعت 19:13

  12. #11
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

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

  13. تشکرها از این نوشته :


  14. #12
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    اقای بخشی درست میگن استفاده کدویژن این ایراد رو تقریبا داره البته نه به اندازه بسکام ولی بهر حال میشه از ویزارد استفاده نکرد. و به نظر من ابتدا واحد ها رو بدون ویزارد راه اندازی کرد و بعدن از ویزارد استفاده کرد و اگه استفاده هم نکنین خیلی بهتر خواهد بود.

  15. #13
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    دوستان عزیز سلام
    یه مشکل دیگه برام پیش اومده .
    تو برنامه قبلی باید یه موتور دی سی اضافه کنم که با فشرده شدن یکی از کلید ها حرکت کنه با رها شدن کلید متوقف شه
    از اونجا که همه پینای پورتهای A.B.C پر شده دوتا کلید رو پورت D بستم و موتور هم روی پین هفتم پورت D بستم
    وقتی کلید رو فشار میدم موتور شروع به حرکت میکنه ولی بعد از رها شدن کلید موتور متوقف نشد چکار کنم ؟


    while(1){
    if(PIND.0==1){//key 1
    PORTA=255;//RED ON
    PORTB=0;//ZARD OFF
    PORTC=0;//GREEN OFF
    PIND.7=0;
    delay_ms(250);
    }
    else if(PIND.1==1){//key 2
    PORTA=0;//RED OFF
    PORTB=0;//ZARD OFF
    PORTC=255;//GREEN ON
    PIND.7=1;
    delay_ms(250);
    }
    else
    {
    PORTA=0;//RED OFF
    PORTB=255;//ZARD On
    PORTC=0;//GREEN OFF
    PIND.7=0;
    delay_ms(250);
    }
    };
    }
    }

  16. #14
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

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

  17. #15
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    یه موتور dc معمولی رو چه جوری باید وصل کنم استپ نه؟
    یکی از کلیدهامو زدم هم ردیف ال ای دیش روشن شه هم موتور کلید که رها شد موتور متوقف شه ال ای دی هم خاموش

  18. #16
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    برای راه اندازی موتور بهتره از آی سی ها درایور استفاده کنید مثلا l293 سرچ کنید میتونید راه اندازیش رو پیدا کنید کار بسیار ساده ای هست.
    یه موتور dc معمولی رو چه جوری باید وصل کنم استپ نه؟
    یکی از کلیدهامو زدم هم ردیف ال ای دیش روشن شه هم موتور کلید که رها شد موتور متوقف شه ال ای دی هم خاموش
    الان دقیقا میخواین چه اتفاقی بیوفته؟؟

  19. #17
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

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

    فایل پیوست 7884
    وقتی کلید سمت چپ رو فشار میدیم ال ای دی های زرد خاموش میشه و ال ای دی های قرمز رو پرت سی روشن میشه
    فایل پیوست 7885
    و وقتی کلید رو رها کنیم ال ای دی های قرمز خاموش میشه و ال ای دی های زرد دوباره روشن میشه
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 3.jpg
مشاهده: 23
حجم: 48.4 کیلو بایت
    و وقتی کلید سمت راست فشار میدیم ال ای دی های زرد خاموش میشه و ال ای دی های سبز روشن میشه
    و وقتی کلید رو رها کنیم ال ای دی های سبز خاموش میشه و ال ای دی های زرد دوباره روشن میشه


    حالا میخوام وقتی کلید سمت چپ رو فشار دادیم و ال ای دی های قرمز روشن شد یه موتور دی سی هم روشن شه و وقتی کلید رها شد ال ای دی ها خاموش شد موتور هم خاموش شه

  20. #18
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    این برنامه اون کاری که شما میگین رو انجام میده ایراد برنامه شکما رو با ستاره در این برنامه نشون دادم.باید به جای PIN از PORT استفادهخ میکردین.
    البته در عمل برای موتور این طرز وصل کردن کاملا اشتباه می باشد و باید درایور بزارینه.
    کد:
    while(1){
        if(PIND.0==1){//key 1
            PORTA=255;//RED ON
            PORTB=0;//ZARD OFF
            PORTC=0;//GREEN OFF
            PORTD.7=0;//***********
        }
        else if(PIND.1==1){//key 2
            PORTA=0;//RED OFF
            PORTB=0;//ZARD OFF
            PORTC=255;//GREEN ON
            PORTD.7=1;//***********
        }
        else
        {
            PORTA=0;//RED OFF
            PORTB=255;//ZARD On
            PORTC=0;//GREEN OFF
            PORTD.7=0;//***********
        }
    }

  21. #19
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    ممنون دوست عزیز ولی عمل نکرد
    راهنمایی شما در رابطه با آی سی درایور کاملا درسته ولی من اصلا باهاش آشنا نیستم تو کتابهایم که دارم چیزی راجبش توضیح نداده

  22. #20
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    با سلام مجدد دوست عزیز برنامه بالا کاملا درست هست.
    کاش شما برنامه کامل خودتون رو میزاشتین تا زودتر بجواب برسین.
    من مطمینم که شما تو تعریف ورودی خروجی پورت d اشتباه کردین.یعنی پورت d رو اصلا خروجی نکردین یعنی باید دو پایه اول رو ورودی و پایه 7 رو خروجی کنید یعنی باید:
    DDRD.7=1;
    این کد رو مطمینم ننوشتین و خروجیش نکردین که کار میکنه و احتمالا کلا ورودی کردین.

صفحه 1 از 3 123 آخرینآخرین

موضوعات مشابه

  1. تضاد بینایی کامپیوتر و بینایی ماشین
    توسط ROBOTICS در انجمن مفاهیم اولیه در رباتیک
    پاسخ: 6
    آخرين نوشته: 25-12-2010, 22:02

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •