📌 پین اوت رزبری پای پیکو: نقشه‌ی کامل ۴۰ پایه، GP، ADC، I2C، SPI، UART و تغذیه

✍️ تیم ووکوی فارسی ·

اولین چیزی که موقع کار با هر بردی لازم داری، نقشه‌ی پایه‌هایش است. در این مقاله پین اوت رزبری پای پیکو (Raspberry Pi Pico Pinout) را کامل و به زبان ساده مرور می‌کنیم: کدام پایه GPIO است، کدام زمین و تغذیه، ورودی آنالوگ کجاست، I2C و SPI و UART روی کدام پایه‌ها می‌نشینند و چرا هیچ‌وقت نباید ۵ ولت به این برد بدهی. یک جدول کامل ۴۰ پایه هم داریم که می‌توانی کنار دستت نگه داری.

دو نوع شماره: فیزیکی و GP

مهم‌ترین نکته‌ی این صفحه همین است. هر پایه‌ی پیکو دو شماره دارد:

بیشتر اشکال‌های «LED من روشن نمی‌شود» در پروژه‌های پیکو از قاطی کردن این دو شماره می‌آید.

جدول کامل ۴۰ پایه

جدول مثل خود برد چیده شده: هر سطر یک پایه‌ی سمت چپ و پایه‌ی روبه‌رویش در سمت راست را نشان می‌دهد (USB بالا).

فیزیکیسمت چپفیزیکیسمت راست
1GP0 · UART0 TX · I2C0 SDA · SPI0 RX40VBUS (۵ ولت USB)
2GP1 · UART0 RX · I2C0 SCL · SPI0 CSn39VSYS (ورودی تغذیه ۱٫۸ تا ۵٫۵ ولت)
3GND38GND
4GP2 · I2C1 SDA · SPI0 SCK373V3_EN
5GP3 · I2C1 SCL · SPI0 TX363V3(OUT)
6GP4 · UART1 TX · I2C0 SDA · SPI0 RX35ADC_VREF
7GP5 · UART1 RX · I2C0 SCL · SPI0 CSn34GP28 · ADC2
8GND33AGND (زمین آنالوگ)
9GP6 · I2C1 SDA · SPI0 SCK32GP27 · ADC1 · I2C1 SCL
10GP7 · I2C1 SCL · SPI0 TX31GP26 · ADC0 · I2C1 SDA
11GP8 · UART1 TX · I2C0 SDA · SPI1 RX30RUN (ریست)
12GP9 · UART1 RX · I2C0 SCL · SPI1 CSn29GP22
13GND28GND
14GP10 · I2C1 SDA · SPI1 SCK27GP21 · I2C0 SCL
15GP11 · I2C1 SCL · SPI1 TX26GP20 · I2C0 SDA
16GP12 · UART0 TX · I2C0 SDA · SPI1 RX25GP19 · I2C1 SCL · SPI0 TX
17GP13 · UART0 RX · I2C0 SCL · SPI1 CSn24GP18 · I2C1 SDA · SPI0 SCK
18GND23GND
19GP14 · I2C1 SDA · SPI1 SCK22GP17 · UART0 RX · I2C0 SCL · SPI0 CSn
20GP15 · I2C1 SCL · SPI1 TX21GP16 · UART0 TX · I2C0 SDA · SPI0 RX

یک الگوی ساده کمک می‌کند جدول را حفظ نکنی: زمین‌ها هر پنج پایه یک بار تکرار می‌شوند (۳، ۸، ۱۳، ۱۸ و روبه‌رویشان ۲۳، ۲۸، ۳۳، ۳۸). پس اگر GND لازم داری، همیشه یکی نزدیک دستت هست.

پایه‌های GPIO و پایه‌های پنهان

۲۶ پایه‌ی همه‌کاره (GPIO) روی لبه‌ی برد هست: GP0 تا GP22 و GP26 تا GP28. هر کدام می‌تواند ورودی یا خروجی دیجیتال باشد، مقاومت بالاکش یا پایین‌کش داخلی دارد، وقفه می‌گیرد و PWM می‌دهد. چهار GP دیگر داخل برد مصرف شده‌اند:

پایه‌های تغذیه

