پروژه الکترونیکپروژه های پایتونپروژه های رزبری پای

آموزش اتصال نمایشگر OLED SSD1306 به رزبری پای

سلام. آموزش اتصال نمایشگر OLED SSD1306 به رزبری پای را آماده کردیم.

نمایش متن روی صفحه نمایش OLED با Raspberry pi

ما با صفحه نمایش ال سی دی کاراکتری 16*2 که در بیشتر پروژه ها برای نمایش برخی اطلاعات به کاربر استفاده می شود آشنا هستیم. اما این نمایشگرهای LCD محدودیت های زیادی دارند. در این آموزش قصد داریم درباره نمایشگر OLED و نحوه استفاده از آنها با Raspberry Pi بیاموزیم. انواع زیادی از نمایشگرهای OLED در بازار وجود دارد و روشهای زیادی برای استفاده از آنها وجود دارد.

ما قبلا این نمایشگر را با آردوینو راه اندازی کردیم :

فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.

توضیحات ماژول نمایشگر OLED SSD1306 64*128

اصطلاح OLED مخفف Organic Light emitting diode است به معنی دیود تابش نور ارگانیک. این نوع صفحه نمایشگر ها از همان فناوری استفاده شده در بیشتر تلویزیون ها استفاده میکنند اما نسبت به آنها پیکسل های کمتری دارند. استفاده از این نمایشگر ها باعث جذاب تر شدن پروژه های ما میشود. در اینجا ، ما از یک صفحه نمایش OLED تک رنگ 4 پین SSD1306 سایز 0.96 اینچ استفاده می کنیم. این صفحه نمایش فقط می تواند در حالت I2C کار کند.

ماژول نمایشگر OLED SSD1306 64*128
 توضیحات پین های نمایشگر OLED :

  • VCC = ولتاژ 3.3
  • GND = GND
  • SDA = پین فیزیکی 3 (SDA)
  • SCL = پین فیزیکی 5 (SCL)

 

توضیحات مدار پروژه

در تصویر زیر شماتیک مدار این پروژه را مشاهده میکنید.

نمایش متن روی صفحه نمایش OLED با Raspberry pi

در جدول زیر اتصالات OLED با Raspberry pi آورده شده است:

پین نمایشگرپین رزبری پای
VCC3.3v
GNDGND
SDASDA – pin 3
SCLSCL – pin 5

قطعات مورد نیاز

  1. ماژول صفحه نمایش OLED 128*64 SSD1306
  2. رزبری پای
حتما ببینید :  آموزش ارتباط همتا به همتا رزبری پای و آردوینو با LoRa

آموزش اتصال OLED به رزبری پای

جامعه رزبری پای کتابخانه های فراوانی را در اختیار ما قرار داده است که میتوانند به صورت مستقیم برای ساده تر کردن این پروژه استفاده شوند. پس از امتحان چند کتابخانه، دریافتیم که کتابخانه Adafruit_SSD1306 OLED بسیار راحت و پیشرفته است و گزینه های گرافیکی زیادی دارد.

مرحله 1: ارتباط I2C را فعال کنید.

قبل از نصب کتابخانه Adafruit SSD1306 ، لازم است ارتباط I2C را در رزبری پای فعال کنیم.

برای انجام این کار :

sudo raspi-config

و سپس یک صفحه آبی ظاهر می شود. اکنون گزینه interface option را انتخاب کنید

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.

آموزش اتصال OLED به رزبری پای

پس از این ، ما نیاز به انتخاب I2C داریم

راه اندازی ارتباط I2C در رزبری پای

پس از این ، ما باید yes را انتخاب کنیم و کلید enter و سپس ok را بزنیم.

آموزش راه اندازی ال سی دی OLED

پس از این ، ما باید با دستور زیر raspberry pi را راه اندازی مجدد کنیم :

sodo reboot

مرحله 2: آدرس OLED I2C را پیدا کنید و آن را به روز کنید.

