Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Raspberry pi pico 2w
90 min
Share

كيفية استخدام ريموت الأشعة تحت الحمراء مع لوحة الراسبيرى باى بيكو

فى هذا الدرس سنتعلم كيفية استخدام مستقبل الأشعة تحت الحمراء مع لوحة راسبيرى باى بيكو 2 دبليو. سنتعلم كيفية قراءة الاشارات المنبعثة من ريموت مرسل للاشعة تحت الحمراء وعرضها على الشاشة,وايضا سنتعلم كيفية التحكم فى اضاءة مصابيح عن طريق الريموت.

Project Video

Overview

Getting the Items

Raspberry Pi Pico 2 wireless
Get Item
Infrared Remote Control Kit
Get Item
LED Kit – (4 colors, 5 pieces each)
Get Item
1/4 Watt Resistor (20 Pack)
Get Item
Full-size Breadboard
Get Item
Jumper Wires - Male to Male (40 Pack)
Get Item

Steps

Wiring it Up

قم بتوصيل الأسلاك بين مرسل ومستقبل الأشعة تحت الحمراء والمصابيح ولوحة راسبيرى باى بيكو 2W كما فى الصورة التى فى الأسفل.

التوصيلات من لوحة راسبيرى باى بيكو 2W :

• منفذ ال VBUS بلوحة راسبيرى باى بيكو  ←المنافذ الموجبة بلوحة التجارب

• منفذ ال GND بلوحة راسبيرى باى بيكو2W  ←المنافذ السالبة بلوحة التجارب

التوصيلات من مستقبل الأشعة تحت الحمراء :

• منفذ الVCC للمستقبل ← المنافذ الموجبة بلوحة التجارب

• منفذ الGND  للمستقبل ← المنافذ السالبة بلوحة التجارب

• منفذ الأشارة للمستقبل  ← منفذ رقم 20 فى لوحة راسبيرى باى بيكو 2W

التوصيلات من المصابيح:

• الطرف الموجب من المصباح الأحمر ← منفذ رقم 19 فى لوحة راسبيرى باى بيكو 2W

• الطرف السالب من المصباح الأحمر ← مقاومة 220 اوم ← المنافذ السالبة بلوحة التجارب

• الطرف الموجب من المصباح الأصفر ← منفذ رقم 17 فى لوحة راسبيرى باى بيكو 2W

• الطرف السالب من المصباح الأصفر ← مقاومة 220 اوم ← المنافذ السالبة بلوحة التجارب

• الطرف الموجب من المصباح الأخضر ← منفذ رقم 18 فى لوحة راسبيرى باى بيكو 2W

• الطرف السالب من المصباح الأخضر ← مقاومة 220 اوم ← المنافذ السالبة بلوحة التجارب

• الطرف الموجب من المصباح الأزرق ← منفذ رقم 16 فى لوحة راسبيرى باى بيكو 2W

• الطرف السالب من المصباح الأزرق ← مقاومة 220 اوم ← المنافذ السالبة بلوحة التجارب

Coding

وظيفة الكود الأول هو عرض قيم شفرات الريموت على الشاشة, بينما وظيفة الكود البرمجى الثانى هو التحكم فى انارة المصابيح عن طريق الضغط على ازرار الريموت.

from machine import Pin, time_pulse_us

import time

ir_pin = Pin(20, Pin.IN)

def read_ir():

   # Wait for the start signal (long LOW)

   if time_pulse_us(ir_pin, 0, 1000000) < 8000:

       return None

   # Wait for HIGH (~4.5 ms)

   if time_pulse_us(ir_pin, 1, 1000000) < 4000:

       return None

   data = 0

   for i in range(32):  # NEC protocol = 32 bits

       # LOW (~560 µs)

       time_pulse_us(ir_pin, 0, 1000000)

       # HIGH (560 µs for 0, 1690 µs for 1)

       t = time_pulse_us(ir_pin, 1, 1000000)

       if t > 1000:

           data |= 1 << i

   return data

print("Ready.. Press any button on the remote.")

while True:

   code = read_ir()

   if code:

       print("Received code:", hex(code))

from machine import Pin, time_pulse_us

import time

# Define LEDs

led_red = Pin(19, Pin.OUT)

led_yellow = Pin(18, Pin.OUT)

led_green = Pin(17, Pin.OUT)

led_blue = Pin(16, Pin.OUT)

# IR sensor pin

ir_pin = Pin(20, Pin.IN)

# Function to read code from remote (NEC protocol)

def read_ir():

   # Wait for the start signal (long LOW)

   if time_pulse_us(ir_pin, 0, 1000000) < 8000:

       return None

   # Wait for HIGH (~4.5 ms)

   if time_pulse_us(ir_pin, 1, 1000000) < 4000:

       return None

   data = 0

   for i in range(32):  # NEC protocol = 32 bits

       # LOW (~560 µs)

       time_pulse_us(ir_pin, 0, 1000000)

       # HIGH (560 µs for 0, 1690 µs for 1)

       t = time_pulse_us(ir_pin, 1, 1000000)

       if t > 1000:

           data |= 1 << i

   return data

# Remote control codes (change them according to your remote after printing)

CODE_RED    = 0xba45ff00

CODE_YELLOW = 0xb946ff00

CODE_GREEN  = 0xb847ff00

CODE_BLUE   = 0xbb44ff00

print("Ready... Press remote buttons")

while True:

   code = read_ir()

   if code:

       print("Received code:", hex(code))

       if code == CODE_RED:

           led_red.value(not led_red.value())   # Toggle Red LED

       elif code == CODE_BLUE:

           led_blue.value(not led_blue.value()) # Toggle Blue LED

       elif code == CODE_GREEN:

           led_green.value(not led_green.value()) # Toggle Green LED

       elif code == CODE_YELLOW:

           led_yellow.value(not led_yellow.value()) # Toggle Yellow LED

Testing it Out

بعد رفع الكود البرمجى الأول ستجد انه يتم عرض قيم شفرات الريموت على الشاشة, بينما اذا رفعت الكود البرمجى الثانى ستجد انه يتم التحكم فى انارة المصابيح عن طريق الضغط على ازرار الريموت.

Resources

No items found.