Введение
Отлично. У меня есть полная информация из документации. Создаю карточку hardware: --- slug: weact-42-e-paper-module title: WeAct 4.2 E-paper Module excerpt: Низкопотребляющий дисп
Отлично. У меня есть полная информация из документации. Создаю карточку hardware:
slug: weact-42-e-paper-module title: WeAct 4.2 E-paper Module excerpt: Низкопотребляющий дисплей E-ink 4.2 дюйма с разрешением 400×300 пикселей, интерфейс SPI, питание 3.3V categoryIds: [] tagIds: [] author: SLDV LAB relatedIds: [] type: hardware manufacturer: WeAct model: WeAct 4.2 E-paper Module purpose: Отображение статического и динамического контента для портативных устройств, электронных ценников, смарт-устройств, читалок и промышленных приложений hardwareGroupId: displays sensorGroupId: [] platformIds: [esp32, arduino] interfaceIds: [spi] compatibleIds: [] voltage: 3.3V difficulty: intermediate
moduleOverview: | E-paper дисплей на базе E-ink технологии с соотношением сторон 4:3. Использует SPI для общения с микроконтроллером. Высокая видимость при естественном свете (бумагоподобный вид), питание только во время обновления. Требует управления пинами DC (Data/Command), RST (Reset) и мониторинга BUSY. Время обновления ~2 сек; не предназначен для частых быстрых обновлений. Рабочий диапазон температур -20…70°С.
characteristics:
- key: display_size label: Размер диагонали valueType: text value: 4.2 дюйма unit: дюйм filterable: true
- key: resolution label: Разрешение valueType: text value: 400×300 пикселей filterable: true
- key: colors label: Цвета valueType: option value: Чёрный и белый filterable: true
- key: interface label: Интерфейс valueType: option value: SPI filterable: true
- key: operating_voltage label: Рабочее напряжение valueType: text value: 3.3V filterable: true
- key: power_consumption label: Потребление мощности valueType: text value: Сверхнизкое (только при обновлении) filterable: false
- key: refresh_time label: Время обновления valueType: text value: ~2 секунды unit: сек filterable: false
- key: viewing_angle label: Угол обзора valueType: number value: 180 unit: градусов filterable: true
- key: operating_temp label: Рабочая температура valueType: range value: -20…70 unit: °C filterable: false
- key: storage_temp label: Температура хранения valueType: range value: -25…80 unit: °C filterable: false
pins:
- sensorPin: VCC boardPin: "1" note: Питание 3.3V
- sensorPin: GND boardPin: "2" note: Общий провод
- sensorPin: DIN boardPin: "3" note: SPI MOSI (данные в модуль)
- sensorPin: CLK boardPin: "4" note: SPI SCK (тактовый сигнал)
- sensorPin: CS boardPin: "5" note: Chip Select (активный низкий уровень)
- sensorPin: DC boardPin: "6" note: Data/Command режим (GPIO)
- sensorPin: RST boardPin: "7" note: Reset (активный низкий уровень)
- sensorPin: BUSY boardPin: "8" note: Статус занятости (высокий при обновлении)
documentation:
- name: WeAct 4.2 E-paper Module на Cirkit Designer url: https://docs.cirkitdesigner.com/component/3198adf1-5d19-4ccf-b704-b527f855cf85/weact-42-e-paper-module kind: component_docs
libraries: []
offers: []
integration: prompt: | Укажите микроконтроллер (ESP32, Arduino и т.д.), среду разработки и задачу (вывод текста, графики, статус). Затем опишу подключение SPI, инициализацию, управление пинами DC/RST/BUSY, пример кода и обработку ошибок обновления. settings: - label: SPI_CLK_PIN value: "зависит от платы" note: SPI часы подключаются к CLK (pin 4) - label: SPI_MOSI_PIN value: "зависит от платы" note: SPI данные подключаются к DIN (pin 3) - label: CS_PIN value: "выберите свободный GPIO" note: Chip Select для e-paper модуля - label: DC_PIN value: "выберите свободный GPIO" note: Data/Command контроль - label: RST_PIN value: "выберите свободный GPIO" note: Reset сигнал - label: BUSY_PIN value: "выберите свободный GPIO" note: Статус отслеживания (опционально Input) examples: - title: Базовый пример инициализации (псевдокод) language: cpp code: | // Предполагается использование библиотеки e-paper (зависит от поставщика) #include <SPI.h>
#define CS_PIN 10
#define DC_PIN 8
#define RST_PIN 9
#define BUSY_PIN 7
void setup() {
Serial.begin(115200);
SPI.begin();
pinMode(CS_PIN, OUTPUT);
pinMode(DC_PIN, OUTPUT);
pinMode(RST_PIN, OUTPUT);
pinMode(BUSY_PIN, INPUT);
digitalWrite(RST_PIN, LOW);
delay(100);
digitalWrite(RST_PIN, HIGH);
delay(200);
// Инициализация дисплея (требует библиотеки поставщика)
}
void loop() {
// Проверка BUSY перед отправкой команд
while (digitalRead(BUSY_PIN) == HIGH) {
delay(10); // Ждём окончания предыдущего обновления
}
// Отправка данных на e-paper через SPI
// Минимальное время между обновлениями ~2 сек
}
note: Требуется специфичная библиотека производителя для работы с дисплеем
- title: Отправка команды (тип: SPI с DC контролем)
language: text
code: |
1. Установить DC = 0 для команды
2. Отправить байт команды через SPI
3. Установить DC = 1 для данных
4. Отправить данные пикселей
5. Инициировать обновление дисплея
6. Дождаться BUSY = LOW
note: Контроллер e-paper следует общему SPI протоколу с управлением DC режимом
