This breadboard version of a Simon Says game is a great way to try your skills on a new microcontroller platform. The eight-pin chip seen in the center of the board is an LPC810 microcontroller which [Hartmut Wendt] is just getting started with. It’s a rare example of a low-pin count DIP package for an ARM device (Cortext M0). The breadboard friendly footprint makes it easy to work with, but you could pull off the same build with a dev board like one of the STM discovery offerings or the Stellaris Launchpad boards.
Why is this a good way to learn? It involves input, output, and generating waveforms which we’d assume means timers (we didn’t dig through the source code which is available form the page linked above). Each colored button has a matching LED which blinks out the pattern which you must replicate to keep the game going; you know how Simon Says works, right?. At the same time a different pitch is played by the speaker on the right.
Another good exercise would be to take [Hartmut’s] code and port it for a different chip, be it ARM or otherwise.
Continue reading “Simon Says learn how to program ARM chips”
If you’ve run out of I/O pins on a project and need a way to add user input you can find a slew of port expanders that work with various communications protocols like I2C and 1-Wire. But if you just want to add in some buttons without reaching for an extra IC you’ll love this hack. [John Boxall] shows how to add four buttons using one ADC pin.
The concept is nothing new. The buttons make up an R2R resistive ladder. When one of them is pressed, it completes the circuit for a voltage divider. The results are measured by the analog-to-digital converter of an IC to tell which button was pressed. The difficult part is calculating the resistor values. [John] is using eight resistors made up of just two different values. Every button and every combination of buttons has a unique voltage result which can be discerned by the chip. He even made a truth table so you don’t have to.
The example circuit seen in the video after the break uses an Arduino. But this concept is directly applicable to any microcontroller. And it should be quite easy to use an ADC interrupt to drive all of the button-read events. Continue reading “R2R ladder connects multiple buttons to one ADC pin”
One of the perks of writing for Hackaday is that we often find hacks that we’ve been meaning to do ourselves. Here’s one that will let us fix our borked ASUS computer monitor buttons. [Silviu] has the same monitor we do, an ASUS VW202, and had the same problem of stuck buttons. We already cracked ours open and realized that the buttons are not easily replaced (you’ve got to source the right one). We just unstuck the offender and vowed not to press that button again, but [Silviu] actually figured out how to disassemble and repair the PCB mount switches.
As with most consumer electronics these days the worst part of the process is getting the monitor’s case apart. The plastic bezel has little spring tabs all around it that must be gently pried apart. Once the PCB which hosts the buttons was removed, he took the metal housing off of the broken switch. Inside he found that a bit of metal particulate (leftovers from manufacturing?) were causing the problem. A quick cleaning with a cotton swab removed the debris and got the tactile switch working again.
A system is only as strong as its weakest link and [Roberto Barrios] found that on the sixth generation iPod nano the buttons are the problem. It makes sense that the buttons would be exposed to wear since they’re movable parts. The issue isn’t one of contacts or springs wearing out, but how the buttons are assembled. Each consist of a couple of parts; the tactile piece that you see and press, the electrical switch which converts that force into an electrical signal, and a shim that bridges the gap between the two.
After two months of use the iPod [Roberto] was fixing had stopped responding to presses of the Power button. It turns out that the shims are attached with double-sided tape. Inspection of the internals revealed that the shim had slid to one side and no longer made contact with the electrical system. His solution was to remove the tape and clean off the goo, then reattach the shims using “two-part metal cement”.
With the shim back in place all is well but he made sure to execute this fix on all of the buttons before reassembly.
Yep, if you’ve got a button that needs pushing, this is one way to do it. [Travis] combined an old alarm clock with a car door-lock actuator and minimal logic circuitry to make this happen. When the alarm time is reached, the adjustable actuator comes down to press whichever button has been placed under it. In the video after the break he’s using it to schedule the start time for his Roomba, make his coffee, heat his pizza, or pointlessly press the clock’s own snooze button (classic). We think this is just begging to be used with a Rube-goldberg setup, perhaps to topple to dominos that other robot took the time to set up. Oh wait… that shows up in the video too. Fantastic!
Continue reading “This hack really pushes our buttons”
Last month we asked you to send in your debounce code. You didn’t disappoint and it’s time to share the code received. There were some guideline for sending in code so if you don’t see yours here, it probably didn’t follow the rules, sorry. We also tried to weed out code that using delay loops for debounce. These tend to be a poor way to handle inputs because they monopolize the processor.
We wanted to add upvote/downvote buttons to each set of code to give some idea of a group consensus on code quality but there’s no good system available for multiple up/down vote widgets on one wordpress page. This results in a huge code dump for any one person to go through. If you’ve got any ideas on how to better organize this let us know: email@example.com.
We make no guarantees that this code is safe to use, or that it even works. Test it carefully before using for important tasks.
Join us after the break for a whirlwind of code examples.
[Patman2700] has a nice scope for his paintball gun that uses a red dot instead of cross-hairs. The problem is that he kept forgetting to turn it off which ended up running the batteries down frequently. His solution to the problem was to get rid of the toggle switch used to turn it on and replace it will a home-made momentary push button switch. Now he presses the switch to aim and doesn’t waste juice when he’s running around, trying not to get pelted with paint.
Since this is used outside he wanted it to be water-tight. The switch is built using materials we’ve seen in previous diy switches; adhesive-backed copper sheets for conductors, foam to keep them separated until pressed, and plastic as a support. Copper is applied to the plastic base, with a ring of foam separating the base from the second layer of copper. When squeezed, the two layers of copper come in contact to complete the circuit. To make it work a bit better [Patman2700] added a dab of solder in the center of the bottom copper layer so there is less distance between conductors, and used extra foam to build up a bump in the center of the assembly for a better ‘button’ feel. The whole thing is encased in shrink-wrap with the seams sealed with super glue to keep moisture at bay.