140.00 грн.
Відправка на слідуючий день
Актуальні залишки
Тільки легальна сплата
Низькі ціни
Доставка: Нова Пошта, Укрпошта, Самовивіз
Модуль OLED забезпечує три інтерфейси приводу: 3-провідний SPI, 4-провідний SPI та інтерфейс I2C відповідно. До задньої частини модуля можна припаяти два резистори, а відповідний метод зв'язку можна вибрати шляхом вибору резисторів, як показано на малюнку:
За замовчуванням модуль використовує 4-провідний режим SPI, тобто. , BS0 і BS1 за замовчуванням підключені до 0 (1 і 0 не позначають рівень, але опір підключений або пов'язаний з методом зварювання, конкретне підключення обладнання показано в таблиці нижче):
Примітка. На малюнку вище показано зварювання на устаткуванні, а наступна таблиця є фактичним підключенням обладнання:

Режим зв'язку BS1/BS0
3-провідний інтерфейс SPI 0/1
4-провідний інтерфейс SPI 0/0
I2C 1/0
Конкретна конфігурація обладнання така:
  • Використання 4-провідного SPI:
Тобто заводські налаштування програми: BS0 і BS1 підключені до 0 і до землі, DIN підключений до 0 і Raspberry Pi MOSI, а CLK підключений до 0 і Raspberry Pi SCLK;
  • Використання 3-провідного SPI:
Підключіть BS0 до 1 і VCC, підключіть BS1 до 0 і GND, підключіть DIN до 0 і Raspberry Pi MOSI, підключіть CLK до 0 і Raspberry Pi SCLK;
  • Використання I2C:
BS0 підключається до 0 і GND, BS1 підключається до 1 і VCC (3,3 В), DIN підключається до 0 і Raspberry Pi SDA, CLK підключається до 1 і Raspberry Pi SCL;
При використанні I2C: високий та низький стан постійного струму може керувати адресою керованого пристрою. Якщо він підключений до GND, то 7-бітна адреса I2C: 0x3C;
PS: Програма за замовчуванням працює у режимі SPI. Якщо потрібно переключити режим, змініть DEV_Config.h. Подробиці дивіться в описі програми - нижній апаратний інтерфейс - вибір
PS: при використанні STM32 демонстрація I2C використовує аналоговий I2C, зверніть увагу на підключення.
 

Технічні характеристики  

Мікросхема драйвера SSD1306
Інтерфейс підтримки SPI/IIC
Постанова 128 × 64
Розмір дисплея 0,96 дюйма
Колір дисплея Біле світло/ блакитне світло/ жовто-блакитний колір
Розміри 27.5 × 27.8 (mm)
Розмір скла 26.7 × 19.26 × 1.4 (mm)
Область відображення 21,74 (Ш) × 10,864 мм
Точковий крок 0.17 × 0.17 (mm)
Розмір точки 0.15 × 0.15 (mm)
Кількість штифтів 7-контактний
Споживання енергії Нормальне споживання електроенергії дисплеєм становить 21mA-28MAX
Робочий струм Під час нормальної роботи струм становить близько 20 мА, а під час сну струм знаходиться на рівні UA
Перспектива Повний огляд
Робоча температура -20 ℃ ~ 70 ℃
Температура зберігання -30 ℃ ~ 80 ℃
Робоча напруга 2,8-5,5 В.

  Визначення інтерфейсу SPI на SSD1306

PIN   СИМВОЛ Описи
1 GND Живлення заземлення
2 VDD Позитивний блок живлення (2,8-5,5 В)
3 SCK Годинникова лінія
4 SDA Лінія даних
5 RES Скинути рядок
6 DC Дані/команда
7 CS Вибір чіпа
 /*
  modified on Des 13, 2020
  Modified by MohammedDamirchi from https://github.com/adafruit/Adafruit_SSD1306
  Home
*/
/**************************************************************************
 This is an example for our Monochrome OLEDs based on SSD1306 drivers
 Pick one up today in the adafruit shop!
 ------> http://www.adafruit.com/category/63_98
 This example is for a 128x32 pixel display using SPI to communicate
 4 or 5 pins are required to interface.
 Adafruit invests time and resources providing this open
 source code, please support Adafruit and open-source
 hardware by purchasing products from Adafruit!
 Written by Limor Fried/Ladyada for Adafruit Industries,
 with contributions from the open source community.
 BSD license, check license.txt for more information
 All text above, and the splash screen below must be
 included in any redistribution.
 **************************************************************************/
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for SSD1306 display connected using software SPI (default case):
//#define OLED_MOSI   9
//#define OLED_CLK   10
//#define OLED_DC    11
//#define OLED_CS    12
//#define OLED_RESET 13
//Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,
//  OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
//Comment out above, uncomment this block to use hardware SPI
#define OLED_DC     8
#define OLED_CS     10
#define OLED_RESET  9
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,
  &SPI, OLED_DC, OLED_RESET, OLED_CS);

