اطلاعیه

Collapse
No announcement yet.

مشکل در مورد اتصال میکرو سوئیچ به میکرو16 یا 32

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

    مشکل در مورد اتصال میکرو سوئیچ به میکرو16 یا 32

    با سلام خدمت تمامی دوستان

    من حمید هستم و قصد دارم با استفاده از یک ATMEGA 16 or 32 و ال سی دی بر روی پورت A و 3میکرو سوئیچ بر روی پورت های B1 تا B3 که از یک طرف به پایه های میکرو و از طرف دیگر به مقاومت 4.7 بعد به منفی متصل هستند .
    می خواهم با زدن هر میکرو سوئیچ عدد مورد نظر را بر روی ال سی دی 16*2 نمایش بدهم که امکان پذیر نیست . نمی دونم چرا اعداد نا مربوط مرتبا بر روی ال سی دی عوض می شوند و وقتی که سوئیچ را فشار می دهیم آن عدد سه یا چهار رقمی بر روی ال سی دی ثابت می شود .


    البته اگر هر میکرو سوئیچ را بر روی یک پورت جداگانه قرار دهم بر روی ال سی دی می توانیم اعداد را نمایش دهیم .
    یعنی سویچ 1 بر روی پورت B1 و سویئچ 2 بر روی پورت D1 و سوئیچ 3 بر روی پورت C1 و یک طرف سویچ ها به منفی در اینصورت است که می توان بر روی ال سی دی عدد مورد نظر را بنویسیم اما نمیشه از این روش استفاده کنم باید سوئیچ ها بر روی یک پورت باشند

    برنامه را هم در پایین قرار می دم امید وارم دوستان عنایت کنند تا این پروژه به سرانجام برسد بازم ممنونم



    int x;
    int y;
    int z;

    bit b;
    bit c;
    bit a;


    char txt[15];




    if(b^PINB.0)
    {
    b=PINB.0;
    if(~PINB.1)
    {


    x=1;

    sprintf(txt,"x=%d"
    lcd_clear();
    lcd_puts(txt);
    delay_ms(20);

    }
    }


    if(c^PINB.2)
    {
    c=PINB.0;
    if(~PINB.2)
    {


    y=2;

    sprintf(txt,"y=%d"
    lcd_clear();
    lcd_puts(txt);
    delay_ms(20);

    }
    }




    if(a^PINB.3)
    {
    a=PINB.0;
    if(~PINB.3)
    {


    z=0;

    sprintf(txt,"z=%d"
    lcd_clear();
    lcd_puts(txt);
    delay_ms(20);

    }
    }



    به امید اینکه در پناه یزدان هر روز موضوع جدیدی در زندگی یاد بگیریم و بتوانیم از آن به بهترین شکل استفاده کنیم

    #2
    پاسخ : مشکل در مورد اتصال میکرو سوئیچ به میکرو16 یا 32

    نوشته اصلی توسط hamid_adel
    با سلام خدمت تمامی دوستان

    من حمید هستم و قصد دارم با استفاده از یک ATMEGA 16 or 32 و ال سی دی بر روی پورت A و 3میکرو سوئیچ بر روی پورت های B1 تا B3 که از یک طرف به پایه های میکرو و از طرف دیگر به مقاومت 4.7 بعد به منفی متصل هستند .
    با سلام
    پایه های میکروسویچها که به پایه های میکرو وصل شدند ، دارای پول پ ( 10 کیلو اهم ) هستند ؟ احتمالا اگه پول پ نداشته باشند ، این اتفاق ممکنه بیفته .

    دیدگاه


      #3
      پاسخ : مشکل در مورد اتصال میکرو سوئیچ به میکرو16 یا 32

      شما یک سر سویچ به منفی و سر دیگر ان رو به میکرو وصل کن. یک مقاومت 10 k هم یک سر به +5 بزن و سر دیگه ان رو به ان پایه که سویچ به میکرو وصل شده بزن. اگه ممکنه شماتیک مدار رو بزارید

      دیدگاه


        #4
        پاسخ : مشکل در مورد اتصال میکرو سوئیچ به میکرو16 یا 32

        سلام....
        مشکل شما از اینجا ناشی میشه که از طرفی ورودی ها رو با مقاومت به زمین وصل کردی و احتمالا از طرف دیگه مقاومت های pullup داخلی رو فعال کردی
        شما نیازی به مقاومت بیرونی نداری از مدار حذفشون کن و سر دیگه میکروسویچ ها رو به زمین وصل کن و بعد مطمئن شو که بیت معادل پینها در رجیستر ddr یک ه
        بعد منطق برنامت رو معکوس کن یعنی زمانی که فشرده بشه 0 پین معادل 0 میشه.


        Qt - A cross-platform application and UI framework

        با کامپایلرهای قدرتمند GCC در Linux و MinGw در Windows

        دیدگاه

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