I have the following code for my arduino, however the adafruit lcd display only prints the down arrow character and not the up arrow then the down arrow. (the loop function is empty so I didn't include it).
#include <Wire.h>
#include <Adafruit_RGBLCDShield.h>
#include <utility/Adafruit_MCP23017.h>
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
#define UP_ARROW 0
byte up[] = {4, 14, 31, 4, 4, 4, 0, 0};
#define DOWN_ARROW 1
byte down[] = {0, 0, 4, 4, 4, 31, 14, 4};
void setup() {
lcd.clear();
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.createChar(UP_ARROW, up);
lcd.write(UP_ARROW);
lcd.setCursor(1,0);
lcd.createChar(DOWN_ARROW, down);
lcd.write(DOWN_ARROW);
}
Turns out my problem is that creating a character resets the cursor position to (0,0), so when I set the cursor to (0,1) and create the down arrow, it resets the cursor to (0,0). My solution was to create the custom characters first and then set the cursor and write them.