#define NUMFLAKES     10 // Number of snowflakes in the animation example
#define LOGO_HEIGHT   16
#define LOGO_WIDTH    16
static const unsigned char PROGMEM logo_bmp[] =
{ B00000000, B11000000,
  B00000001, B11000000,
  B00000001, B11000000,
  B00000011, B11100000,
  B11110011, B11100000,
  B11111110, B11111000,
  B01111110, B11111111,
  B00110011, B10011111,
  B00011111, B11111100,
  B00001101, B01110000,
  B00011011, B10100000,
  B00111111, B11100000,
  B00111111, B11110000,
  B01111100, B11110000,
  B01110000, B01110000,
  B00000000, B00110000 };
void setup() {
  Serial.begin(9600);
  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
  // Show initial display buffer contents on the screen --
  // the library initializes this with an Adafruit splash screen.
  display.display();
  delay(2000); // Pause for 2 seconds
  // Clear the buffer
  display.clearDisplay();
  // Draw a single pixel in white
  display.drawPixel(10, 10, SSD1306_WHITE);
  // Show the display buffer on the screen. You MUST call display() after
  // drawing commands to make them visible on screen!
  display.display();
  delay(2000);
  // display.display() is NOT necessary after every single drawing command,
  // unless that's what you want...rather, you can batch up a bunch of
  // drawing operations and then update the screen all at once by calling
  // display.display(). These examples demonstrate both approaches...
  testdrawline();      // Draw many lines
  testdrawrect();      // Draw rectangles (outlines)
  testfillrect();      // Draw rectangles (filled)
  testdrawcircle();    // Draw circles (outlines)
  testfillcircle();    // Draw circles (filled)
  testdrawroundrect(); // Draw rounded rectangles (outlines)
  testfillroundrect(); // Draw rounded rectangles (filled)
  testdrawtriangle();  // Draw triangles (outlines)
  testfilltriangle();  // Draw triangles (filled)
  testdrawchar();      // Draw characters of the default font
  testdrawstyles();    // Draw 'stylized' characters
  testscrolltext();    // Draw scrolling text
  testdrawbitmap();    // Draw a small bitmap image
  // Invert and restore display, pausing in-between
  display.invertDisplay(true);
  delay(1000);
  display.invertDisplay(false);
  delay(1000);
  testanimate(logo_bmp, LOGO_WIDTH, LOGO_HEIGHT); // Animate bitmaps
}
void loop() {
}
void testdrawline() {
  int16_t i;
  display.clearDisplay(); // Clear display buffer
  for(i=0; i<display.width(); i+=4) {
    display.drawLine(0, 0, i, display.height()-1, SSD1306_WHITE);
    display.display(); // Update screen with each newly-drawn line
    delay(1);
  }
  for(i=0; i<display.height(); i+=4) {
    display.drawLine(0, 0, display.width()-1, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(250);
  display.clearDisplay();
  for(i=0; i<display.width(); i+=4) {
    display.drawLine(0, display.height()-1, i, 0, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for(i=display.height()-1; i>=0; i-=4) {
    display.drawLine(0, display.height()-1, display.width()-1, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(250);
  display.clearDisplay();
  for(i=display.width()-1; i>=0; i-=4) {
    display.drawLine(display.width()-1, display.height()-1, i, 0, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for(i=display.height()-1; i>=0; i-=4) {
    display.drawLine(display.width()-1, display.height()-1, 0, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(250);
  display.clearDisplay();
  for(i=0; i<display.height(); i+=4) {
    display.drawLine(display.width()-1, 0, 0, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  for(i=0; i<display.width(); i+=4) {
    display.drawLine(display.width()-1, 0, i, display.height()-1, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(2000); // Pause for 2 seconds
}
void testdrawrect(void) {
  display.clearDisplay();
  for(int16_t i=0; i<display.height()/2; i+=2) {
    display.drawRect(i, i, display.width()-2*i, display.height()-2*i, SSD1306_WHITE);
    display.display(); // Update screen with each newly-drawn rectangle
    delay(1);
  }
  delay(2000);
}
void testfillrect(void) {
  display.clearDisplay();
  for(int16_t i=0; i<display.height()/2; i+=3) {
    // The INVERSE color is used so rectangles alternate white/black
    display.fillRect(i, i, display.width()-i*2, display.height()-i*2, SSD1306_INVERSE);
    display.display(); // Update screen with each newly-drawn rectangle
    delay(1);
  }
  delay(2000);
}
void testdrawcircle(void) {
  display.clearDisplay();
  for(int16_t i=0; i<max(display.width(),display.height())/2; i+=2) {
    display.drawCircle(display.width()/2, display.height()/2, i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(2000);
}
void testfillcircle(void) {
  display.clearDisplay();
  for(int16_t i=max(display.width(),display.height())/2; i>0; i-=3) {
    // The INVERSE color is used so circles alternate white/black
    display.fillCircle(display.width() / 2, display.height() / 2, i, SSD1306_INVERSE);
    display.display(); // Update screen with each newly-drawn circle
    delay(1);
  }
  delay(2000);
}
void testdrawroundrect(void) {
  display.clearDisplay();
  for(int16_t i=0; i<display.height()/2-2; i+=2) {
    display.drawRoundRect(i, i, display.width()-2*i, display.height()-2*i,
      display.height()/4, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(2000);
}
void testfillroundrect(void) {
  display.clearDisplay();
  for(int16_t i=0; i<display.height()/2-2; i+=2) {
    // The INVERSE color is used so round-rects alternate white/black
    display.fillRoundRect(i, i, display.width()-2*i, display.height()-2*i,
      display.height()/4, SSD1306_INVERSE);
    display.display();
    delay(1);
  }
  delay(2000);
}
void testdrawtriangle(void) {
  display.clearDisplay();
  for(int16_t i=0; i<max(display.width(),display.height())/2; i+=5) {
    display.drawTriangle(
      display.width()/2  , display.height()/2-i,
      display.width()/2-i, display.height()/2+i,
      display.width()/2+i, display.height()/2+i, SSD1306_WHITE);
    display.display();
    delay(1);
  }
  delay(2000);
}
void testfilltriangle(void) {
  display.clearDisplay();
  for(int16_t i=max(display.width(),display.height())/2; i>0; i-=5) {
    // The INVERSE color is used so triangles alternate white/black
    display.fillTriangle(
      display.width()/2  , display.height()/2-i,
      display.width()/2-i, display.height()/2+i,
      display.width()/2+i, display.height()/2+i, SSD1306_INVERSE);
    display.display();
    delay(1);
  }
  delay(2000);
}
void testdrawchar(void) {
  display.clearDisplay();
  display.setTextSize(1);      // Normal 1:1 pixel scale
  display.setTextColor(SSD1306_WHITE); // Draw white text
  display.setCursor(0, 0);     // Start at top-left corner
  display.cp437(true);         // Use full 256 char 'Code Page 437' font
  // Not all the characters will fit on the display. This is normal.
  // Library will draw what it can and the rest will be clipped.
  for(int16_t i=0; i<256; i++) {
    if(i == '\n') display.write(' ');
    else          display.write(i);
  }
  display.display();
  delay(2000);
}
void testdrawstyles(void) {
  display.clearDisplay();
  display.setTextSize(1);             // Normal 1:1 pixel scale
  display.setTextColor(SSD1306_WHITE);        // Draw white text
  display.setCursor(0,0);             // Start at top-left corner
  display.println(F("Hello, world!"));
  display.setTextColor(SSD1306_BLACK, SSD1306_WHITE); // Draw 'inverse' text
  display.println(3.141592);
  display.setTextSize(2);             // Draw 2X-scale text
  display.setTextColor(SSD1306_WHITE);
  display.print(F("0x")); display.println(0xDEADBEEF, HEX);
  display.display();
  delay(2000);
}
void testscrolltext(void) {
  display.clearDisplay();
  display.setTextSize(2); // Draw 2X-scale text
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(10, 0);
  display.println(F("scroll"));
  display.display();      // Show initial text
  delay(100);
  // Scroll in various directions, pausing in-between:
  display.startscrollright(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrollleft(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrolldiagright(0x00, 0x07);
  delay(2000);
  display.startscrolldiagleft(0x00, 0x07);
  delay(2000);
  display.stopscroll();
  delay(1000);
}
void testdrawbitmap(void) {
  display.clearDisplay();
  display.drawBitmap(
    (display.width()  - LOGO_WIDTH ) / 2,
    (display.height() - LOGO_HEIGHT) / 2,
    logo_bmp, LOGO_WIDTH, LOGO_HEIGHT, 1);
  display.display();
  delay(1000);
}
#define XPOS   0 // Indexes into the 'icons' array in function below
#define YPOS   1
#define DELTAY 2
void testanimate(const uint8_t *bitmap, uint8_t w, uint8_t h) {
  int8_t f, icons[NUMFLAKES][3];
  // Initialize 'snowflake' positions
  for(f=0; f< NUMFLAKES; f++) {
    icons[f][XPOS]   = random(1 - LOGO_WIDTH, display.width());
    icons[f][YPOS]   = -LOGO_HEIGHT;
    icons[f][DELTAY] = random(1, 6);
    Serial.print(F("x: "));
    Serial.print(icons[f][XPOS], DEC);
    Serial.print(F(" y: "));
    Serial.print(icons[f][YPOS], DEC);
    Serial.print(F(" dy: "));
    Serial.println(icons[f][DELTAY], DEC);
  }
  for(;;) { // Loop forever...
    display.clearDisplay(); // Clear the display buffer
    // Draw each snowflake:
    for(f=0; f< NUMFLAKES; f++) {
      display.drawBitmap(icons[f][XPOS], icons[f][YPOS], bitmap, w, h, SSD1306_WHITE);
    }
    display.display(); // Show the display buffer on the screen
    delay(200);        // Pause for 1/10 second
    // Then update coordinates of each flake...
    for(f=0; f< NUMFLAKES; f++) {
      icons[f][YPOS] += icons[f][DELTAY];
      // If snowflake is off the bottom of the screen...
      if (icons[f][YPOS] >= display.height()) {
        // Reinitialize to a random position, just off the top
        icons[f][XPOS]   = random(1 - LOGO_WIDTH, display.width());
        icons[f][YPOS]   = -LOGO_HEIGHT;
        icons[f][DELTAY] = random(1, 6);
      }
    }
  }
}
 

Економічний якісний OLED дисплей з високою контрастністю 7 контактів. Крім протоколу I2C підтримує SPI. Легко підключається, вискоко швидкодію, можливе підключення відразу декількох дисплеїв до будь-якого микроконтроллеру або міні-комп'ютера по шині I2C. Адресу можна вибрати перепайкой перемички.

Характеристики OLED Дисплей 0.96 I2C SPI

  • Драйвер дисплея: SSD1315 / сумісний зі старим SSD1306
  • Інтерфейс: 7 pin з яких: 3-SPI або 4-дротовий SPI, або I2C
  • Робоча напруга: 3,3 В
  • Напруга інтерфейсів: 3,3
  • Дозвіл: 128 * 64
  • Розмір дисплея: 0.96-дюйма
  • Кольори: Жовто-блакитний / білий / блакитний
  • Кут огляду:> 160 °
  • Розміри: 33мм * 33.50мм
  • Робоча температура: 20-70

oled 0.96 spi дисплей для Ардуино

Напруга живлення модуля - 3.3 В, але на платі встановлений стабілізатор з низьким падінням напруги, що дозволяє живити дисплей як від 5 В, так і від 3.3 В безпосередньо

Підключення OLED Дисплей 0.96 I2C SPI 128x64

1 VCC Напруга живлення (3,3 В-5В)
2 GND
3 NC НЕ використовується
4 DIN Вхід даних
5 CLK Вхід тактовихімпульсів
6 CS Вибір кристала, активний низький рівень
7 D / C Вибір Команди / Дані. низький рівень для команд, високий для даних
8 RES Сигнал скидання, активний низький рівень
Драйвер качати тут: http://www.rinkydinkelectronics.com/
Бібліотека U8gLib підтримує велику кількість контролерів екрану, в числі яких і SSD1306

Максимальне споживання (коли включені всі пікселі дисплея) близько 20 мА, тому при необхідності його можна живити прямо від Піна мікроконтролера.
Як задати тип интерфейсу?

Интерфейс BS0/BS1 DIN SCK
3-проводный SPI 1/0 MOSI SCLK
4-проводный SPI 0/0 MOSI SCLK
I2C

​Відео: https://www.youtube.com/watch?v=-IFwwWj11Kw&t=742s

Відгуків: 0

Відгуків про цей товар ще не було.

Запитань: 0

Нема питаннь про цей товар

Радимо переглянути
FAQ

Найчастіші запитання

Суб'єкт господарювання - ФОП група №3 без ПДВ (фізична особа - підприємець з розрахунковим рахунком в банку). Місце реєстрації та складу м. Дрогобич. Всі дані можна перевірити на сайті Міністерства Юстиції.

Приватні умільці і інженери, любителі саморобок, школи юних техніків і групи технічної творчості які не пов'язані з комерційними закупівлями великих партій товарів. Склад магазину - невеликий. Юридичні особи обслуговуються в повному обсязі (рахунок+наклдадна)

Магазин працює за принципом "Купуй, якщо розумієш". Як консультації можуть бути запропоновані напрямки технічних рішень але не схеми реалізації та монтажу. При покупці керуйтеся загальнодоступними джерелами інформації з Інтернету.

Перейдіть на сторінку товару. Наявність вказано над ціною. За наявності товару виберіть модель, якщо вони є під вказівником ціни. Натисніть синю кнопку "У кошик". Кількість товару відобразиться поряд із значком кошика у правому верхньому кутку. Коли кошик буде заповнений, перейдіть до оформлення замовлення, натиснувши кнопку "Оформити" або кнопку "Кошик". Заповніть дані для надсилання товару. Якщо товару поклали більше, ніж є на складі - система Вас попередить і не дасть замовити. Після поправки кількості в кошику натисніть синю кнопку "Оформити" і потім "Підтвердити", При цьому перевіряється фактична наявність товару на складі. Якщо товару не вистачає, з'явиться попередження. Зменшіть товар у кошику до зникнення попередження. При успішному Замовленні сторінка сайту привітає Вас та автоматично надішле Замовлення вам на емейл.

Магазин arduinka.biz.ua - інструмент ІТ комунікацій без торгового залу. Спосіб офіційного діалогу - е-mail. Лист з текстом замовлення - підтвердження укладення угоди. Лист може потрапити в СПАМ, бо відсилається автоматично роботом сайту. Перевірте папку СПАМ! Лист не прийде якщо адреса вказана неправильно. При відсутності листа звертайтеся в Viber або телефоном

Щоб коректно замовити впишіть в один рядок (наприклад Прізвище) назву, а в інший рядок (наприклад Ім'я) код ЗКПО фірми чи ФОП та місто одержання / розташування. Виберіть оплату на розрахунковий рахунок. У листі про замовлення у вас з'явиться кнопка "Роздрукувати рахунок" де і будуть вказані ваші реквізити отримувача. Можете внести всі дані в поле "Коментар до замовлення"

1. Зробіть інше замовлення і в коментарі вкажіть на необхідність відправити однією посилкою. Проведіть оплату
2. Будь ласка, повідомте в магазин по телефону про бажання додати товар в існуючу посилку. Сплатіть товар після узгодження з магазином

Важливо! Товар замовлений сьогодні до 21:00 - відправляється завтра. Товар передається щодня понеділок-субота на "Нова пошта" з 12:00 до 13:00 на замовлення попереднього дня. "Укрпошта" - відправка по робочих днях до 12:00 Форма оплати - тільки безготівкова, оплата - на бізнес-карту прив'язану до рахунку, на розрахунковий рахунок або на рахунок через посередників фінансових послуг Інтеркаса, Портмоне, Лікпей, Мастерпасс і т.п. Способи: Інтернет банкінг, термінали самообслуговування, Швидка оплата через сервіс Sendmoney (міжбанківський сервіс Приватбанку) >Реквізити оплати приходять на емейл. Не переходьте до оплати не отримавши повідомлення про успішне замовлення!
Наложка практикується виключно з постійними клієнтами магазину