Hello,
I am relatively new to coding and I am working on pet project trying to hijack my vehicle's information LCD display. The display uses a New Japan Radio NJU6623 driver chip, here is a data sheet:
http://pdf.datasheetcatalog.com/datasheets/1150/455239_DS.pdf
I have been collecting bits of information and have pieced together the following code on an Uno based on the NJU6623 data sheet, but I can't for the life of me get anything to display Hoping someone might be able to point me in the right direction?
I anticipated this code to initialize the display and then display the text "slash128", as I have it commented. Unfortunately, nothing ever displays. When connected to the car it displays the car information correctly, so I know the display is in working order.
Thanks!
#include <SPI.h>
#define RS 8
#define AC 9
#define CS 10
void setup() {
// put your setup code here, to run once:
// Set pin modes to output
pinMode(RS, OUTPUT);
pinMode(AC, OUTPUT);
pinMode(CS, OUTPUT);
// Set SPI Parameters
SPI.beginTransaction(SPISettings(9600, MSBFIRST, SPI_MODE3));
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, HIGH); // Set Chip Select;
// Initialize Display
// Display On, Cursor Blink
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x0D);
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
// Entry Mode Set
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
// Clear Display
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x01);
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
}
void loop() {
// put your main code here, to run repeatedly:
//Display "slash128"
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x80); // Set cursor at first character
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(RS, HIGH); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x73); // Lowercase "s"
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
Â
digitalWrite(RS, HIGH); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x6C); // Lowercase "l"
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(RS, HIGH); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x61); // Lowercase "a"
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(RS, HIGH); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x73); // Lowercase "s"
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(RS, HIGH); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x68); // Lowercase "h"
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(RS, HIGH); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x31); // Number "1"
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(RS, HIGH); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x32); // Number "2"
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(RS, HIGH); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
digitalWrite(CS, LOW); // Set Chip Select
SPI.transfer(0x38); // Number "8"
digitalWrite(CS, HIGH); // Set Chip Select
digitalWrite(RS, LOW); // Set Register Select (mode0)
digitalWrite(AC, LOW); // Set Address Counter (mode1)
}