Hi all, I'm an Arduino freshman, trying to get my first project off the ground.
I have bought a bunch of Sure Electronics 3208 green LED matrices ([1]), and have wired one up to the Arduino following the instructions at [2].
This includes using the library from [3]. I've got everything wired up as specified (photo: [4]).
I have used a voltmeter, and the wiring seems to be OK. I also know that the LED matrix works, as I have tested it with a demo board from Sure.
I'm using the example code at [2]. The code compiles and uploads to the Arduino, but then, nothing happens. Not a single LED on the matrix lights up.
What am I missing?
EDIT: I should of course mention that I'm using an Arduino UNO.
The display has a group of 4 switches on the back to specify CS. Usually, CS2 is on, the rest off.
The code you are using seems to use CS1, so make sure those switches are set correctly.
Thanks florinc, I downloaded your code. It seems to be for an older Arduino (I have the Arduino Uno), but it compiled when I subsituted #include <WProgram.h> with #include <Arduino.h>.
Finally, I replaced parts of the ht1632_setup method with the code from your blog post, so that the program now looks like this: sure-3208-arduino-code-1 - Pastebin.com
However, still nothing on the LED matrix.
I'm feeling I'm missing something obvious here - but what? I'm a total Arduino newbie, so no suggestions are stupid suggestions.
I am looking at your photo.
In the ribbon cable, wire #1 is marked with red.
Vcc (the single red wire in your case) should be closer to wire #15, not wire #1 as in your photo.
The ribbon cable is connected to the BR1 socket of the 3208. When I probe the BR2 socket with a voltmeter, I get these readings:
Pin 3 (CS1), 6 (RD), 10 (SYNC), 12-16 (+5V): +5V
Pin 5 (WR): +2V
Pin 7 (DATA): +3V
All others: 0V
Does this seem reasonable? I guess the WR and DATA values are simply due to the fact that they are alternating between +5 and 0, thus the low-voltage readings on my analogue voltmeter.
5V on CS1 looks suspicious.
Try moving to CS2 (pin 1). Also, don't forget the switch.
I would also check the CS wire and pin 8 of Arduino (try moving to pin 9, for example).
OK, tried moving the blue cable to pin 1 on the matrix and pin 9 on the Arduino. Altered the code so that
#define HT1632_CS 9
and set the dip switches to CS2.
The wiring is now identical to the attached diagram.
No change, except that pin 1 now reads +5V.
Are you sure about the ht1632_sendcmd(HT1632_CMD_MSTMD);?
From ht1632.h: #define HT1632_CMD_MSTMD 0x14 /* CMD= 0001-01xx-x Master Mode */, but from what I can see in the
HT1632C datasheet (http://www.holtek.com/pdf/consumer/ht1632cv120.pdf), Master Mode is 0001-10XX-X.
EDIT: OK, now I see that 0001-10XX-X (0x18) is refered to as "RC Master Mode" in the datasheet, which is called HT1632_CMD_RCCLK - "Use on-chip clock" in ht1632.h, and ht1632_sendcmd(HT1632_CMD_RCCLK); is called from setup.
Anyway, I tried commenting out ht1632_sendcmd(HT1632_CMD_MSTMD), without any other result.
Oh, and I've tried several different LED matrixes (I have eight of them).
Got it! It was as simple as loose wiring. Seems the breadboard wires I got did not sit well in the IDC cable. By clutching the hole setup in my hand, I'm able to display text!
Florinc, thank you for your very kind help and extreme patience. As mentioned, I'm a total newbie on Arduino, so I was not looking for solutions in the right places.
I am glad you figured it out. There is really not much that can go wrong with that setup. Sometimes even the wires may be interrupted.
Keep us posted with the progress of your project(s).