Re,
Thank you for your reply rapide.
I know there is a VFD and not an LCD, excuse me for using this term.
The self-test works perfectly when I connect pin 16 to gnd, there are all the characters that scroll.
I had not seen that consumption of VFD could exeder 500ma, I'll try with a separate power supply.
I never managed to write something on the VFD with arduino.
The baud rate is set to 9600 on the VFD (no bridge J1 or J2) and the same for the arduino.
Here is a sample code that I tried (I also tried with Serial.write)
What do you think is most likely the problem area?
If you want to verify that signal is getting to pin 19 of the VFD, you could use an oscilloscope, or put a led with 3k resistor there and watch (ever 2 seconds). Is a signal showing up on pin 19?
I tried with a separate power supply, and the VFD display weird characters.
I tried to connect a LED and it glows permanence.
There are two bridges on the vfd J6 and J8 are connected but it does not say what it is in the documentation.
I tried with a separate power supply, and the VFD display weird characters.
Did you provide a common ground between the arduino and the VFD? It needs it.
I tried to connect a LED and it glows permanence.
The standby state of the serial is HIGH I do believe. So it may be easier to see if you connect the LED/resistor, between signal lead, and the +5 from arduino, so when the signal goes low, we can see a flicker. We need to detect a signal, or we have a problem.
With the LED between 5 and RXD, it is clear that it lights every 2 seconds
I put the gnd in common and there is more the weird characters but its still not working.
Here are photos of the VFD:
I put the gnd in common and there is more the weird characters but its still not working
Do these weird characters just change ever 2 seconds, or what?
Maybe try changing
Serial.print ("Hello World");
to
Serial.println ("Hello World");
In the photos, I didn't see any thing wired up. I also did not see any display. If you can get a photo of how is is wired to the arduino , and the displays it may be of help.
Sounds to me like a timing issue.
Look at the datasheet, there's a busy pin which you must check before writing data to the display.
Try to do it byte by byte and check the busy pin before writing.
Looks correct, but what are you expecting 13 to display? 13 = 0xD (hex) is a carriage return, it won't display anything on the screen. Try something like this:
int BusyPin = 2;
void setup()
{
Serial.begin(9600);
pinMode(BusyPin, INPUT);
}
const char msg[] = "Hello world!";
int i = 0;
void loop()
{
int State = digitalRead(BusyPin);
if (State == LOW)
{
Serial.write(msg[i++]);
if (i >= strlen(msg)) i = 0;
}
}