اطلاعیه

Collapse
No announcement yet.

کمک در مورد اولین پروژه میکرو !

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

    کمک در مورد اولین پروژه میکرو !

    با سلام

    در ابتدا از تمامی عزیزانی که مهربانانه پست زده و اطلاعات خودشان را با دیگران Share می کنند تشکر می کنم امیدوارم همیشه این طور مکانها پایدار بماند.

    ------------------------------------------------------------------------------------
    به راهنمایی شما برای انجام اولین پروژه ی الکترونیکی زندگی ام (!) نیاز دارم .

    شرح پروژه :
    یک کی برد 4*4 و یک LED و یک LCD . که به ازای هر کلید LED روشن و خاموش شده و حرفی خاص بر روی LCD نمایش داده شود .
    شبیه سازی با برنامه CodeVisionAVR

    کمکی که از شما می خواهم این است که چه قطعاتی را باید تهیه کنم و دیتاشیت LCD و کی بورد را می خواهم .


    ممنون !

    خوش باشید ...

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

    سلام آقا اینگیلیسیت ما رو کشته :eek:
    خوش اومدی
    خب دیگه جدی بشیم بریم سراغ کار شما
    اول کیبرد : باید بدونی که کیبوردی که می خوای باهاش کار کنی رو بهش می گن کیبرد 4*4 ماتریسی . چرا ماتریسی چون 16 تا میکرو سوئیچه که به صورت ماتریسی به اصطلاح اسکن می شن و مشخص میشه که مثلا وقتی یک دکمه رو فشار می دید در کدوم سطر و در کدوم ستون قرار داره درست مثل ماتریس. نکته ای که خیلی مهمه وباید بهش توجه کنی اینه که باید سطرات رو pull up کنی البته با مقاومت و خروجی هات رو هم out put و صفر البته بازم بگم که مقاومت هارو فراموش نکن .
    دوم ال سی دی : خب یه ذره این داستان داره اینی که میخوای باهاش کار کنی رو بهش می گن ال سی دی کاراکتری که با معرفه ی سطر در ستونش شناخته می شه مثلا میگن 16*2 . اینی که مثال زدم 16 تا پایه داره
    1- GND
    2- VCC
    3-GND البته با یه پتانسیومتر
    4- پایه ی اول پورت دلخواهت تو میکرو
    5- پایه ی دوم
    6- پایه ی سوم
    بقیه رو بی خیال تا پایه ی
    11- که به پایه ی پنجم پورتت وصل میشه . دقت کن که پایه ی چهار خالیه .
    12-پایه ی ششم پورتت
    13- پایه ی هفتم پورتت
    14- پایه ی هشتم پورتت
    15- VCC برای بک لایت یا نور زمینه ی ال سی دیت
    16- GND برای زمین بک لاتت
    توضیح این که برای بعضی مدل ها جای این دو تا عوض می شه اما اکثرا همینه نگران نباش .
    نکته ی مهم اگه پایه ها رو جابجا بزنی ال سی دیت راحت می سوزه( 3400 میره هوا ) مخصوصا چندتای اول .
    سوم LED :که دیگه نقل هر مداره
    چهارم پتانسیومتر 10k .
    همین دیگه برنامشم با خودت تا جدی باشه .
    موفق باشی
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


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

      با سلام

      خیلی خیلی ممنون !

      راستش من رشته ام الکترونیک نیست ( سخت افزار کامپیوتر ) برای همین شاید پایه ی الکترونیکم مثل شما خیلی قوی نباشد. ( شاکی نشید که زیاد سوال می کنم ! )

      چند تا سوال از پست شما .
      همه چیز واضح بود اما نقش پتاسیومتر رو نفهمیدم ؟

      ضمنا چرا باید پایه 4 پورت خالی باشه !؟

      بازم تشکر از راهنماییتون !

      خوش باشید ...

      دیدگاه


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

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

        پتانسیومتر برای تنظیم نور پیکسل های LCD استفاده میشه. با اون میشه حروف و نوشته ها رو پر رنگ یا کم رنگ کرد.
        دو روش برای فرمان به LCD هست . باس هشت بیته و فرمان به صورت 4 بیتی. برای برنامه نویسی با C فکر می کنم 4 بیتی به صورت عادی مجاز باشه.
        با بیسکام میشه 4 بیت و 8 بیت رو راه اندازی کنی.

        یه تجربه عملی به من ثابت کرده تو مکان های نویزی( جایی که من امتحان می کردم برق 380 ولت با سوئیچ زنی بالا وجود داشت) استفاده از باس 8 بیتی خیلی کمتر رو LCD نویز میندازه.

        دیدگاه


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

          سلام
          میگم چطوره اولین پروژت یک چشمک زن دو لامپی با avrباشه
          میدونی چرا گفتم چون من اولین مدارم که با ترنزیستور بستم چشمک زن دو لامپی بود :wow:
          و از روی علاقه اولین مدار avr ی من چشمک زن تک ال ای دی ای بود :nerd:
          موفق باشی :agree: :nice:
          امید وارم ناراحت نشی دوست عزیز
          انجام پروژه هاي برنامه نويسي اندرويد
          [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
          http://cafebazaar.ir/app/?id=com.atxdroid

          دیدگاه


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

            من پیشنهاد میکنم اول یه پروژه lcd ببند بعد دوباره یه پروژه با کیبورد و بعد یکی هم با led و در آخر وقتی فهمیدی و یاد گرفتی این سه تارو مچ کن تو هم. :agree:
            www.icesi.ir

            دیدگاه


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

              نوشته اصلی توسط میلاد موسوی
              من پیشنهاد میکنم اول یه پروژه lcd ببند بعد دوباره یه پروژه با کیبورد و بعد یکی هم با led و در آخر وقتی فهمیدی و یاد گرفتی این سه تارو مچ کن تو هم. :agree:
              من به پیشنهاد شما عمل کردم و چند پروژه با LED و LCD بستم فقط مونده keyBoard .

              تو این کیبردی که من تهیه کردم 4 تا پین واسه سطر هست و 4 تا هم واسه ستون ، نحوه آدرس دهی اینا تو برنامه چطوریه !؟
              ضمن اینکه این قسمت حرفهای جناب " حسام الدین " رو درست نفهمیدم .
              اگه ممکنه میشه توضیح بدین که با مقاومت باید Pull Up کنی یعنی چی ؟! ( مقدار مقاومت و ... )

              مرسی از لطفتون.

              دیدگاه


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

                نوشته اصلی توسط میلاد موسوی
                من پیشنهاد میکنم اول یه پروژه lcd ببند بعد دوباره یه پروژه با کیبورد و بعد یکی هم با led و در آخر وقتی فهمیدی و یاد گرفتی این سه تارو مچ کن تو هم. :agree:
                من به پیشنهاد شما عمل کردم و چند پروژه با LED و LCD بستم فقط مونده keyBoard .

                تو این کیبردی که من تهیه کردم 4 تا پین واسه سطر هست و 4 تا هم واسه ستون ، نحوه آدرس دهی اینا تو برنامه چطوریه !؟
                ضمن اینکه این قسمت حرفهای جناب " حسام الدین " رو درست نفهمیدم .
                اگه ممکنه میشه توضیح بدین که با مقاومت باید Pull Up کنی یعنی چی ؟! ( مقدار مقاومت و ... )

                مرسی از لطفتون.

                " شرمنده ظاهرا دو بار ارسال کردم " اگه ممکنه یکیشو پاک کنید.

                دیدگاه


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

                  سلام.

                  شرمنده که اگه دیر جواب دادم/

                  ببینید شما 4 تا سطر و 4 تا ستون دارید. و 16 تا هم کلید(کلید ها رو پایه هستند Normal open) که به صورت شکل زیر به هم متصل هستند.



                  واقعیتش من با زبان C کار نکردم و نمیدونم که به چه صورت باید کلید رو بخونی.
                  ولی تو زبان بیسیک شما تمام سطر و ستون ها رو به هم میکرو وصل میکنی و با یک دستور ساده کلید فشرده شده رو آشکار می کنی.

                  فکر کنم اگه توضیح بدم که عملکرد خواندن کیبورد به چه صورته بهتره و شما هم میفهمیکه چقدر ساده هستش.(دیگه هیچ ترسی از کیبورد نداری.)

                  مراحل راه اندازی کیبورد 4*4 ماتریسی:
                  8 تا پایه کیبورد رو میکرو وصل میکنی.
                  در مرحله اول سطر اول را 1 و دیگر سطر ها رو 0 میکنی. و ستون ها رو توسط میکرو میخونیم که چه عددی است.(اگر عدد خوانده شده 0000 بود یعنی هیچ کلیدی فشار داده نشده ولی اگه عدد غیر از این بود یک کلید فشار داده شده برای مثال 0010 بود یعنی کلید دومی از سطر اول فشار داده شده است.)

                  مرحله بعدی سطر اول را 0 و سطر دوم رو 1 میکنیم(سطر 3 و 4 هم 0 هست) و دوباره ستون رو میخونیم. مانند مرحله قبل عمل میکنیم و برای ستون 3 و 4 هم به همین صورت پیش میریم.

                  این تویضیحی در بالا بود باید همیشه در حال تکرار باشه و در واقع همیشه میکرو مشغول خواندن کلید ها هستش.
                  بعضی مواقع پیش میاد که کیبورد یه گوشه ای از یه پروژه هستش و نمیشه کل برنامه رو درگیر خواندن کلید بکنیم، میتونیم ستون ها رو با یک گیت OR به اینتراپت وصل کنیم.

                  ببینید وقتی شما یه کلید رو به میکرو وصل میکنید و قصد خوندن اونو تو برنامه داری اون پایه یا باید 0 باشد یا 1 که بتونیم کلید رو به کار ببریم. که برای این کار 2 راه وجود داره.

                  راه اول اینه که یه سر کلید رو به میکرو و یه سر اونو به زمین مدار وصل کنید.
                  راه دوم یه سر کلید به میکرو و یه سر دیکه به vcc وصل کنیم.

                  ما فرض میکنیم که از راه اول استفاده کردی:
                  تو برنامه وقتی بخواهیم کلید رو تست کنیم میگیم که هر موقع پایه 1 صفر شد به برچسب ...بپر یا فلان کار رو انجام بده.
                  وقتی کلید رو فشار دهیم پایه 1 به زمین شده و از لحاظ سطح منطقی صفر شده .حالا اینجا یه مشکلی پیش میاد که اونم اینه که زمانی که کلید فشرده نیست (زمانی که با کلید کاری نداریم) وضعیت پایه 1 معلوم نیست نه صفره و نه یک (vcc)
                  برای رفع این مشکل یه مقاومت 10 کیلو اهم رو به همان پایه ای از میکرو که کلید وصل شده وصل میکنیم و اون سر مقاومت رو هم به VCC وصل میکنیم.
                  این طوری پایه 1 همیشه یک هست ولی زمانی که کلید فشرده شود پایه 1 صفر میشود.
                  به این میگن مقاومت Pull up یا بالا کشنده
                  www.icesi.ir

                  دیدگاه


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

                    مرسی !

                    توضیحاتتون عالی بود ( با این روش که گفتی تو C عمل می کنم ببینم می تونم یا نه )

                    ضمنا فکر کنم تو این جملتون منظورتون " سطر " با شه نه ستون .
                    اگه عدد غیر از این بود یک کلید فشار داده شده برای مثال 0010 بود یعنی کلید دومی از ستون اول فشار داده شده است
                    درسته !؟

                    دیدگاه


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

                      بله درسته.
                      ممنونم از توجه بالای شما.اصلاح کردمش.

                      ببنید این برنامه یه تست کلیده (البته اگه اشتباه نکنم.چون c بلد نیستم.) شاید به کارت بیاد.



                      #include <mega16.h>
                      #include <delay.h>

                      #define maxkeys 16

                      unsigned char key, butnum;

                      //key pad scan table
                      flash unsigned char keytbl[16]={0xee, 0xed, 0xeb, 0xe7, 0xde, 0xdd, 0xdb, 0xd7, 0xbe, 0xbd, 0xbb, 0xb7, 0x7e, 0x7d, 0x7b, 0x77};

                      void main(void)
                      {
                      //Init port B to show keyboard result
                      DDRB = 0xff;
                      PORTB = 0xff;

                      //endless loop to read keyboard
                      while(1)
                      {
                      //get lower nibble
                      DDRC = 0x0f;
                      PORTC = 0xf0;
                      delay_us(5);
                      key = PINC;

                      //get upper nibble
                      DDRC = 0xf0;
                      PORTC = 0x0f;
                      delay_us(5);
                      key = key | PINC;

                      //find matching keycode in keytbl
                      if (key != 0xff)
                      {
                      for (butnum=0; butnum<maxkeys; butnum++)
                      {
                      if (keytbl[butnum]==key) break;
                      }
                      if (butnum==maxkeys) butnum=0;
                      else butnum++; //to make range 1-16
                      }
                      else butnum=0;

                      PORTB = ~ butnum ;

                      } // end while
                      } //end main
                      www.icesi.ir

                      دیدگاه


                        #12
                        پاسخ : کمک در مورد اولین پروژه میکرو !

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

                        آموزش کار با lcd توسط bascomAVR

                        لینک دانلود: :nerd:

                        http://dlc.eca.ir/index.php?act=view&id=106
                        انجام پروژه هاي برنامه نويسي اندرويد
                        [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                        http://cafebazaar.ir/app/?id=com.atxdroid

                        دیدگاه

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