پایهکارشنکته
VBUS (40)۵ ولت مستقیم از USBفقط وقتی USB وصل است برق دارد؛ جای خوبی برای تغذیه‌ی سروو کوچک، نئوپیکسل و ماژول‌های ۵ ولتی.
VSYS (39)ورودی اصلی تغذیه۱٫۸ تا ۵٫۵ ولت؛ مثلاً سه باتری قلمی یا یک باتری لیتیومی. با یک دیود از VBUS جدا شده.
3V3(OUT) (36)خروجی ۳٫۳ ولت رگولاتور بردبرای سنسورها و نمایشگرها. بهتر است کل مصرف را زیر حدود ۳۰۰ میلی‌آمپر نگه داری. موتور و سروو هرگز.
3V3_EN (37)روشن/خاموش کردن رگولاتوراگر به GND وصلش کنی، کل برد خاموش می‌شود.
RUN (30)ریستیک دکمه بین RUN و GND بگذار تا دکمه‌ی ریست داشته باشی؛ خود پیکو دکمه‌ی ریست ندارد.
ADC_VREF (35) و AGND (33)مرجع و زمین آنالوگبرای سنسورهای آنالوگ دقیق، زمین سنسور را به AGND بزن.

ورودی‌های آنالوگ (ADC)

پیکو سه ورودی آنالوگ بیرونی دارد: GP26 (ADC0)، GP27 (ADC1) و GP28 (ADC2). مبدل داخلی ۱۲ بیتی است و میکروپایتون عددش را به بازه‌ی ۰ تا ۶۵۵۳۵ می‌برد. بیشینه‌ی ولتاژ ورودی ۳٫۳ ولت است. کانال پنجم (ADC4) سنسور دمای داخل تراشه است. جزئیات و کد کامل در ADC پیکو با میکروپایتون آمده.

I2C، SPI و UART: کدام پایه‌ها با هم جورند؟

پیکو برای هر رابط دو نسخه دارد (شماره‌ی ۰ و ۱) و هر کدام را می‌شود روی چند جفت پایه نشاند. قانون طلایی: شماره‌ی رابط در کد باید با پایه‌ها جور باشد. مثلاً GP4 و GP5 مال I2C(0) هستند؛ اگر بنویسی I2C(1, sda=Pin(4), scl=Pin(5))، خطای ValueError: bad SDA pin می‌گیری.

رابطپایه‌های رایجکاربرد
I2C0SDA=GP4، SCL=GP5 (یا GP0/GP1، GP8/GP9، GP16/GP17، GP20/GP21)OLED، LCD I2C، ساعت DS3231
I2C1SDA=GP2، SCL=GP3 (یا GP6/GP7، GP14/GP15، GP18/GP19، GP26/GP27)باس دوم برای دستگاه‌های بیشتر
SPI0SCK=GP18، TX(MOSI)=GP19، RX(MISO)=GP16، CS=GP17کارت SD، نمایشگرهای رنگی
SPI1SCK=GP10، TX=GP11، RX=GP12، CS=GP13دستگاه SPI دوم
UART0TX=GP0، RX=GP1 (یا GP12/GP13، GP16/GP17)ارتباط سریال با برد دیگر
UART1TX=GP4، RX=GP5 (یا GP8/GP9)بلوتوث HC-05، GPS

برای مثال، نمایشگر OLED و LCD با رابط I2C معمولاً روی GP4 و GP5 می‌نشینند و ماژول بلوتوث HC-05 روی UART1.

PWM روی همه‌ی پایه‌ها

هر GPIO پیکو می‌تواند PWM بدهد. سخت‌افزار PWM هشت «برش» (slice) دارد و هر برش دو کانال A و B؛ یعنی ۱۶ خروجی مستقل. دو پایه‌ی کنار هم (مثل GP14 و GP15) یک برش را شریک‌اند و فرکانس یکسان دارند، هرچند دیوتی‌شان جداست. GP0 و GP16 دقیقاً یک کانال‌اند و خروجی یکسان می‌دهند. در آموزش PWM با میکروپایتون این را عملی می‌بینی.

قانون ۳٫۳ ولت و جریان پایه‌ها

یک برنامه برای امتحان چند پایه

این کد میکروپایتون سه LED را روی GP15، GP14 و GP13 پشت سر هم روشن می‌کند، یک پتانسیومتر را روی GP26 می‌خواند، باس I2C0 را جست‌وجو می‌کند و در آخر LED روی برد را چشمک می‌زند:

from machine import Pin, ADC, I2C
import time

