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

موضوع: Pwm

  1. #1
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض Pwm

    سلام
    میخواستم بدونم چطور میشه با میکرو برنامه ای نوشت که با یه پتانسیومتر و حالت ولوم میزان PWM خروجی را تغییر داد ...یعنی میزان dutycycle با تغییر وضعیت سر پتانسیومتر از یه میزان خیلی کم شروع به زیاد شدن بکنه؟
    نمیخوام پله ای و مرحله ای زیاد بشه چون باید حرکت موتور تو دستگاه روان باشه و به ارومی سرعتش کم و یا زیاد بشه

    و یک سوال دیگه درایوری مثل L298 وجود داره که تا 3 امپر بدون داغ شدن به موتور جریان بده؟

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

  3. #2
    کاربر فعال naatamam آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    حسن معماری
    نوشته ها
    283
    تشکر
    287
    تشکر شده 877 بار در 286 پست

    پیش فرض

    نقل قول نوشته اصلی توسط nima_elc نمایش پست ها
    سلام
    میخواستم بدونم چطور میشه با میکرو برنامه ای نوشت که با یه پتانسیومتر و حالت ولوم میزان PWM خروجی را تغییر داد ...یعنی میزان dutycycle با تغییر وضعیت سر پتانسیومتر از یه میزان خیلی کم شروع به زیاد شدن بکنه؟
    نمیخوام پله ای و مرحله ای زیاد بشه چون باید حرکت موتور تو دستگاه روان باشه و به ارومی سرعتش کم و یا زیاد بشه
    سلام
    سر وسط ولوم را به یکی از کانال های adc وصل کن.
    مقدار ولتاژ را از طریق ADC بخوان و با توجه عددی که از ADC بدست میاید مقدار عددی PWM را کم یا زیاد کن.

  4. کاربران : 3 تشکر کرده اند از شما naatamam برای ارسال این پست سودمند:


  5. #3
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض

    خب میدونم دوست عزیز ولی من با ADC میکرو زیاد کار نکردم و نمیدونم چطور مقدار بدم که PWM خروجی بده و dutycycle مقدارش با مقدار ولتاژ خوانده شده به ارومی افزایش پیدا کنه
    اگه ممکنه یه مثال از برنامش بزارید ممنون میشم و البته c باشه نه بیسیک چون من کارم با C هست

  6. #4
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    نقل قول نوشته اصلی توسط nima_elc نمایش پست ها
    سلام
    میخواستم بدونم چطور میشه با میکرو برنامه ای نوشت که با یه پتانسیومتر و حالت ولوم میزان PWM خروجی را تغییر داد ...یعنی میزان dutycycle با تغییر وضعیت سر پتانسیومتر از یه میزان خیلی کم شروع به زیاد شدن بکنه؟
    نمیخوام پله ای و مرحله ای زیاد بشه چون باید حرکت موتور تو دستگاه روان باشه و به ارومی سرعتش کم و یا زیاد بشه

    و یک سوال دیگه درایوری مثل L298 وجود داره که تا 3 امپر بدون داغ شدن به موتور جریان بده؟
    اول در مورد درایور بگم که میتونی از L6203 استفاده کنید که جوابگوی کار شما هست و البته قیمتش در حدود دو برابر l298 یعنی 5000 تومنه
    در مورد سوالت در مورد PWM باید بگم که بعد از ساختن موج PWM توسط مثلا تایمر 0 میتونی مقدار
    OCR0 را برابر مقدار دریافت شده از adc با یه ضریب مشخص
    (OCR0 مقدارش از 0 تا 255 تغییر تغییر میکنه ) و با توجه به اون دیوتی سایکل رو تغییر بدهی
    موفق باشید.

  7. کاربران : 3 تشکر کرده اند از شما Ma3ood برای ارسال این پست سودمند:


  8. #5
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض

    ممنون بابت راهنماییتون خیلی مفید بود
    من 3 تا مقدر PWM باید از میکرو بگیرم که به صورت انالوگ dutycycle هاشون را بشه تغییر داد
    و بنظرتون تو عمل میشه با اعمال یک سیگنال درایور را کنترل کرد؟؟ سیگنال را به 2 کلید بدیم و هرکدوم از کلید ها به یکی از وریودی های درایور وصل باشه؟و در حالت ترمز اگه 2 کلید با هم وصل باشن قدرت ترمز برای موتور را دارند؟
    و یک سوال در مورد درایوری که گفتید....این درایور یک خروجی موتور داره؟؟

  9. #6
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    درود مجدد
    دوست عزیز اول در مورد درایور موتور بگم که این درایور نسل جدید همون l298 و دارای 2 خروجی بهتر بگم میشه دو موتور را باهاش کنترل کرد با تحمل جریان بیشتر و میتونه موتور ها رو تا ولتاژ 52 ولت راه اندازی کنه
    ببینید شما چند تا موتور دارید ؟
    با موتور ها دقیق میخواهید چیکار کنید فقط کنترل سرعت ؟
    تا اونجایی که من میدونم با یه سیگنال موتور رو کنترل میکنن نه چند تا (دلیلتون برای این کار چیه) ؟
    لطفا جواب این سوالها رو دقیق بدین تا من و دوستان که تجربه عملی توی این کار دارند کمک کنند

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


  11. #7
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض

    3 تا موتور گیریبکس حدودا 4 آمپری هستن
    از سرعت خیلی کم میخوایم تا قدرت سرعت حداکثر موتور
    خب موتورها باید ترمز داشته باشند
    با l298 وقتی به 2 پایه ورودی موتور سیگنال بدید موتور حالت ترمز داره و فورا از حرکت می ایسته و با فشار روی شافت موتور موتور نمی چرخه

  12. #8
    کاربر فعال M_GH آواتار ها
    تاریخ عضویت
    Mar 2012
    نام
    م. غیور
    نوشته ها
    314
    تشکر
    464
    تشکر شده 367 بار در 177 پست

    پیش فرض

    برای pwm باید بهتون بگم غیر از راه adc یک راه دیگه هم هست که یه جورایی نقش میکرو توش کمتر هست
    و با پتانسیومتر کنترل میشه در ضمن شما هرچند تا pwm هم بخوای میتونی ازش بگیری

    (
    Fast PWM
    میتونه یک موج مثلثی درست کنه که با پتانسیومتر و آپ امپ میشه اونو به PWM
    تبدیل کرد که اساس کار PWM هم همینه
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Pwm.png
مشاهده: 17
حجم: 2.3 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: pwm_wave_timer.gif
مشاهده: 30
حجم: 10.4 کیلو بایت  

  13. کاربران : 3 تشکر کرده اند از شما M_GH برای ارسال این پست سودمند:


  14. #9
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض

    ممنون ولی کار من با میکرو هست وگرنه راه برای تولید PWM زیاده
    الان دنبال راهی هستم که 3 تا PWM از میکرو بگیرم که با پتانسیومتر بشه از سرعت خیلی پایین و بتدریج مقدار dutycycle هرکدوم را تغییر داد
    مثلا با هر 20 میلی ولت افزایش ورودی dutycycle مقدارش 1درصد اضافه بشه تا 255همینطور

  15. #10
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    راه پیشنهادی من اینکه مثلا
    شما اول بیایی از تمامی تایمر ها 0و1و2 در مد PWM از میکرو مگا 32 رو تک تک راه اندازی کنی و جواب بگیری و بعد از اون هر سه را فعال کنید و ببنید حالا چطور کار میکنه (از دوستان جواب بده ایا میشه از تمامی تایمر ها همزمان در مد PWM استفاده کرد این سوال خودمم هست)
    دلیل این پیشنهادم اینه که کار و قدم به قدم پیش برید و اشکالاتتون رو زود پیدا میکنید وقتی شما از حالتهای بالا جواب گرفتید دیگه خیالی نیست

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


  17. #11
    کاربر فعال
    تاریخ عضویت
    Dec 2011
    نام
    علی حاجی آبادی
    نوشته ها
    240
    تشکر
    46
    تشکر شده 237 بار در 155 پست

    پیش فرض

    سلام.
    اگر درست یادم باشه یکی از تایمر ها رو نمی شد در حالت pwm استفاده کرد.
    نیازی هم به 3 تایمر نیست. تایمر 1 می تونه 2 تا موتور رو همزمان راه اندازی کنه.
    در نهایت اگر میکرو به کار دیگه ای مشغول نیست می شه با استفاده یک تایمر چند تا pwm نرم افزاری تولید کرد.

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


  19. #12
    کاربر دائمی
    تاریخ عضویت
    Jun 2009
    نام
    روح الله خرم بخت
    نوشته ها
    403
    تشکر
    456
    تشکر شده 591 بار در 214 پست

    پیش فرض

    اگه از کد ویژن استفاده میکنی توی کد ویزارد قسمت adc حالت 8 بیت رو تیک بزن اگه هم از کدویژن استفاده نمیکنی با یه تقسیم ساده ی (مقدار خوانده شده از adc تقسیم بر 1023 ضرب در 255 )میتونی کارت رو انجام بدی . فقط حواست باشه از مقدار اخر جزء صحیح بگیر یا این که گردش کن . و در مورد کم کم زیاد شدن سرعت هم یکی از کار هایی که میتونی انجام بدی اینه که بیای مقداری که باید تایمر به اون برسه رو از مقدار حاضر تایمر کم کنی و اونو توی یه متغیری که علامت رو قبول کنه بریزی حالا بیا مقایسه کن ببین اگه مقدار منفی شده رجوع بده به یه حلقه ایی که میاد طی هر n بار چک کردن مراحل قبل ا بار به تایمر یک رو اضافه میکنه و اگر مقدار مثبت شد دقیقا کاری رو که گفتم بکن ولی این دفع به جای یه واحد اضافه کردن یه واحد کم کن . این کم یا زیاد کردن نا زمانی ادامه پیدا که تفاضل ذکر شده مخالف صفره پس یه if بزار تو حلقه تا زمانی که این مقدار صفر میشه دیگه حلقه ادامه پیدا نکنه و توی if گیر کنه (البته تو حلقه ی if یه دستور بزار تا شرص if رو رفرش کنه یعنی ببینه که آیا مقدار هنوز صفره یا نه و به محضی که مخالف صفر شد ارجاع بده به مراحل قبل تا تغییرات روی خروجی اعمال بشه ) . در ضمن با کم و زیاد کردن تعداد n میتونی سرعت تغییر روی خروجی رو کم و زیاد کنی .
    ویرایش توسط roohlla : 08-04-2012 در ساعت 23:03

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


  21. #13
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض

    من برنامه را راه انداختم و تونستم یه PWM متغیر با پتانسیومرت از OCR0 سیگنال گرفتم ولی وقتی خواستم از ازOC1A ---OC1B---OC2 استفاده کنم که تو timer تعریف میشدن کد را نرم افزار نمیشناخت
    کسی از دوستان میتونه کمک کنه؟؟
    من باید 3 تا PWM متغیر با پتانسیومتر از میکرو بگیرم
    در مورد اون روش یه برنامه نمونه ندارید من درست متوجه نشدم

  22. #14
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    خوب دوست عزیز ocr0 و oc1a , oca1b
    میشه سه تا دیگه به oc2 احتیاجی ندارین
    در مورد راه اندازی تایمر یک به عنوان نمونه اینطوری تنظیم کنی و با تغییر OC1A OC1B مقدار pwm تغییر کنه
    مثل همون تایمر صفر تقریبا
    امیدوارم به کارتون بیاد
    کد:
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: 125.000 kHz
    // Mode: Ph. correct PWM top=00FFh
    // OC1A output: Non-Inv.
    // OC1B output: Non-Inv.
    // Noise Canceler: On
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0xA1;
    TCCR1B=0x83;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

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


  24. #15
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض

    ممنونم ولی تونستم تنظیمشون کنم بصورت ثابت ولی تو برنامه نتونستم بنویسم که قابلیت تغییر dutycycle داشته باشه

  25. #16
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    خوب برنامه تون رو بگذارید شاید بتونیم با هم دیگه حلش کنیم!
    دقیق یادم نیست مثلا تو برنامه این جوری نوشته میشه
    کد:
      OCR1AL=y;
     OCR1BL=y;
    یا
    کد:
    OCR1A=y;
       OCR1B=y;
    ویرایش توسط Ma3ood : 10-04-2012 در ساعت 00:52

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


  27. #17
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض

    این برنامه کنترل OCR با پتانسیومتره که نوشتم
    کد:
    #include <mega16.h>
    
    
    void main(void)
    {
    
    PORTA=0x00;
    DDRA=0x00;
    PORTB=0x00;
    DDRB=0x00; 
    PORTC=0x00;
    DDRC=0x00; 
    PORTD=0x00;
    DDRD=0x00;
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    MCUCR=0x00;
    MCUCSR=0x00;
    TIMSK=0x00;
    UCSRB=0x00;
    ACSR=0x80;
    SFIOR=0x00;
    ADCSRA=0x00;
    SPCR=0x00;

  28. #18
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    نقل قول نوشته اصلی توسط nima_elc نمایش پست ها
    این برنامه کنترل ocr با پتانسیومتره که نوشتم
    کد:
    #include <mega16.h>
    
    
    void main(void)
    {
    
    porta=0x00;
    ddra=0x00;
    portb=0x00;
    ddrb=0x00; 
    portc=0x00;
    ddrc=0x00; 
    portd=0x00;
    ddrd=0x00;
    tccr0=0x00;
    tcnt0=0x00;
    ocr0=0x00;
    tccr1a=0x00;
    tccr1b=0x00;
    tcnt1h=0x00;
    tcnt1l=0x00;
    icr1h=0x00;
    icr1l=0x00;
    ocr1ah=0x00;
    ocr1al=0x00;
    ocr1bh=0x00;
    ocr1bl=0x00;
    assr=0x00;
    tccr2=0x00;
    tcnt2=0x00;
    ocr2=0x00;
    mcucr=0x00;
    mcucsr=0x00;
    timsk=0x00;
    ucsrb=0x00;
    acsr=0x80;
    sfior=0x00;
    adcsra=0x00;
    spcr=0x00;
    دوست عزیز این که اولا کامل نیست و بعدشم تا اینجای برنامه که چیزی به عنوان فعال سازی تایمر نمی بینم همه رجیستر هاتون صفر هستش

    تایمر صفر رو اول شما به این صورت راهش بنداز
    کد:
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: 125.000 kHz
    // Mode: Fast PWM top=FFh
    // OC0 output: Non-Inverted PWM
    TCCR0=0x6A;
    TCNT0=0x00;
    OCR0=0x00;
    ADC را هم فعال کن همون طور که در تاپیک قبلی بحث کردیم
    ویرایش توسط Ma3ood : 10-04-2012 در ساعت 13:31

  29. #19
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض

    من خط توظیحاتش را بداشتم وگرنه این اصل برنامست
    کد:
     #include <mega16.h>
    
    #include <delay.h>
    
    #include <stdio.h>
    // Alphanumeric LCD Module functions
    #include <alcd.h>
    
    #define ADC_VREF_TYPE 0x60
    
    // Read the 8 most significant bits
    // of the AD conversion result
    unsigned char read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    // Delay needed for the stabilization of the ADC input voltage
    delay_us(10);
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCH;
    }
    
    // Declare your global variables here
    
    void main(void)
    {
    unsigned char a,sorat;
    char str [16];
    // Declare your local variables here
    
    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTA=0x00;
    DDRA=0x00;
    
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=0 State2=T State1=T State0=T 
    PORTB=0x00;
    DDRB=0x08;
    
    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTC=0x00;
    DDRC=0x00;
    
    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTD=0x00;
    DDRD=0x00;
    
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: 1000.000 kHz
    // Mode: Fast PWM top=0xFF
    // OC0 output: Non-Inverted PWM
    TCCR0=0x6A;
    TCNT0=0x00;
    OCR0=0x00;
    
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=0xFFFF
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    
    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=0xFF
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;
    
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;
    
    // USART initialization
    // USART disabled
    UCSRB=0x00;
    
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
    
    // ADC initialization
    // ADC Clock frequency: 1000.000 kHz
    // ADC Voltage Reference: AVCC pin
    // ADC Auto Trigger Source: Free Running
    // Only the 8 most significant bits of
    // the AD conversion result are used
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0xA3;
    SFIOR&=0x1F;
    
    // SPI initialization
    // SPI disabled
    SPCR=0x00;
    
    // TWI initialization
    // TWI disabled
    TWCR=0x00;
    
    // Alphanumeric LCD initialization
    // Connections specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTC Bit 0
    // RD - PORTC Bit 1
    // EN - PORTC Bit 2
    // D4 - PORTC Bit 4
    // D5 - PORTC Bit 5
    // D6 - PORTC Bit 6
    // D7 - PORTC Bit 7
    // Characters/line: 16
    lcd_init(16);
    
    while (1)
          {      
                OCR0=read_adc(0); 
                a=read_adc(0);
                sorat=(a*.39);
                lcd_clear();
                sprintf(str,"sorat=%u",sorat);
                lcd_puts(str);
    
          }
    }

  30. #20
    کاربر فعال nima_elc آواتار ها
    تاریخ عضویت
    Sep 2011
    نوشته ها
    380
    تشکر
    648
    تشکر شده 606 بار در 263 پست

    پیش فرض

    من یه lcd هم گذاشتم که سرعت را نشون بده و البته فقط برای نمونه

صفحه 1 از 2 12 آخرینآخرین

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

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