Оглавление:

Настольный органайзер с ЖК-дисплеем: 4 шага
Настольный органайзер с ЖК-дисплеем: 4 шага

Видео: Настольный органайзер с ЖК-дисплеем: 4 шага

Видео: Настольный органайзер с ЖК-дисплеем: 4 шага
Видео: Ликбез нубасика #4. Установка системы управления умным домом Home Assistant OS на минипк GK3V. HAOS. 2024, Ноябрь
Anonim
Image
Image

** В настоящее время редактируется **

Для проекта HKU arduino я решил создать настольный органайзер с ЖК-экраном, который отображает вдохновляющие цитаты, чтобы поднять вас, когда вы поворачиваете горшок!

Я буду в основном рассказывать о технических деталях Arduino, если у вас есть что-то вроде деревянного ящика, чтобы спрятать ваш Arduino, и ЖК-дисплей в вашем личном органе может принимать любую желаемую форму.

Вещи, которые вам понадобятся

  • * arduino uno
  • горшок метр
  • * штекерные протяжные провода
  • * ЖК-модуль! Со считывателем SD-карт! (У меня есть arduino tft LCD)
  • * карта micro SD
  • * дерево (я переработал старые мини-ящики и использовал некоторые запасные деревянные детали, убедитесь, что вы можете хотя бы сформировать небольшую коробку, чтобы спрятать ваш Arduino!

Шаг 1: Настройка Potmeter на Arduino

Настройка Potmeter на Arduino
Настройка Potmeter на Arduino

подключите горшок метр, как показано на картинке

чтобы запустить горшок-метр

Перед настройкой вам нужно будет начать с некоторых переменных в верхней части скетча:

код:

const int analogInPin = A0; // Аналоговый входной вывод, к которому подключен потенциометр

int sensorValue = 0; // значение считывается из банка int outputValue = 0; // вывод значения на ШИМ (аналоговый выход)

На рисунке 2 я показываю, как потенциометр отображается в пустом цикле.

код:

// считываем аналог по значению:

sensorValue = analogRead (analogInPin); // сопоставляем его с диапазоном аналогового выхода: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // изменяем значение аналогового выхода:

stuffToPrint.toCharArray (распечатка, 9); // статический текст myScreen.setTextSize (1);

Serial.print ("датчик ="); Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);

задержка (50);

это отображает аналоговые данные от потенциометра в диапазон от 0 до 255, мы будем использовать этот диапазон для управления нашим слайд-шоу на ЖК-дисплее.

Если вам нужна помощь в настройке потенциометра; Я использовал код из этого полезного руководства, контакты точно такие же и будут работать с настройкой ЖК-дисплея в следующих шагах.

www.toptechboy.com/arduino/lesson-11-arduin…

Шаг 2: Настройка ЖК-дисплея

Настройка ЖК-дисплея
Настройка ЖК-дисплея

Установите контакты, как в примере выше.

Когда все будет сделано правильно, ваш экран загорится белым.

Если вам нужна дополнительная помощь или вы хотите использовать пример кода для тестирования дисплея, вы можете увидеть официальное руководство для этого модуля и его примеры кода здесь

на следующем шаге мы частично будем использовать «рисование изображения с SD-карты».

Шаг 3. Настройка слайд-шоу

Настройка слайд-шоу
Настройка слайд-шоу

Теперь, когда у нас настроены Potmeter и LCD, мы можем настроить «слайд-шоу», используя отображаемые значения Potmeter.

Используя диапазон от 0 до 255, мы можем указать определенный диапазон, в котором мы можем запустить Arduino для отображения некоторого контента на ЖК-дисплее.

Первый пример, как показано на изображении:

if (outputValue <51) {// диапазон до единицы if (rangeOne == true) {rangeTwo = true; myScreen.setRotation (90); myScreen.background (0, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text («Привет, замечательный», 10, 50); myScreen.text ("поверните штифт> в", 10, 60); myScreen.text («получить поддержку.», 10, 70); rangeOne = ложь;

Если потенциометр переключается на диапазон ниже 51, на экране отображается (в портретном режиме = поворот на 90) какой-то текст.

Чтобы иметь возможность отображать изображение, убедитесь, что ваш вывод SD CS определен правильно, иначе Arduino не сможет инициализировать SD (поэтому обязательно проверьте свои провода !!)

Если вы хотите проверить контакты ЖК-дисплея, обратитесь к официальному руководству по «подключению экрана»

Я определил свой вывод SD CS как 4, потому что, например, я перепутал свои провода! - Я рад поделиться этой маленькой ошибкой, потому что она сэкономит вам много времени на поиск в Интернете ошибки «Не удалось инициализировать». На некоторых форумах говорится, что исправление заключается в наличии определенной модели SD-карты. Поэтому перед покупкой новых SD-карт проверьте свою проводку!

Шаг 4: Пример полного кода

#включают

#include // Библиотека для конкретного оборудования #include

#define SD_CS 4 #define CS 10 #define DC 9 #define RESET 8

const int analogInPin = A0; // Аналоговый входной контакт, к которому подключен потенциометр

int sensorValue = 0; // значение считывается из банка int outputValue = 0; // вывод значения на ШИМ (аналоговый выход) bool rangeOne = true; bool rangeTwo = true; bool rangeThree = true; bool rangeFour = true; bool rangeFive = true;

TFT myScreen = TFT (CS, DC, СБРОС);

Изображение PImage; const char printout [9];

void setup () {Serial.begin (9600); myScreen.begin (); // пытаемся получить доступ к SD-карте Serial.print («Инициализация SD-карты…»); если (! SD.begin (SD_CS)) {Serial.println ("не удалось!"); возвращение; } Serial.println («ОК!»);

// инициализируем и очищаем экран GLCD myScreen.begin (); myScreen.background (255, 255, 255);

} void loop () {// считываем аналог в значении: sensorValue = analogRead (analogInPin); // сопоставляем его с диапазоном аналогового выхода: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // изменяем значение аналогового выхода:

stuffToPrint.toCharArray (распечатка, 9); // статический текст myScreen.setTextSize (1);

Serial.print ("датчик ="); Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);

задержка (50);

if (outputValue to ", 10, 60); myScreen.text (" получить поддержку. ", 10, 70); rangeOne = false;}} if (outputValue> 52 && outputValue 102 && outputValue 154 && outputValue <205) {/ / диапазон четыре if (rangeFour == true) {rangeThree = true; rangeFive = true; myScreen.setRotation (90); myScreen.background (255, 255, 255); // очищаем изображение на экране = myScreen.loadImage ("quote2.bmp "); // вывод изображения на экран myScreen.image (image, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text (« Я так горжусь », 10, 50); myScreen.text ("из вас!", 10, 60); rangeFour = false;}}

если (outputValue> 206 && outputValue

Рекомендуемые: