Каталог

Графический OLED дисплей 2.42 SPI белый

Цена:

3730 р.
менее 50 шт.
Уже в корзине
Код товара: 14638
Оригинальное название:
Monochrome OLED 2.42 inch display 128х64 dots white symbols SSD1309 SPI/FPC Interface

Описание товара

Монохромный графический OLED-экран 2.4 дюйма с последовательным интерфейсом

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

  • Модель: M24S1309_02_V2
  • Напряжение питания: 3.3 вольта
  • Диагональ: 2.42 дюйма, 6.14 см
  • Тип экрана: монохромный OLED
  • Разрешение: 128 х 64 графических точек
  • Цвет: белый
  • Соотношение сторон: 2:1
  • Углы обзора: > 160°
  • Контроллер графики: SSD1309
  • Энергопотребление определяется яркостью:
    • 30%, 260 - 325 мВт
    • 50%, 345 - 470 мВт
    • 100%, 515 - 720 мВт
  • Интерфейс: 4-проводной последовательный периферийный, SPI
  • Активная область экрана: 55.01 х 27.49 мм
  • Подключение: разъём FPC 10х1.0мм, 10 контактов с шагом 2.54мм
  • Размеры модуля: 62.1 х 53.3 х 8 мм
  • Вес: 8.6 гр

Разработка собственных электронных проектов, причём совершенно не важно какой сложности они должны получится в завершённом виде, часто подразумевает использование в конструкции современного универсального инструмента общения между устройством и пользователем. К подобным средствам взаимодействия с окружающим миром относится любой графический или символьный экранный модуль, способный оповещать о любых запрограммированных событиях: вывод текстовой информации с внутренними процедурными данными или показателями, полученными от всевозможных измерительных датчиков, отображение графических фигур различной формы, построение разнообразных графиков и прочих визуально понятных элементов. Выбор подходящего дисплея напрямую зависит от потребностей проекта и конструктивных возможностей экранного модуля, начиная от высвечивания простых одноцветных символьных строк и заканчивая выводом на экран цветных изображений с поддержкой большого количества оттенков палитры RGB. Как правило, способности экранного модуля не ограничиваются лишь только графическим ядром контроллера, если в схемах плат присутствуют функционально дополняющие компоненты.

Наиболее популярные на сегодняшний день экраны производятся по технологии TFT TN LCD - недорогие жидкокристаллические матрицы с фоновой светодиодной подсветкой. Экраны TFT TN LCD имеют ряд ограничений, среди которых выделяются невысокие углы обзора и контрастность. Альтернативная технология производства OLED-экранов (органический светодиод, светящийся при прохождении через него электрического тока) практически избавлена от подобных недостатков, обладает увеличенными показателями цветопередачи, настоящим глубоким чёрным цветом, малым весом ЖК-панелей и значительно расширенными углами обзора, предоставляя возможность с любой стороны просматривать изображения с максимальной четкостью, без видимых цветовых искажений. В экранных матрицах OLED, свечение излучают сами диоды, и им не требуется дополнительное освещение. По этой причине, дисплеи OLED можно называть эффективными в задачах экономии энергопотребления, что порой совсем немаловажно в проектах с использованием автономных источников питания.

Назначение контактов модуля с OLED-дисплеем

Несущая плата модуля позволяет подключать экран к передающему устройству двумя разными способами. Плата оснащена десятью стандартными контактными площадками-отверстиями с расстоянием 2.54мм (0.1 дюйма) и разъёмом FPC, совместимым с 10-пиновым плоским гибким ленточным кабелем с шагом между проводниками 1.0мм.

Символ Описание
1 VCC3.3 Питание логической схемы модуля 3.3 вольта.
2 VCC3.3 Питание логической схемы модуля 3.3 вольта.
3 EN Сигнал включения/отключения питания внутреннего OLED блока.
4 GND Заземление логической схемы модуля.
5 CS Сигнал выбора микросхемы Chip Select (SPI), активен на низком уровне.
6 RES Сигнал сброса Power Reset, генерируется выводом IO внешнего контроллера, активен на низком уровне.
7 D/C Сигнал данных/команд (Data/Command). Высокий уровень сигнала для данных и низкий уровень сигнала для команд. Генерируется выводом IO внешнего контроллера.
8 GND Заземление логической схемы модуля.
9 SCLK Сигнал тактирования Serial Clock (SPI). Генерируется выводом IO внешнего контроллера.
10 SDIN Сигнал входящих последовательных данных Serial Data Input (SPI). Генерируется выводом IO внешнего контроллера.

 

