en-us_commands:reference:iclcdcreatechar
Table of Contents
IclcdCreateChar()
IclcdCreateChar() registers a custom character.
bool IclcdCreateChar(uint8_t location, const uint8_t charmap[8], uint8_t device = 0)
Commands
| Command | Arguments | Return Value | Operation |
|---|---|---|---|
IclcdCreateChar(location, charmap, device) | uint8_t locationconst uint8_t charmap[8]uint8_t device = 0 | bool | Registers a custom character. |
Example
This example connects a 20×4 PCF8574 character LCD at address 0x27 to the MPAINO-8A8R(T) I2C port. Change the IclcdBegin() arguments if your LCD has a different address or size.
const uint8_t heart[8] = {0, 10, 31, 31, 14, 4, 0, 0}; bool lcdReady = false; void setup() { lcdReady = IclcdBegin(0x27, 20, 4); // Set the LCD address and display size. if (lcdReady) { IclcdCreateChar(0, heart); // Store custom character 0. IclcdWrite(0); // Write one character to the LCD. } } void loop() {}
Precautions
- PCF8574 connections use the same mapping as the existing CLCD library: P0=RS, P1=R/W, P2=Enable, P3=backlight, P4~P7=LCD D4~D7.
- Verify the LCD module's actual I²C address using its settings and I²C scan results.
- SDA/SCL can share the bus with other I²C devices, but addresses must not overlap.
- Do not run
Wiretransfers or I²C slave callbacks concurrently withIclcd…(). Iclcd transfers run at 100 kHz and then restore the previous TWI settings. - On MPAINO, using D20/D21 for external interrupts prevents simultaneous I²C use.
IclcdCommand()can change the LCD state directly. Use it only if you understand HD44780 commands.
Built-in Commands in the Same Category
en-us_commands/reference/iclcdcreatechar.txt · Last modified: by 127.0.0.1
