اطلاعیه

Collapse
No announcement yet.

یه مدار خیلی ساده شمارنده می خوام

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

    یه مدار خیلی ساده شمارنده می خوام

    سلام
    دوستان یه مدار خیلی خیلی ساده می خوام که یه عدد رو با یه کی پد وارد کنم میکرو به مقدار اون عدد یه رله رو در یک دقیقه قطع و وصل کنه.با ال سی دی!
    یعنی مثلا عدد 100 رو بگیره و رله رو 100 بار در دقیقه قطع و وصل کنه.
    ممنون می شم.

    اضافه شده در تاریخ :
    اینو برای ساختن یه Stroboscope می خوام.
    اصلا نمونه ساخته شده Stroboscope تو بازار هست؟

    اضافه شده در تاریخ :
    کسی نیست کمک کنه؟
    اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.

    پارسی را پاس داریم

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

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

    باید خودت دست به کار شی.

    حالا زبونت چیه؟

    یه چیزی،آدم از اون عکسِ آواتارت میترسه. :mrgreen:
    ?Why not

    دیدگاه


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

      عزیز زبانش C باشه بهتره ولی درکل برام نتیجه مهمه.
      برنامه نویسی هم کلا یادم رفته بخدا خیلی وقته کار نکردم.
      می خوام یه پین از یه Atmega 16 به تعداد X بار در دقیقه خاموش و روشن بشه.اون عدد X رو هم بوسیله کی پد وارد می کنم و روی ال سی دی نمایش داده میشه.
      سادس ولی برنامه نویسی یادم رفته.شرمنده

      آواتارم شما دستور بدی کن فیکونش می کنم!
      اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.

      پارسی را پاس داریم

      دیدگاه


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

        برنامه اسکن کی پد 4*4 و اتصالات ال سی دی رو که واضحه:

        #include <mega32.h>
        #include <delay.h>
        #include <lcd.h>
        #include <stdio.h>
        #define c1 PINC.4
        #define c2 PINC.5
        #define c3 PINC.6
        #define c4 PINC.7
        #asm
        .equ __lcd_port=0x1B ;PORTA
        #endasm

        unsigned char scan[4]={0XFE,0XFD,0XFB,0XF7};
        unsigned char arrkey[16]={
        7,8,9,20,
        4,5,6,30,
        1,2,3,40,
        70,0,60,50};
        char key;

        unsigned char keypad(){
        unsigned char r,b;
        while(1){
        for (r=0; r<4; r++){
        b=4;
        PORTC=scan[r];
        if(c1==0) b=0;
        if(c2==0) b=1;
        if(c3==0) b=2;
        if(c4==0) b=3;

        if (!(b==4)){
        key=arrkey[(r*4)+b];
        while(c1==0);
        while(c2==0);
        while(c3==0);
        while(c4==0);
        delay_ms(50);
        return key;
        }
        }
        }
        }

        void main(void){
        char buffer[16];
        lcd_init(16);
        DDRC=0X0F;
        PORTC=0XFF;
        lcd_clear();
        lcd_putsf("Marinasun"
        delay_ms(1000);
        while(1){
        key=keypad();
        lcd_clear();
        sprintf(buffer,"Key %d",key);
        lcd_puts(buffer);
        delay_ms(300);
        و اینکه اگه بخایم یه عدد 4 رقمی بوسیله کی پد وارد ال سی دی بشه و میکرو به تعداد اون عدد در دقیقه ، پین مثلا PD.1 رو خاموش و روشن کنه اینطوره که یه متغیر مثلا A تعریف بشه و مساوی اون عدد 4 رقمی قرار بگیره.بعد A رو به 60 ثانیه تقسیم کنیم و بعد حاصل رو توی PD.1 بریزیم.
        درسته؟
        خب ایناشو می دونم ولی شکل برنامه نویسی رو فراموش کردم.اگه امکانش هست تکمیلش کنید.
        ممنون می شم.

        اضافه شده در تاریخ :
        نوشته اصلی توسط Mehrdad001

        void main(void){
        char buffer[16];
        lcd_init(16);
        DDRC=0X0F;
        PORTC=0XFF;
        lcd_clear();
        lcd_putsf("Marinasun"
        delay_ms(1000);
        while(1){
        key=keypad();
        lcd_clear();
        sprintf(buffer,"Key %d",key);
        lcd_puts(buffer);
        delay_ms(300);
        این تیکه از برنامه هم که باید عوض بشه چون عدد وارد شده باید یک عدد بین 1 تا 9999 باشه و پین PD.1 به سرعت اون عدد در دقیقه روشن و خاموش بشه.

        اضافه شده در تاریخ :
        http://scienceplannet.persiangig.com...ww.picpars.zip
        اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.

        پارسی را پاس داریم

        دیدگاه


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

          دوستان هم وطن ! کسی جواب نمیده؟
          اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.

          پارسی را پاس داریم

          دیدگاه


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

            برای اینکه مقدار نمایش داده شده روی ال سی دی رو توی یه پین بریزم چه دستوری باید بنویسم؟
            اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.

            پارسی را پاس داریم

            دیدگاه


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

              برام مهمه عدد رو بین مثلا 0 تا 1000 بگیره به همون تعداد ، پین رو در یک دقیقه خاموش و روشن کنه.

              1 - ذخیره کردن عدد 4 رقمی روی یه رجیستر از میکرو رو بلد نیستم.
              2 - نمایش همون عدد رو همزمان روی ال سی دی بلد نیستم.
              3 - تعریف اون عدد رو به عنوان فرکانس خاموش و وشن شدن یک پین از میکرو بلد نیستم.
              اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.

              پارسی را پاس داریم

              دیدگاه


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

                نوشته اصلی توسط Mehrdad001
                برام مهمه عدد رو بین مثلا 0 تا 1000 بگیره به همون تعداد ، پین رو در یک دقیقه خاموش و روشن کنه.

                1 - ذخیره کردن عدد 4 رقمی روی یه رجیستر از میکرو رو بلد نیستم.
                2 - نمایش همون عدد رو همزمان روی ال سی دی بلد نیستم.
                3 - تعریف اون عدد رو به عنوان فرکانس خاموش و وشن شدن یک پین از میکرو بلد نیستم.
                پیشنهاد میکنم یه نگاهی به برنامه های نوشته شده برای ماشین حساب بکنید
                عدد رو با بیش از 4 رقم میگیره ، بلافاصله بعد از فشار دادن Keypad روی LCD نمایش میده و توی متغییر مناسبی نگه میداره
                در ادامه برای تولید فرکانس یه تایمر تعریف کنید در حالت مقایسه کننده و اینتراپت تایمر رو هم فعال کنید
                بعد از هر بار رسیدن به مقدار مشخص که اون مقدار برابر 60 ثانیه تقسیم بر تعداد خاموش روشن شدناست ( باید مقدار مقایسه شونده متغییر باشه )
                یه اینتراپت بده و توی اینتراپت مقدار تایمر رو صفر کنید و پایه مورد نظرتون رو Toggle کنید همه چی درست میشه
                به میزان فرکانس ساعت میکرو و تایمر هم دقت کنید
                موفق باشید
                درایور شبکه و nRF24L01
                کاتالوگ محصولات
                کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
                شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
                فروش اسيلوسکوپ GWinstek GOS-630FC

                دیدگاه

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