Есть ли функция Adafruit для инвертирования цветов моего экрана для языка Arduino?

Я пытаюсь инвертировать цвет моего OLED-экрана при нажатии кнопки. С кнопкой разобрался но не могу найти функцию инвертирующую цвет. Я использую эти две библиотеки для обработки своего экрана в Arduino IDE.

Adafruit_GFX.h, Adafruit_SSD1306.h

Мы будем очень признательны за любую помощь.

, 👍1

Обсуждение

Когда такой функции нет в этих библиотеках, то скорее всего нет и функции Adafruit для этого. Вам придется сделать это самостоятельно. Это зависит от того, что именно здесь означает перевернутое. koronas отвечает на [этот вопрос](https://stackoverflow.com/questions/1165107/how-do-i-invert-a-colour#1165145) в stackoverflow, что вам просто нужно инвертировать биты цветовых компонентов . Вопрос о C#, но синтаксис в ответе такой же, как и на C++. Пожалуйста, попробуйте, если это так, что вы хотите., @chrisl

Другой ответ на этот вопрос гласит, что вам нужно будет выполнить преобразование в цветовом пространстве HSV., @chrisl


1 ответ


3

Есть функция, которая инвертирует цвета вашего экрана, вы можете выбрать либо черное на белом, либо белое на черном, я пробовал это, и у меня есть большой опыт работы с вашим дисплеем, я думаю, вам следует попробовать этот фрагмент кода.

В начале вашего кода Arduino убедитесь, что вы объявили объект, используя то же имя.

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

Чтобы инвертировать отображение

display.invertDisplay(true);

Чтобы снова вернуть отображение

display.invertDisplay(false);

Поскольку вы сказали, что вам нужна кнопка для инвертирования отображения, вы можете использовать этот код, который я сделал

if(digitalRead(BUTTON_PIN)){
    display.invertDisplay(true);
}
else{
    display.invertDisplay(false);
}

Или вы можете использовать Прерывания для повышения производительности в зависимости от вашего кода.

Как вы не смогли найти в Интернете, я студент и многому научился в Интернете, например, найти такую функцию в библиотеке Arduino, попробовать найти ее документацию или ее страницу на GitHub, а затем посмотреть функцию, которую вы хотите использовать на страницах, но не ищите функцию напрямую, она иногда не будет работать, поскольку они не так популярны.

Напоследок вот документы, из которых я взял функцию с ее параметрами.

Надеюсь, я помог вам. любые изменения в ответе приветствуются, так как я учусь.

,