Дисплей на SSD1309

Не «мы», а «вы».))

Не знаете какие есть функции в библиотеке для ssd1305 ?

Да ему и 1305 не сильно подходит(судя по снегу/сдвигу с краю) :neutral_face:

Переделал на скоряк под 1305, заменив инверсию на BLACK и WHITE, изображение сдвинуто вправо как и при тесте 1305, и как то помаргивает всё, как сломанный телевизор )))

А даташита нет что ли 1309

Какую то угадайку устроили …

На 1309z на минуточку! :grinning_face:

Да мне хоть 1309xvz….

Конечно. Вы скетч смотрите? Автор затирает весь экран и отрисовывает заново. И так без пауз. Конечно моргает.

Маньяк…

Да и если имитировать подачу сигнала пинцетом в пин AI, то полоски тормозят. В общем это непотребное решение - переделка в 1305…

Если «тормозит», то его надо по SPI подключать. Есть библиотеки под него на SPI?

У меня в усилителе, работает первый, “родной” вариант. По I2C, работает отлично, ничего не тормозит. Но дисплей мелкий.

Вот фотки

typedef enum{
	// Fundamental Commands
	SSD1309_CMD_setContrastControl = 0x81,
	SSD1309_CMD_followRAMcontent = 0xA4,
	SSD1309_CMD_allPixelsOn = 0xA5,
	SSD1309_CMD_inversionOff = 0xA6,
	SSD1309_CMD_inversionOn = 0xA7,
	SSD1309_CMD_pwrOff = 0xAE, 
	SSD1309_CMD_pwrOn = 0xAF,
	SSD1309_CMD_nop = 0xE3,
	SSD1309_CMD_setCommandLock = 0xFD,

	// Scrolling Command Table
	SSD1309_CMD_contHScrollSetupRight = 0x26,
	SSD1309_CMD_contHScrollSetupLeft = 0x27,
	SSD1309_CMD_contVHScrollSetupRight = 0x29,
	SSD1309_CMD_contVHScrollSetupLeft = 0x2A,
	SSD1309_CMD_deactivateScroll = 0x2E,
	SSD1309_CMD_activateScroll = 0x2F,
	SSD1309_CMD_setVScrollArea = 0xA3,
	SSD1309_CMD_contentScrollSetupRight = 0x2C,
	SSD1309_CMD_contentScrollSetupLeft = 0x2D,

	// Addressing Setting Command Table
	SSD1309_CMD_setLowCSAinPAM = 0x00, 		// Note: this command should be OR'd with the desired Page Address Mode Lower Nibble of Column Start Address when it is sent
	SSD1309_CMD_setHighCSAinPAM = 0x10,		// This command also OR'd with the high nibble...
	SSD1309_CMD_setMemoryAddressingMode = 0x20, // Only for horizontal or vertical addressing mode...
	SSD1309_CMD_setColumnAddress = 0x21,
	SSD1309_CMD_setPageAddress = 0x22,
	SSD1309_CMD_setPSAinPAM = 0xB0, 		// Note: OR this with 3 Least Significant bits that represent the page start address
	SSD1309_CMD_setDisplayStartLine = 0x40, // Note: OR this with 6 Least Significant Bits that represent the display start line
	SSD1309_CMD_setSegmentMapReset = 0xA0,
	SSD1309_CMD_setSegmentMapFlipped = 0xA1,
	SSD1309_CMD_setMultiplexRatio = 0xA8,	
	SSD1309_CMD_setCOMoutputNormal = 0xC0,
	SSD1309_CMD_setCOMoutputFlipped = 0xC8,
	SSD1309_CMD_setDisplayOffset = 0xD3,
	SSD1309_CMD_setCOMpinsHWconfig = 0xDA,
	SSD1309_CMD_setGPIO	= 0xDC,

	// Timing and Driving Scheme Setting Command Table
	SSD1309_CMD_setDisplayClockDivideRatio = 0xD5,
	SSD1309_CMD_setPreChargePeriod = 0xD9,
	SSD1309_CMD_setVCOMHdeselectLevel = 0xDB,
}SSD1309_Cmd_t;

.

Тогда отсюда пробуйте библиотеку. Сильная штука.

http://www.rinkydinkelectronics.com/library.php?id=79

Позволяет работать с несколькими дисплеями как с одним :slight_smile:

А это фрагмент чего?

библиотеки ssd1309 конечно.

до кнопки дело дойдет ? :smiling_face:

У меня такой же, SSD1309, запитан от 5 вольт, работает. Долго не проживет?

Проживёт, если диоды стоят как в схеме к нему у продавца, а не резисторы с нулевым сопротивлением.

там же еще преобразователь есть 5 на 3.3?