Схема подключения OLED-дисплея к Ардуино, примеры программирования

Схема соединения контроллера Arduino Due и модуля с OLED-экраном основана на стандартной 4-проводной последовательной шине SPI в периферийном режиме. В демонстрируемом примере, плата Due выбрана не случайно. Почти все её внутренние электрические цепи (кроме выводов питания +5В), включая контакты общего назначения GPIO, работают на номинальном рабочем напряжении 3,3 вольта. Именно на таком же логическом уровне функционирует и центральная микросхема SSD1309 со всеми компонентами модуля с жидкокристаллическим экраном. Плата экранного модуля имеет 10 выводов, каждый из которых промаркирован в соответствии с его непосредственным назначением.

Питание дисплея осуществляется через контакты VCC и GND, подключаемые к источнику постоянного напряжения 3,3 вольта. Вариантов запитать дисплейный модуль существует два: напрямую от платы контроллера, если общая нагрузка на последний не велика и не превышает в сумме 700мА, либо от произвольного внешнего стабилизированного блока питания. Например, удобно будет использовать понижающий преобразователь DC-DC, соединённый с общей линией питания платы контроллера Due.

Процесс передачи графической информации задействует 3 из 4 линий шины связи SPI: тактирование - SCLK (SPI_CLK), передача данных от Ардуино Due к дисплею - SDIN (SPI_MOSI) и выбор микросхемы - CS (SPI_CS). Контакты сигналов перезапуска экранного модуля RES и смены режимов передачи между командами и данными DC выбираются произвольно из группы выводов GPIO. Вывод EN по умолчанию подтянут к высокому уровню при включенном питании экрана. Входящий сигнал низкого уровня отключает встроенный блок OLED, тем самым дополнительно снижает энергопотребление и одновременно выключает изображение на экране.

  Схема подключения дисплея к Arduino Due  

 

В приведённом ниже скетче, инициализатором контроллера SSD1309 выступает подключаемая внешняя библиотека U8glib, доступная в репозитории совместимых загружаемых библиотек Arduino IDE и на сайте GitHub. Кроме графических процедур, программный код библиотеки U8glib располагает набором собственных интегрированных шрифтов с изменяемыми размерами. Текст скетча взят из раздела примеров библиотеки и наглядно демонстрирует основные функции работы с графикой.

#include "U8glib.h"

U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9, 8);	// SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RES = 8

void u8g_prepare(void) {
  u8g.setFont(u8g_font_6x10);
  u8g.setFontRefHeightExtendedText();
  u8g.setDefaultForegroundColor();
  u8g.setFontPosTop();
}

void u8g_box_frame(uint8_t a) {
  u8g.drawStr( 0, 0, "drawBox");
  u8g.drawBox(5,10,20,10);
  u8g.drawBox(10+a,15,30,7);
  u8g.drawStr( 0, 30, "drawFrame");
  u8g.drawFrame(5,10+30,20,10);
  u8g.drawFrame(10+a,15+30,30,7);
}

void u8g_disc_circle(uint8_t a) {
  u8g.drawStr( 0, 0, "drawDisc");
  u8g.drawDisc(10,18,9);
  u8g.drawDisc(24+a,16,7);
  u8g.drawStr( 0, 30, "drawCircle");
  u8g.drawCircle(10,18+30,9);
  u8g.drawCircle(24+a,16+30,7);
}

void u8g_r_frame(uint8_t a) {
  u8g.drawStr( 0, 0, "drawRFrame/Box");
  u8g.drawRFrame(5, 10,40,30, a+1);
  u8g.drawRBox(50, 10,25,40, a+1);
}

void u8g_string(uint8_t a) {
  u8g.drawStr(30+a,31, " 0");
  u8g.drawStr90(30,31+a, " 90");
  u8g.drawStr180(30-a,31, " 180");
  u8g.drawStr270(30,31-a, " 270");
}

void u8g_line(uint8_t a) {
  u8g.drawStr( 0, 0, "drawLine");
  u8g.drawLine(7+a, 10, 40, 55);
  u8g.drawLine(7+a*2, 10, 60, 55);
  u8g.drawLine(7+a*3, 10, 80, 55);
  u8g.drawLine(7+a*4, 10, 100, 55);
}

void u8g_triangle(uint8_t a) {
  uint16_t offset = a;
  u8g.drawStr( 0, 0, "drawTriangle");
  u8g.drawTriangle(14,7, 45,30, 10,40);
  u8g.drawTriangle(14+offset,7-offset, 45+offset,30-offset, 57+offset,10-offset);
  u8g.drawTriangle(57+offset*2,10, 45+offset*2,30, 86+offset*2,53);
  u8g.drawTriangle(10+offset,40+offset, 45+offset,30+offset, 86+offset,53+offset);
}

void u8g_ascii_1() {
  char s[2] = " ";
  uint8_t x, y;
  u8g.drawStr( 0, 0, "ASCII page 1");
  for( y = 0; y < 6; y++ ) {
    for( x = 0; x < 16; x++ ) {
      s[0] = y*16 + x + 32;
      u8g.drawStr(x*7, y*10+10, s);
    }
  }
}

void u8g_ascii_2() {
  char s[2] = " ";
  uint8_t x, y;
  u8g.drawStr( 0, 0, "ASCII page 2");
  for( y = 0; y < 6; y++ ) {
    for( x = 0; x < 16; x++ ) {
      s[0] = y*16 + x + 160;
      u8g.drawStr(x*7, y*10+10, s);
    }
  }
}

void u8g_extra_page(uint8_t a)
{
  if ( u8g.getMode() == U8G_MODE_HICOLOR || u8g.getMode() == U8G_MODE_R3G3B2) {
    /* draw background (area is 128x128) */
    u8g_uint_t r, g, b;
    b = a << 5;
    for( g = 0; g < 64; g++ )
    {
      for( r = 0; r < 64; r++ )
      {
	u8g.setRGB(r<<2, g<<2, b );
	u8g.drawPixel(g, r);
      }
    }
    u8g.setRGB(255,255,255);
    u8g.drawStr( 66, 0, "Color Page");
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT )
  {
    u8g.drawStr( 66, 0, "Gray Level");
    u8g.setColorIndex(1);
    u8g.drawBox(0, 4, 64, 32);    
    u8g.drawBox(70, 20, 4, 12);
    u8g.setColorIndex(2);
    u8g.drawBox(0+1*a, 4+1*a, 64-2*a, 32-2*a);
    u8g.drawBox(74, 20, 4, 12);
    u8g.setColorIndex(3);
    u8g.drawBox(0+2*a, 4+2*a, 64-4*a, 32-4*a);
    u8g.drawBox(78, 20, 4, 12);
  }
  else
  {
    u8g.drawStr( 0, 12, "setScale2x2");
    u8g.setScale2x2();
    u8g.drawStr( 0, 6+a, "setScale2x2");
    u8g.undoScale();
  }
}

uint8_t draw_state = 0;

void draw(void) {
  u8g_prepare();
  switch(draw_state >> 3) {
    case 0: u8g_box_frame(draw_state&7); break;
    case 1: u8g_disc_circle(draw_state&7); break;
    case 2: u8g_r_frame(draw_state&7); break;
    case 3: u8g_string(draw_state&7); break;
    case 4: u8g_line(draw_state&7); break;
    case 5: u8g_triangle(draw_state&7); break;
    case 6: u8g_ascii_1(); break;
    case 7: u8g_ascii_2(); break;
    case 8: u8g_extra_page(draw_state&7); break;
  }
}

void setup(void) {

  //flip screen, if required
  //u8g.setRot180();

#if defined(ARDUINO)
  pinMode(13, OUTPUT);           
  digitalWrite(13, HIGH);  
#endif
}

void loop(void) {
  
  // picture loop  
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
  
  // increase the state
  draw_state++;
  if ( draw_state >= 9*8 )
    draw_state = 0;
  
  //rebuild the picture after some delay
  //delay(150);
}

Физические размеры OLED-модуля, мм

  Габаритные размеры экранного модуля OLED 2.4 дюйма SSD1309 128x64 белый с последовательным интерфейсом  

Похожие позиции

4280 р.
Арт. 14639
Уже в корзине
менее 10 шт.
2330 р.
Арт. 16093
Уже в корзине
менее 50 шт.
2000 р.
Арт. 16094
Уже в корзине
менее 50 шт.
footer shadow
Контакты

г. Москва, Пятницкое ш. д. 18, пав. 566

zakaz@compacttool.ru

8-495-752-55-22

compacttool logoadaptive site

accepted payment systems

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !

© Все права защищены 2015 - 2024г https://compacttool.ru