Monday, August 26, 2013

Software Bug

I thought I ruined some of my IC shift registers due to my inexperience with hardware.  Turns out it was a bug I introduced in the duino sketch when i was cleaning up the comments and debugging output.  I cleaned up a little bit that pushes the shift register's serial shift-parallel load from low to high.  This was the "serial shift" part of the deal and a good reason for the shift register to stop shifting.

I suppose I should have more confidence in my hardware abilities... and less in my coding :)

Of course I spent way too much time troubleshooting and building and rebuilidng circuits than I should have before I looked at the code, but I gained some experience in the process... and tested my duino assembly a little more completely... although I still haven't messed with the analog ports.

I see how cluttered these relatively simple circuits can get on a breadboard, so I'm going to start looking for some options... maybe more breadboards.  I also have a nice tangled mess of resistors in my little plastic craft box.  Somewheres I saw someone mentioned getting a 3 ring binder with plastic inserts for collecting baseball cards.  I'm going to look into that and see if someone has a sticker template to print out resistor values along with the color codes, since I'm slow at learning my colors.

With my troubleshooting disaster behind me, I am ready to move on... maybe daisy chaining the shift registers and then reading an 8x8 "button" matrix with one of each shift register.  Then I'll open up the dartboard and see what's inside.

*EDIT*
Decided to add my troubleshooting sketch to my git, ShiftInBasic.  This is what I was messing with to find the problem with my circuit when I ended up finding the problem with my code.

And here's a pic of the circuit... you can see I got me an 8 bit dip switch which made things a little easier to test. And look at those professional solders on the Boarduino's breakout pins :)  I'm really glad I finally put the little bastard together, I am thoroughly enjoying his company.



Starting at the bottom right corner, the 7 yellow wires extend the 10K pull down resistors to the far-right ground rail.  Above them is the dip switch with 8 blue wires touching the middle 5v rail.  There are 7 yellow wires running from the dip switch to the 7 parallel input ports on the right of the shift register (which is "upside down" at the bottom of the small breadboard.  By upside down, I mean pin one is on the lower right instead of on the upper left).  The green wire coming from the dip switch runs to the first parallel input pin on the left of the shift register.  It's hard to see the other pull down resistor, but it is plugged in beside the green wire running up the left to the leftmost ground rail.  Finally, 2 yellow and 2 orange wires run up the left of the shift register to the duino's data ports on the upper left of the small breadboard.  From bottom to top, these are the Serial Shift-Parallel Load (yellow, to digital 8), the latch clock (yellow, to digital 9), the shift clock (orange, to digital 10) and the Serial Data Output (orange, to digital 11). The rest of the wires extend the 5v and ground rails and attach these to the duino and shift register.  

I'm messy.

Maybe I'll look into getting some software to make nice circuit diagrams.  I wasn't going to do all that here since all the examples that I link to tend to have really nice diagrams and better writing... but maybe I'll start putting some on here in case those links get broken in the future.  Maybe I will, I should write down a reminder. Someday, I suppose. 

No comments:

Post a Comment