سپس باید با استفاده از دستور داده شده ، آدرس OLED I2C را پیدا کنیم و شما یک آدرس hex را خواهید دید.

sudo i2cdetect –y 1

سپس Raspberry Pi را با استفاده از دستور داده شده به روز کنید:

sudo apt-get update

مرحله 3: کتابخانه python-pip و GPIO را نصب کنید.

باید pip را با استفاده از دستور داده شده نصب کنیم:

sudo apt-get install build-essential python-dev python-pip

و کتابخانه Raspberry Pi GPIO را نصب می کنیم.

sudo pip installs RPi.GPIO

مرحله 4: کتابخانه Python Imaging و کتابخانه smbus را نصب کنید.

ما باید با استفاده از دستور داده شده ، کتابخانه Python Imaging و کتابخانه smbus را در رزبری پای نصب کنیم:

sudo apt-get install python-imaging python-smbus

کتابخانه Python Imaging و smbus

مرحله 5: کتابخانه پایتون Adafruit SSD1306 را نصب کنید.

اکنون زمان آن است که با استفاده از دستورات داده شده ، كتابخانه و مثال های Adafruit SSD1306 را نصب كنید:

sudo apt-get install git
git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
cd Adafruit_Python_SSD1306
sudo python setup.py install

کتابخانه پایتون Adafruit SSD1306

اکنون کاربر می تواند کد ارتباط نمایشگر OLED را در Raspberry Pi پیدا کند و شما می توانید مستقیماً آن را اجرا کنید یا آن را شخصی سازی کنید. در اینجا ما یک کد نمونه برای نمایش را تنظیم کرده ایم.

حتما ببینید :  باز کردن درب پارکینگ با اینترنت اشیا و رزبری پای

آموزش برنامه نویسی SSD1306

کد برای راه اندازی نمایشگر OLED SSD1306 بسیار ساده است. کد کامل در انتهای صفحه در فایل دانلودی قرار داده شده است. در اینجا بعضی از قسمت های کد را بررسی میکنیم.

import time
import Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import subprocess

سپس مقادیر اولیه نمایشگر را تعریف میکنیم.

RST = 0

disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
disp.begin()
disp.clear()
disp.display()

width = disp.width
height = disp.height

image1 = Image.new('1', (width, height))

draw = ImageDraw.Draw(image1)
draw.rectangle((0,0,width,height), outline=0, fill=0)

padding = -2
top = padding

bottom = height-padding
x = 0
font = ImageFont.load_default()

سپس با استفاده از کد زیر میتوانیم تصویر دلخواه را نمایش بدهیم.

disp.clear()
disp.display()
draw.text((x, top),       "OLED Interfacing " ,  font=font, fill=255)
draw.text((x, top+8),     "Circuit Digest", font=font, fill=255)
draw.text((x, top+16),    "For more Videos",  font=font, fill=255)
draw.text((x, top+25),    "Visit at",  font=font, fill=255)
draw.text((x, top+34),    "www.circuitdigest.com",  font=font, fill=255)

# Display image.
disp.image(image1)
disp.display()
time.sleep(2)

if disp.height == 64:
   image = Image.open('img1.png').convert('1')
else:
   image = Image.open('img1.png').convert('1')

disp.image(image)
disp.display()
time.sleep(2)

if disp.height == 64:
   image = Image.open('img3.jpg').convert('1')
else:
   image = Image.open('img3.jpg').convert('1')

این مدل نمایشگر OLED در دو نوع ارائه می شود یکی 128 * 32 و دیگری 128 * 64 است. در اینجا ما این کد را برای هر دو نوشته ایم. کاربر فقط نیاز به تغییر قسمت زیر دارد :

disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)

فیلم عملکرد پروژه

فیلم زیر نحوه عملکرد نمایشگر OLED SSD1306 را نمایش میدهد.

دانلود فیلم عملکرد نمایشگر OLED با رزبری پای

موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

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

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن