🔘 دکمه و وقفه (IRQ) با میکروپایتون روی رزبری پای پیکو

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

در مقاله‌ی قبل یک LED را با میکروپایتون روی رزبری پای پیکو چشمک زدیم. حالا وقت آن است که برد به دنیای بیرون گوش بدهد. در این آموزش یک دکمه را می‌خوانیم، اول به روش ساده و بعد با وقفه (Interrupt یا IRQ)؛ روشی که در پروژه‌های جدی همه از آن استفاده می‌کنند. همه‌ی این‌ها را می‌توانی در یک شبیه‌ساز آنلاین مثل wokwi یا نسخه‌ی فارسی تینکرکد امتحان کنی.

وقفه یعنی چه؟

فرض کن منتظر یک مهمان هستی. یک راه این است که هر ده ثانیه بروی پشت در و نگاه کنی (به این می‌گویند Polling). راه بهتر این است که زنگ در را نصب کنی و هر کار دیگری که دوست داری بکنی؛ هر وقت زنگ زد، می‌روی در را باز می‌کنی. وقفه همان زنگ در است: پردازنده کارش را می‌کند و هر وقت دکمه فشار داده شد، یک تابع کوچک خودبه‌خود اجرا می‌شود.

قطعه‌ها و اتصال‌ها

قطعهپایه
یک سر دکمهGP14 (پایه‌ی فیزیکی ۱۹)
سر دیگر دکمهGND (مثلاً پایه‌ی فیزیکی ۱۸)
LEDLED داخلی، GP25 روی پیکوی اصلی

به مقاومت بیرونی نیاز نداریم، چون از مقاومت Pull-up داخلی پیکو استفاده می‌کنیم.

کد کامل

from machine import Pin
import time

led = Pin(25, Pin.OUT)              # روی Pico W بنویس Pin("LED", Pin.OUT)
button = Pin(14, Pin.IN, Pin.PULL_UP)

count = 0
last_ms = 0

def on_press(pin):
    global count, last_ms
    now = time.ticks_ms()
    if time.ticks_diff(now, last_ms) > 200:   # رفع لرزش دکمه
        count += 1
        led.toggle()
        last_ms = now

button.irq(trigger=Pin.IRQ_FALLING, handler=on_press)

while True:
    print("presses:", count)
    time.sleep(1)

خط‌های مهم را بشناس

قانون طلایی وقفه: تابع وقفه را کوتاه نگه دار. داخلش time.sleep نگذار و کار سنگین مثل چاپ زیاد یا کار با نمایشگر نکن. فقط یک پرچم یا شمارنده را عوض کن و بقیه‌ی کار را به حلقه‌ی اصلی بسپار.

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

پروژه‌ی آماده‌ی دکمه و وقفه با MicroPython روی پیکو در تینکرکد فارسی همین مدار را دارد. با کلیک روی دکمه در شبیه‌ساز، LED عوض می‌شود و عدد در سریال مانیتور بالا می‌رود. پیکو و میکروپایتون در اشتراک پلاس هستند: مثال برای خواندن رایگان است و برای اجرا پلاس لازم داری. اگر می‌خواهی همین مفهوم را رایگان روی آردوینو یاد بگیری، درس وقفه: گوش‌به‌زنگ همیشگی را ببین.

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

اگر هنوز چشمک‌زن را نساخته‌ای، از اولین برنامه‌ی میکروپایتون روی پیکو شروع کن. برای مرور کامل زبان هم صفحه‌ی میکروپایتون و برای خود برد صفحه‌ی رزبری پای پیکو را ببین.

دکمه و وقفه را روی پیکو امتحان کن 🔘

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

🌈

نمایشگر OLED و نئوپیکسل با میکروپایتون روی رزبری پای پیکو

🐍

آموزش میکروپایتون از صفر: متغیر، شرط، حلقه، تابع، لیست و کار با پایه‌های برد

📌

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

🌈

رنگین‌کمان نئوپیکسل با آردوینو و کتابخانه‌ی Adafruit_NeoPixel

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