OLED дисплей ssd1306. Как отразить изображение
- Войдите на сайт для отправки комментариев
Ср, 04/04/2018 - 09:21
Изучал даташит, как перевеннуть изображение понял, но не могу понять, как поменять местами право и лево. Подскажите, в какую сторону копать. Оптические методы не подходят.
да в принципе это несложно. Открываете библиотеку, находите функцию вывода символа, что-то типа printChar - и меняете везде координату x на (128-x)
Дисплей же графический всё же. Т. е. Мне не символ первый и последний надо менять, а всё изображение. Стандартных решений точно нет? Видимо, придется ломать библиотеку таким образом, чтобы она свой массив с другого конца заполняла. Кстати, какую именно библиотеку посоветуете? Их разных много, функционал везде примерно одинаковый.
Конечно, графический. Поэтому я вам написал. что инвертировать картинку нужно попиксельно. Всего на этом дисплее по оси Х 128 пикселей - поэтому я и пишу. что коррдинату Х нужно перевести в 128-Х.
Что такое "стандартные" решения? Это вы имеете в виду готовую функцию в библиотеке? - поищите, может в какой-то и есть. Я не искал, мне было бы проще самому написать.
Решение найдено. В библиотеке Adafruit SSD1306 в функции drawPixel, начиная со строки 119, идет описание работы со смещением пикселей. Там надо уже просто подобрать. Всем спасибо.
brainrom, если мне не изменяет память, контроллер 1306 дисплея позволяет независимо менять изображение на зеркальное как по вертикали, так и по горизонтали. Безо всякого вмешательства в библиотеки. В дэйташите есть табличка.
Я лично в даташите только нашел по вертикали. С вертикалью связанное было только First Column и Last Column. Если не так, то ткните как это должно называться.
Сейчас лень лезть в дэйташит, посмотрел свою библиотечку. Там переворот экрана делается двумя командами, одна из которых отражает по вертикали, а другая - по горизонтали. Где какая - не помню.
И еще имейте в виду, что нормальная ориентация дисплея с точки зрения кодописателей Ардуино соответствует "вверх ногами"! с точки зрения разработчиков железа.
В общем, Вам нужна одна из 4-х команд, какая - разбирайтесь сами.
Фрагмент из моей библиотеки:
И как же перевернуть изображение на 180 градусов ?