цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Raspberry Pi и OLED-дисплей SSD1306: принцип работы, схема подключения, код



Raspberry Pi и OLED-дисплей SSD1306: принцип работы, схема подключения, код

Автор: Mike(admin) от 17-03-2024, 23:55

Сегодня мы рассмотрим, как соединить OLED-дисплей SSD1306 с Raspberry Pi и запрограммировать его работу. Мы собираемся использовать SPI-связь между OLED и PI для отправки данных.


Raspberry Pi и OLED-дисплей SSD1306: принцип работы, схема подключения, код

SSD1306 OLED – это монохромный дисплей, для управления которым используется чип ssd1306. Он поставляется в двух размерах: 128×32 и 128×64. Сегодня мы используем 128×64 с 7 контактами. Существует два варианта: один со связью I2C, а другой со связью SPI. Для связи I2C используются два контакта SCL и SDA, которые являются контактами тактовой частоты и последовательных данных. Они отправляют последовательные синхросигналы и последовательные данные всем подключенным к ним датчикам, но в соответствии с работой связи I2C на эти данные отвечает только указанный датчик.


Для связи SPI используются 4 или 3 провода, в зависимости от датчика. SCK (последовательный тактовый сигнал), MISO (главный вход, ведомый выход), MOSI (главный выход, ведомый вход) и CS (выбор чипа). Это четыре контакта, которые используются обычно. Вывод CS не является обязательным, он используется в основном при подключении нескольких устройств к одному и тому же выводу SCK, MISO и MOSI. Поэтому, чтобы выбрать, от какого датчика мы должны получать или отправлять данные, мы используем контакт CS.


Схему подключения можно увидеть далее. Здесь мы подключаем дисплей и датчик температуры и влажности DHT11, данные которого будем выводить на дисплей.


Raspberry Pi и OLED-дисплей SSD1306: принцип работы, схема подключения, код

Для программирования мы используем библиотеку Adafruit для SSD1306. Откройте терминал и введите следующую строку:


pip3 install adafruit-circuitpython-ssd1306

Затем введите:


sudo apt-get install python3-pil

Теперь вам нужно включить интерфейс SPI и I2C в Pi:


sudo raspi-config

В этом разделе «Interface options» включите оба варианта. После этого отредактируйте файл конфигурации, чтобы установить скорость передачи данных для связи I2C. Как для I2C, так и для SPI MOSI, SCK одинаковы, меняется только имя, поэтому нам нужно установить скорость передачи данных только для I2C. Для этого откройте окно терминала и введите следующую строку, чтобы открыть файл config.txt:


sudo nano /boot/config.txt

Найдите строку dtparam=i2c_arm=on. Под этим добавьте также эту строку:


dtparam=i2c_baudrate=1000000

Нажмите Ctrl+X, Y и Enter, чтобы сохранить изменения, теперь перезагрузите Pi. После этого откройте Thonny IDE и введите следующий код:



from PIL import Image, ImageDraw, ImageFont  
 import adafruit_ssd1306  
 import board  
 import digitalio  
 from time import sleep  
 oled=adafruit_ssd1306.SSD1306_SPI(128,64,board.SPI(),digitalio.DigitalInOut(board.D6),digitalio.DigitalInOut(board.D4),digitalio.DigitalInOut(board.D5)) 
 #oled=adafruit_ssd1306.SSD1306_SPI(width,height,spi_interface,dc,rst,cs) 
 oled.fill(0)  
 oled.show()  
 font=ImageFont.load_default()  
 image=Image.new('1',(128,64))  
 draw=ImageDraw.Draw(image)  
 for i in range(40):  
   for j in range(56):  
     draw.text((i,j),"HELLO WORLD",font=font,fill=255)  
     oled.image(image)  
     oled.show()  
     sleep(0.01)  
     draw.text((i,j),"HELLO WORLD",font=font,fill=0)  
     oled.image(image)  
     oled.show()

После этого все будет работать как нужно.




© digitrode.ru


Теги: Raspberry Pi, дисплеи




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
Цитата
  • Malorie

  • 2 ноября 2024 12:48
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
It's really a nice and helpful piece of information. I am happy
that you shared this useful information with us. Please stay us up
to date like this. Thanks for sharing.

Feel free to visit my web blog :: https://kingchance-casino.com/af/
Цитата
  • Reta

  • 2 ноября 2024 17:04
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
There are various tools and websites that affirmation to permit users to
view private Instagram profiles, but it's important to door these next caution. Many of these tools
can be unreliable, may require personal information, or could violate Instagram's terms of service.
Additionally, using such tools can compromise your own security or guide to scams.

The safest and most ethical exaggeration to view a private profile is to send a follow demand directly to the user.

Always prioritize privacy and worship in your online interactions.


Feel free to visit my web page - how to view private instagram followers
Цитата
  • Keenan

  • Сегодня, 02:29
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
I used to be suggested this blog by means of my cousin. I am not sure whether or not
this put up is written by way of him as nobody else realize such distinctive approximately my problem.
You are incredible! Thanks!

Also visit my blog post - https://radlygroup.com/chto-delat-pry-trebovanyy-brokera-proyzvesty-strakhovku-z
a-vyvod-sredstv-rekomendatsyy-iurysta/