# 1) Three LEDs (each with a 220 ohm resistor) on GP15, GP14, GP13
leds = [Pin(n, Pin.OUT) for n in (15, 14, 13)]
for led in leds:
    led.on()
    time.sleep(0.3)
    led.off()

# 2) Analog input: GP26 = ADC0 (physical pin 31)
knob = ADC(26)
print("ADC0 raw:", knob.read_u16())

# 3) I2C0 on GP4 (SDA, pin 6) and GP5 (SCL, pin 7)
i2c = I2C(0, sda=Pin(4), scl=Pin(5), freq=400000)
print("I2C devices:", [hex(a) for a in i2c.scan()])

# 4) The on-board LED (works on Pico and Pico W)
onboard = Pin("LED", Pin.OUT)
while True:
    onboard.toggle()
    time.sleep(0.5)

اگر یک OLED روی I2C وصل باشد، خروجی خط سوم ['0x3c'] است و برای LCD I2C معمولاً ['0x27']. اگر لیست خالی بود، SDA و SCL را چک کن.

اشکال‌های رایج

امتحان در شبیه‌ساز

در شبیه‌ساز تینکرکد فارسی می‌توانی یک رزبری پای پیکو مجازی برداری و سیم‌کشی را با همین جدول، بدون ترس از سوختن برد، تمرین کنی. مثال آماده‌ی UART و بلوتوث HC-05 با MicroPython هم نشان می‌دهد UART1 چطور به کار می‌رود. پیکو و میکروپایتون جزو اشتراک پلاس هستند؛ مثال‌ها برای خواندن رایگان باز می‌شوند و برای اجرا پلاس لازم است. اگر پیکو را با زبان آردوینو برنامه‌نویسی می‌کنی، در آن‌جا A0 تا A2 همان GP26 تا GP28 است؛ راهنمایش در برنامه‌نویسی پیکو با زبان آردوینو است. برای مقایسه با برد دیگر هم پین اوت ESP32 را ببین، و برای کلیات برد صفحه‌ی رزبری پای پیکو را.

پیکو را در شبیه‌ساز ببین 📌

سؤال‌های رایج

رزبری پای پیکو چند پایه‌ی GPIO دارد؟

۲۶ پایه‌ی GPIO روی لبه‌ی برد در دسترس است: GP0 تا GP22 و GP26 تا GP28. سه پایه‌ی GP26، GP27 و GP28 ورودی آنالوگ (ADC) هم هستند. GP23، GP24، GP25 و GP29 داخل برد به کارهای دیگری مثل LED و اندازه‌گیری ولتاژ وصل‌اند.

آیا پایه‌های پیکو ۵ ولت را تحمل می‌کنند؟

نه. پایه‌های رزبری پای پیکو ۳٫۳ ولتی‌اند و ۵ ولت می‌تواند به تراشه آسیب بزند. خروجی ماژول‌های ۵ ولتی مثل Echo سنسور HC-SR04 را با تقسیم ولتاژ یا مبدل سطح به پیکو وصل کن.

فرق VBUS و VSYS و 3V3 چیست؟

VBUS همان ۵ ولت کابل USB است. VSYS ورودی اصلی تغذیه‌ی برد است و از ۱٫۸ تا ۵٫۵ ولت قبول می‌کند، مثلاً از باتری. 3V3(OUT) خروجی رگولاتور برد است و برای سنسورهای کم‌مصرف ۳٫۳ ولتی مناسب است، نه برای موتور یا سروو.

در کد پایه را با چه شماره‌ای صدا بزنم؟

با شماره‌ی GP. در میکروپایتون Pin(15) یعنی GP15 که پایه‌ی فیزیکی ۲۰ است. شماره‌ی فیزیکی فقط برای پیدا کردن سوراخ روی برد است.

مقاله‌های مرتبط

🌗

PWM با میکروپایتون روی رزبری پای پیکو: LED نفس‌کش با duty_u16 و freq

🎛️

ADC رزبری پای پیکو با میکروپایتون: خواندن پتانسیومتر با read_u16 و تبدیل به ولتاژ

🦾

سروو موتور با میکروپایتون روی رزبری پای پیکو: PWM پنجاه هرتز و کنترل زاویه

🦇

فاصله‌سنج اولتراسونیک HC-SR04 با آردوینو

همه‌ی آموزش‌های رزبری پای پیکو و میکروپایتون ← · همه‌ی مقاله‌ها