At the top of the faceplate, I had two buttons. One was a single-player button, and one was a two-player version. They were intended to switch between modes which provided accompaniment or not. Unfortunately, I could not get the single-player button to work at all.
I wrote a test program to monitor the inputs, but it showed that the button refused to switch states. I reflowed the solder to make sure it wasn't a bad connection. Finally, I tried looking at the analog value and found that it was a messy state indeed. Both of the buttons were giving each other cross-talk, and even with the built-in pull-up resistors, one could drive the other low. Perhaps I could have fixed this with physical resistors, but the incoming data was reliable, even if it was a mess.
A sort of debouncing algorithm smoothed out the data by ensuring that each input was held low for a certain number of program cycles before it would be recognized. This worked well, and the buttons lost all of their erratic behavior and operated exactly like I would expect. Additionally, this code will not interfere with another piece of hardware that is working correctly.
The rest of the posts for this project have been arranged by date.
First time here?
Completed projects from year 1
Completed projects from year 2
Completed projects from year 3
Completed projects from year 4
Completed projects from year 5
Completed projects from year 6
Disclaimer for http://24hourengineer.blogspot.com and 24HourEngineer.com
This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.
All information in this blog, or linked by this blog, is not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property, or similar, is the responsibility of those involved in the replication.
All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.
Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.
2019-12-27
I wrote a test program to monitor the inputs, but it showed that the button refused to switch states. I reflowed the solder to make sure it wasn't a bad connection. Finally, I tried looking at the analog value and found that it was a messy state indeed. Both of the buttons were giving each other cross-talk, and even with the built-in pull-up resistors, one could drive the other low. Perhaps I could have fixed this with physical resistors, but the incoming data was reliable, even if it was a mess.
A sort of debouncing algorithm smoothed out the data by ensuring that each input was held low for a certain number of program cycles before it would be recognized. This worked well, and the buttons lost all of their erratic behavior and operated exactly like I would expect. Additionally, this code will not interfere with another piece of hardware that is working correctly.
Reliably bad switch readings
The rest of the posts for this project have been arranged by date.
First time here?
Completed projects from year 1
Completed projects from year 2
Completed projects from year 3
Completed projects from year 4
Completed projects from year 5
Completed projects from year 6
Disclaimer for http://24hourengineer.blogspot.com and 24HourEngineer.com
This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.
All information in this blog, or linked by this blog, is not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property, or similar, is the responsibility of those involved in the replication.
All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.
Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.
2019-12-27
Comments
Post a Comment