اطلاعیه

Collapse
No announcement yet.

مشکل برنامه با کدویژن برای ربات مسیریاب

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل برنامه با کدویژن برای ربات مسیریاب

    با عرض سلام
    من میخوام برنامه ای بنویسم تا با زدن دکمه مقدار adc سنسورها در یک آرایه ای ذخیره بشه و در نهایت پیغامی ظاهر بشه اما نمیدونم چجوری کلید فشاری را در مدار ببندم و همچنین برنامه اونو نمیدونم البته یه چیزایی نوشتم اما میکرو atmega16 بدون در نظر گرفتن کلید پیغام را نشون میده ........ خواهشا راهنماییم کنید
    اگر تنهاترین تنها شوم باز هم خدا هست.(شهید چمران)

    #2
    پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

    سلام
    اگه کلید پس از فشرده شدن، سطح ولتاژ 0 رو به ورودی اعمال کنه
    کد:
    void main(void){
    
    DDRD.6=0; PORTD.6=1;
    
    
    while (1){
    	if(PIND.6==0){
    		delay_ms(30); 
    		if(PIND.6==0){ };
    	};
    
    	delay_ms(500);
    }
    دستور مورد نظرت رو تو if دومی بنویس
    ایراد این روش اینه که اگه دستت رو سوییچ بمونه، دستور نوشته شده هر 500 میلی ثانیه اجرا میشه

    دیدگاه


      #3
      پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

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

      نوشته اصلی توسط علیرضا جودی
      سلام
      اگه کلید پس از فشرده شدن، سطح ولتاژ 0 رو به ورودی اعمال کنه
      کد:
      void main(void){
      
      DDRD.6=0; PORTD.6=1;
      
      
      while (1){
      	if(PIND.6==0){
      		delay_ms(30); 
      		if(PIND.6==0){ };
      	};
      
      	delay_ms(500);
      }
      دستور مورد نظرت رو تو if دومی بنویس
      ایراد این روش اینه که اگه دستت رو سوییچ بمونه، دستور نوشته شده هر 500 میلی ثانیه اجرا میشه
      قصد جسارت ندارم اقای جودی ولی به جای استفاده از 2 شرط if و گذاشتن تاخیر استفاده از یک متغیر حالت خیلی کارسازتر میشه.
      موفق باشید
      چرا ناراحتی پاتریک!
      + امروز ی بچه دیدم سرچهارراه گل میفروخت
      - از دیدنش ناراحت شدی؟
      + نه
      پس چی ناراحتت کرده
      + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
      ------------------------------------------------------------------------------------------------------
      تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
      ------------------------------------------------------------------------------------------------------
      محصولات

      دیدگاه


        #4
        پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

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

        (if((PIND.6==1) && (v==0)

        {

        ;(delay_ms(500);

        (if((PIND.6==1) && (v==0))

        {

        ( for( i=1; i<17 ; i++)

        {


        ; [ mohit1[i]=s[i;

        ; ()lcd_clear
        (lcd_gotoxy(0,0);
        (lcd_puts(" Mohit 1 OK"

        };


        v=1;

        }


        };

        ;(delay_ms(3000)

        if((PIND.6==1) && (v==1))

        {

        delay_ms(500);

        (if((PIND.6==1) && (v==1))

        {

        for(i=1;i<17;i++)

        {

        mohit2[i]= s[i

        lcd_clear();
        lcd_gotoxy(0,0);
        lcd_puts("** Mohit 2 ** OK"

        };

        v=0;

        }
        اما نمیدونم چرا وقتی کلیدو هنوز نزدم پیغام "mohit1 ok "و "mohit2 ok " را میده؟
        اگر تنهاترین تنها شوم باز هم خدا هست.(شهید چمران)

        دیدگاه


          #5
          پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

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

          دیدگاه


            #6
            پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

            کد:
            [left]if((PIND.6==1) && (v==0))    ///      shoroe miyanghie Meghdar sensor
                {
                 delay_ms(500);
                 if((PIND.6==1) && (v==0))
                 { 
                  for( i=1; i<17 ; i++)
                  {
                   mohit1[i]=s[i];
                   lcd_clear();
                   lcd_gotoxy(0,0);
                   lcd_puts("    Mohit 1       OK"); 
                  };
                  v=1;
                 }
                 
                };
                delay_ms(3000);
                 if((PIND.6==1) && (v==1))
                {
                 delay_ms(500);
                 if((PIND.6==1) && (v==1))
                 { 
                  for(i=1;i<17;i++)
                  {
                   mohit2[i]=s[i];
                   lcd_clear();
                   lcd_gotoxy(0,0);
                   lcd_puts("** Mohit 2 **      OK"); 
                  };
                  v=0;
                  
                 }
                   
                }
            
            
            
            
            
            [/left]

            اضافه شده در تاریخ :
            اگه لطف کنی شماتیک را هم بگی ممنون میشم
            اگر تنهاترین تنها شوم باز هم خدا هست.(شهید چمران)

            دیدگاه


              #7
              پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

              من وقتی همین برنامه را با pind.6==1 مینویسم هیچ پیغامی نشون نمیده که قاعدتن هم باید همین طور باشه چون هیچ دکمه ای به اون وصل نیست .... اما پورت d.5 که بهش کلید وصله چه با دستور pind.5==0 وچه با دستور pind.5==1 که می نویسم بدون زدن دکمه پیغام میده ...... اشکالاز کجا میتونه باشه .
              اگر کسی نحوه بستن کلید فشاری را بلده بهم بگه شاید اتصالاتم مشکل داره/
              اگر تنهاترین تنها شوم باز هم خدا هست.(شهید چمران)

              دیدگاه


                #8
                پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

                من وقتی همین برنامه را با pind.6==1 مینویسم هیچ پیغامی نشون نمیده که قاعدتن هم باید همین طور باشه چون هیچ دکمه ای به اون وصل نیست .... اما پورت d.5 که بهش کلید وصله چه با دستور pind.5==0 وچه با دستور pind.5==1 که می نویسم بدون زدن دکمه پیغام میده ...... اشکالاز کجا میتونه باشه .
                شاید چون مقاومت 10 کیلو داخلی رو فعال کردی برنامه تو همون لحظه شروع دستور داخل شرط رو اجرا میکنه
                پایه D.5 باید به صورت ورودی و بدون فعال کردن مقاومت داخلی پیکره بندی بشه
                کد:
                DDRD.6=0; PORTD.6=0;
                شماتیک راه اندازی هم که میتونی استفاده کنی مثل این باشه

                دیدگاه


                  #9
                  پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

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

                  دیدگاه


                    #10
                    پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

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

                    چرا ناراحتی پاتریک!
                    + امروز ی بچه دیدم سرچهارراه گل میفروخت
                    - از دیدنش ناراحت شدی؟
                    + نه
                    پس چی ناراحتت کرده
                    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                    ------------------------------------------------------------------------------------------------------
                    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                    ------------------------------------------------------------------------------------------------------
                    محصولات

                    دیدگاه


                      #11
                      پاسخ : پاسخ : مشکل برنامه با کدویژن برای ربات مسیریاب

                      نوشته اصلی توسط علیرضا جودی
                      شاید چون مقاومت 10 کیلو داخلی رو فعال کردی برنامه تو همون لحظه شروع دستور داخل شرط رو اجرا میکنه
                      پایه D.5 باید به صورت ورودی و بدون فعال کردن مقاومت داخلی پیکره بندی بشه
                      کد:
                      DDRD.6=0; PORTD.6=0;
                      شماتیک راه اندازی هم که میتونی استفاده کنی مثل این باشه


                      خیلی ممنون آقای جودی به خاطره راهنماییتون مشکلم حل شد.
                      اگر تنهاترین تنها شوم باز هم خدا هست.(شهید چمران)

                      دیدگاه

                      لطفا صبر کنید...
                      X