The solution was to turn down the high-performance emitter by adding resistance in series. A 270Ω resistor was used to reduce the voltage from the Arduino’s output so a 910Ω resistor was added. Performance and reliability were greatly improved.
Resistors in series
Coding and testing continued. Values such as the delay between activating the light and reading from the sensor were modified. This value was thought to be zero but a value of five microseconds produced more reliable results. The number of samples taken to determine a good read started at ten but was increased to 300 which slowed the refresh rate down and eliminated interference from IR remote controls. The number of good reads - bad reads was capped at 7/10 or 210/300 in this case. Every good read got closer to 210 but a bad read would subtract from that running count.
Animation showing light being triggered
A video was narrated to describe the operation of the device and explain the zone where the sensor doesn't act reliably. Experiments were done to make the device act like a distance sensor but nothing could be done reliably. Without any modifications the assembly senses a hand so reflective material wasn't necessary. Holding a mirror to reflect the infrared beam back at the receiver greatly extended the range of the device. Reflective tape was purchased for this project but shouldn't be necessary. Code should be modularized so a single function can be added to the existing servo code and called as necessary. Existing code was posted below.
The shape of the emitter and receiver tubes may also have played a part in the reliability. There could have been light leaking out the backs of the tubes and interfering with results. A new model will be made which can also hold an LED for visual feedback of the device.
- Common OpenSCAD files
- Servo footprints for OpenSCAD.
- Arduino Code for wired keyboard
- Spreadsheet for chords.
- Wrist mount
- Terminal board
- Input voltage
- Make base for keyboard
- Magnet mounts
- Enclosure for each controller
- Potentiometer access
- Activation switch
- Write instructions
- Compress and link to all files
- OpenSCAD files
- STL models
- Arduino code
- Make diagram with every part labeled
- Schematic for servo controller
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.
Disclaimer for http://24hourengineer.blogspot.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, are 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 email@example.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 claim property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.