Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
arduino_boards:multiplex_switches [2020/03/30 18:38]
admin [Links]
arduino_boards:multiplex_switches [2020/06/11 22:13] (current)
Line 1: Line 1:
 ===== Multiplex Switches with one Analog Input ===== ===== Multiplex Switches with one Analog Input =====
  
-With an simple R-2R ladder one can build an easy multiple switch detection for an Arduino with just one analog input. That way one needs maybe some more components than in a simple resistor network but on the other hand one can just use the simple [[https://​www.arduino.cc/​reference/​en/​language/​functions/​math/​map/​|map]] and the [[https://​www.arduino.cc/​reference/​en/​language/​structure/​control-structure/​switchcase/​|switch...case]] function to detect the switch position. And additional multi-switch detection is super easy, too.+{{:​arduino_boards:​multiplex_switch.jpg?​600|}}\\ 
 + 
 +With an simple ​[[https://​en.wikipedia.org/​wiki/​Resistor_ladder|R-2R ladder]] one can build an easy multiple switch detection for an Arduino with just one analog input. That way one needs maybe some more components than in a simple resistor network but on the other hand one can just use the simple [[https://​www.arduino.cc/​reference/​en/​language/​functions/​math/​map/​|map]] and the [[https://​www.arduino.cc/​reference/​en/​language/​structure/​control-structure/​switchcase/​|switch...case]] function to detect the switch position. And additional multi-switch detection is super easy, too.
  
 ---- ----
 ==== Paper PCB ==== ==== Paper PCB ====
 +{{:​arduino_boards:​multiplexed-buttons_11.jpg?​400|}}\\
 +{{ :​arduino_boards:​multiplexed-buttons_11.zip |}}\\
  
 +----
 +==== Code ====
 +
 +{{ :​arduino_boards:​multiplex_button_02.zip |}}
  
 ---- ----
 ==== Mapping Problem ==== ==== Mapping Problem ====
  
-Unfortunately the map function didn't spread the mapped numbers even. The last number is assigned to the last number ​to map. All the others are equally mapped.+Unfortunately the map function didn't spread the mapped numbers even. Just the last number is assigned to the last mapping ​number. All the others are equally mapped.\\
 [[https://​www.best-microcontroller-projects.com/​arduino-map.html]] [[https://​www.best-microcontroller-projects.com/​arduino-map.html]]
 +
 +To spread the results equally ​ from 0 to 15 I used in the code the mapping function like that:
 +   ​map(my_value,​ -32, 992, 0, 16)
  
 ---- ----
 +==== License ====
 +
 +The Multiplex Button board was designed by **Wolfgang Spahn** 2020.\\
 +It is licensed under a [[http://​creativecommons.org/​licenses/​by-nc-sa/​4.0/"​|Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License]].
 +
 +<​html>​
 +<a rel="​license"​ href="​http://​creativecommons.org/​licenses/​by-nc-sa/​4.0/"><​img alt="​Creative Commons License"​ style="​border-width:​0"​ src="​https://​i.creativecommons.org/​l/​by-nc-sa/​4.0/​88x31.png"​ /></​a> ​
 +</​html>​
 +
 +----
 +