====== IclcdCreateChar() ====== ''IclcdCreateChar()'' registers a custom character. {{:en-us_commands:reference:iclcdcreatechar.svg?900|IclcdCreateChar command operation flow}} ''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 location''\\ ''const 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 ''Wire'' transfers or I²C slave callbacks concurrently with ''Iclcd...()''. 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:iclcdbegin|IclcdBegin() View detailed description]] * [[:en-us_commands:reference:iclcdclear|IclcdClear() View detailed description]] * [[:en-us_commands:reference:iclcdhome|IclcdHome() View detailed description]] * [[:en-us_commands:reference:iclcdsetcursor|IclcdSetCursor() View detailed description]] * [[:en-us_commands:reference:iclcddisplay|IclcdDisplay() View detailed description]] * [[:en-us_commands:reference:iclcdcursor|IclcdCursor() View detailed description]] * [[:en-us_commands:reference:iclcdblink|IclcdBlink() View detailed description]] * [[:en-us_commands:reference:iclcdbacklight|IclcdBacklight() View detailed description]] * [[:en-us_commands:reference:iclcdscrollleft|IclcdScrollLeft() View detailed description]] * [[:en-us_commands:reference:iclcdscrollright|IclcdScrollRight() View detailed description]] * [[:en-us_commands:reference:iclcdtextdirection|IclcdTextDirection() View detailed description]] * [[:en-us_commands:reference:iclcdautoscroll|IclcdAutoscroll() View detailed description]] * [[:en-us_commands:reference:iclcdwrite|IclcdWrite() View detailed description]] * [[:en-us_commands:reference:iclcdcommand|IclcdCommand() View detailed description]] * [[:en-us_commands:reference:iclcdprint|IclcdPrint() View detailed description]] [[:en-us_commands:builtin|← Built-in Command List]]