جستجو برای:
سبد خرید 0
  • خانه
  • وبلاگ
  • کتاب
  • محصولات
    • برنامه نویسی میکروکنترلرها با پایتون
  • تماس با ما
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

داده های شخصی شما برای پشتیبانی از تجربه شما در این وب سایت، برای مدیریت دسترسی به حساب کاربری شما و برای اهداف دیگری که در privacy policy ما شرح داده می شود مورد استفاده قرار می گیرد.

آموزش تکنولوژِی با رهنوتک
  • خانه
  • وبلاگ
  • کتاب
  • محصولات
    • برنامه نویسی میکروکنترلرها با پایتون
  • تماس با ما
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

آموزش تکنولوژِی با رهنوتک > اخبار > میکروکنترلر > RPI pico > راه اندازی PWM رزبری پای پیکو – Raspberry Pi Pico PWM

راه اندازی PWM رزبری پای پیکو – Raspberry Pi Pico PWM

4 مرداد 1403
ارسال شده توسط اساتید رهنوتک
RPI pico

PWM رزبری پای پیکو یک واحد پرکاربرد از این برد است. سیگنال PWM کاربرد گسترده‌ای در الکترونیک دارد و از مدولاسیون‌های مخابراتی گرفته تا درایو موتورها استفاده می‌شود. در این مقاله ابتدا به توضیحات کلی در مورد سیگنال PWM پرداخته‌ایم و در ادامه واحد PWM رزبری پای پیکو را با زبان میکروپایتون راه‌اندازی نموده‌ایم.

PWM چیست

سیگنال PWM (یا Pulse Width Modulation) یک سیگنال دیجیتال (دو سطحی) است که معمولا فرکانس آن ثابت است اما عرض پالس آن (Pulse Width) بر اساس دیتایی که حمل می‌کند تغییر می‌کند. نسبت مدت زمان high بودن سیگنال PWM به کل مدت زمان یک پریود از آن را اصطلاحا DT (یا Duty Cycle) می‌گویند. اگر دوست دارید اطلاعات بیشتری در مورد PWM داشته باشید می‌توانید به مقاله PWM چیست مراجعه کنید.

واحد PWM رزبری پای پیکو

واحد PWM رزبری پای پیکو توسط یک سخت افزار مجزا درون چیپ RP2040 تحقق داده شده است. این واحد دارای 8 کانال مجزا است که هر کانال دو خروجی دارد (مجموعا 16PWM). کانال‌ها از نظر فرکانس و Duty Cycle کاملا مجزا هستند اما دو خروجی یک کانال فرکانس یکسان دارند (و Duty Cycle مستقل). این کانال‌ها روی تمام پایه‌های رزبری پای پیکو به صورت زیر پخش شده‌اند.

rp2040-pwm-channels

توضیحات بیشتر در مورد واحد PWM را می‌توانید در دیتاشیت چیپ RP2040 بیابید.

راه اندازی PWM رزبری پای پیکو

در این بخش می‌خواهیم یک پالس PWM با عرض پالس 25% روی پین GP0 برد Raspberry Pi Pico ایجاد کنیم و نتیجه را روی اسیلوسکوپ ببینیم.

PWM رزبری پای پیکو

ابتدا کلاس‌های Pin و PWM را از ماژول machine میکروپایتون import می‌کنیم. اگر در مورد کلاس Pin و یا import کردن ماژول‌ها در میکروپایتون به اطلاعات بیشتری نیاز دارید می‌توانید به مقاله راه اندازی پایه‌های رزبری پای پیکو مراجعه کنید.

from machine import Pin, PWM

سپس یک نمونه (instance) از کلاس PWM با نام pwm0 می‌سازیم و پین GP0 را به آن نسبت می‌دهیم (این نام دلخواه است).

pwm0 = PWM(Pin(0))

در ادامه فرکانس پالس PWM را روی 1kHz کانفیگ می‌کنیم. متد freq عددی که به عنوان ورودی دریافت کند را به عنوان فرکانس PWM قرار می‌دهد.

pwm0.freq(1000)

و در انتها باید مقدار Duty Cycle را تنظیم کنیم. متد duty_u16 یک عدد 16 بیتی را به عنوان ورودی دریافت کرده و با توجه به آن Duty Cycle را تنظیم می‌کند. عدد 0 به معنی Duty Cycle با مقدار 0% و عدد 65535 به معنی Duty Cycle با مقدار 100% است. باقی اعداد بین این دو به صورت خطی رابطه مستقیم با Duty Cycle دارند. به عبارت دیگر درصد عرض پالس از رابطه زیر مشخص می‌شود که x عدد ارسالی به تابع duty_u16 است.

D = (x/65535) * 100

حال برای آنکه مقدار D به 25% برسد باید عدد 65535/4 را به عنوان ورودی به متد duty_u16 ارسال کنیم. البته ابتدا باید آن را به صورت عدد صحیح درآوریم.

pwm0.duty_u16(int(65535/4))

از آنجا که خود پایتون عملگر تقسیم صحیح دارد (عملگر // ) می‌توان کد را به صورت زیر بازنویسی کرد.

pwm0.duty_u16(65535//4)

برنامه نهایی به صورت زیر خواهد بود.

from machine import Pin, PWM

pwm0 = PWM(Pin(0))
pwm0.freq(1000)
pwm0.duty_u16(65535//4)

اگر با اسیلوسکوپ پایه GP0 برد رزبری پای پیکو را مانیتور کنیم شکل زیر را می‌بینیم

rp2040-pwm-monitoring

در انتها

در انتها از شما دعوت می‌کنیم نظرات خود راجع به این مقاله و همچنین تجربیات ارزشمندتان از کار با PWM رزبری پای پیکو را در بخش نظرات این نوشته با ما و دیگر دوستانتان به اشتراک بگذارید.

قبلی PWM چیست؟
بعدی SPI چیست؟

پست های مرتبط

what is pio

3 دی 1403

PIO چیست؟

اساتید رهنوتک
ادامه مطلب
rpi pico adc pot

1 دی 1403

راه اندازی ADC رزبری پای پیکو – Raspberry Pi Pico ADC

اساتید رهنوتک
ادامه مطلب
rpi-spi

4 مرداد 1403

راه اندازی SPI رزبری پای پیکو – Raspberry Pi Pico SPI

اساتید رهنوتک
ادامه مطلب
rpi_pico_uart

3 مرداد 1403

راه اندازی UART رزبری پای پیکو – Raspberry Pi Pico UART

اساتید رهنوتک
ادامه مطلب
rpi pico gpio

1 مرداد 1403

راه اندازی پایه های رزبری پای پیکو – Raspberry Pi Pico GPIO

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

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • RPI pico
  • پروتکل‌های ارتباطی
  • میکروکنترلر
برچسب‌ها
adc micropython pio raspberrypi pico رزبری پای پیکو میکروپایتون
در باره ما

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

هدف ما از یک سو ایجاد پلی میان دانشجویان با بازار کار و از طرف دیگر ارتقای مهندسین شاغل در حوزه تکنولوژی است.

دسترسی سریع
  • دوره ها
  • اخبار
  • تماس با ما
© 1403 - آموزشگاه آفلاین رهنوتک