This week's project involves the creation of an application that interfaces with an
input or output device. I decided to make a test for my final project. Therefore,
this week's project involves making a charlieplexed LED array and creating a software
to manipulate it. The software will create an array of dots. When the mouse
hovers over a dot the corresponding LED will light up.
Charlieplexed LED Array
First, I designed and 7x6 LED Array following this schematic.
LED Array cut
However because the size of our PCB boards is relatively small I decided that the
LED's are too close to each other so I removed a row in the new design.
New LED Array 5x6
This array was pretty successful. I stuffed it and run some simple code to check if
it is working. It seems like everything was working the way it should except from the
LEDs that were in the diagonal of the array (1.1,2.2...). I was trying to debug it
for a long time but unfortunately I haven't found the problem yet.
Then, I made the connection with Processing. I uploaded the standard firmata on the
board and used the Arduino library in processing. The instructions for this procedure
can be found here: http://playground.arduino.cc/Interfacing/Processing
There were two steps I had to follow then. First, display the array, which when the
mouse pointer hovers over a circle it grows larger. Secondly, I had to establish the
connection of the interface with the Arduino. The Arduino library for Processing allows
the user to use almost the same commands as the ones used in Arduino to read and
write values on the board.
At the beginning, the charlieplexing would not work and I would get weird combinations
of LEDs. However, the array was functional, because I had it tested with the Arduino code.
I could see with the multimeter that the values I would get from the Arduino were not
correct even thought the code was right. After many attempts of debugging, I tried using
other pins that the ones I was using until then(1-6). It turns out that this was the
problem. I used pins 7-13 and the code worked fine.
Final Result