{"id":1664,"date":"2022-11-03T09:30:35","date_gmt":"2022-11-03T01:30:35","guid":{"rendered":"https:\/\/www.strongd.net\/?p=1664"},"modified":"2022-11-03T09:38:13","modified_gmt":"2022-11-03T01:38:13","slug":"analog-joystick-with-arduino","status":"publish","type":"post","link":"https:\/\/www.strongd.net\/?p=1664","title":{"rendered":"Analog JoyStick with Arduino"},"content":{"rendered":"<p>The Analog Joystick is similar to two potentiometers connected together, one for the\u00a0<b>vertical<\/b>\u00a0movement (Y-axis) and other for the\u00a0<b>horizontal<\/b>\u00a0movement (X-axis). The joystick also comes with a\u00a0<b>Select switch<\/b>. It can be very handy for retro gaming, robot control or RC cars. So let&#8217;s understand how it works!<img decoding=\"async\" class=\"img-responsive\" src=\"https:\/\/www.exploreembedded.com\/blog\/wp-content\/uploads\/img-collections\/joystick\/dsc09428.jpg\" alt=\"dsc09428.jpg\" \/><\/p>\n<h1><span id=\"Basics\" class=\"mw-headline\">Basics<\/span><\/h1>\n<p>The Arduino Uno or any other Arduino board that uses Atmega328 as the Microcontroller has ADC resolution of 10 bits. Hence the values on each analog channel can vary from 0 to 1023. Now connecting the VRx to A0 and VRy to A1 analog inputs respectively should show values as shown in the image below.<\/p>\n<div class=\"floatnone\"><a class=\"image fancybox\" href=\"https:\/\/exploreembedded.com\/wiki\/File:Joy_diagram.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"img-responsive\" src=\"https:\/\/exploreembedded.com\/wiki\/images\/6\/6c\/Joy_diagram.jpeg\" alt=\"Joy diagram.jpeg\" width=\"2250\" height=\"1688\" \/><\/a><\/div>\n<p>The home position for the stick is at\u00a0<b>( x,y:511,511)<\/b>. If the stick is moved on X axis from one end to the other, the X values will change from 0 to 1023 and similar thing happens when moved along the Y axis. On the same lines you can read position of the stick anywhere in upper half hemisphere from combination of these values.<\/p>\n<h1><span id=\"Hookup\" class=\"mw-headline\">Hookup<\/span><\/h1>\n<div class=\"floatnone\"><a class=\"image fancybox\" href=\"https:\/\/exploreembedded.com\/wiki\/File:0_Joystick_with_Arduino_bb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"img-responsive\" src=\"https:\/\/exploreembedded.com\/wiki\/images\/5\/5f\/0_Joystick_with_Arduino_bb.png\" alt=\"0 Joystick with Arduino bb.png\" width=\"1356\" height=\"798\" \/><\/a><\/div>\n<p>So let&#8217;s print the values on the terminal so that we can verify the working!<\/p>\n<h1><span id=\"Raw_Sketch\" class=\"mw-headline\">Raw Sketch<\/span><\/h1>\n<div class=\"mw-geshi mw-code mw-content-ltr\" dir=\"ltr\">\n<div class=\"c source-c\">\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"co2\"><span class=\"com\">#define<\/span><span class=\"pln\"> joyX A0<\/span><\/span><\/li>\n<li class=\"L1\"><span class=\"co2\"><span class=\"com\">#define<\/span><span class=\"pln\"> joyY A1<\/span><\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L3\"><span class=\"kw4\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"> setup<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span> <span class=\"br0\"><span class=\"pun\">{<\/span><\/span><\/li>\n<li class=\"L4\"><span class=\"typ\">Serial<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"kwd\">begin<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"nu0\"><span class=\"lit\">9600<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L5\"><span class=\"br0\"><span class=\"pun\">}<\/span><\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L7\"><span class=\"kw4\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"> loop<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span> <span class=\"br0\"><span class=\"pun\">{<\/span><\/span><\/li>\n<li class=\"L8\"><span class=\"co1\"><span class=\"com\">\/\/ put your main code here, to run repeatedly:<\/span><\/span><\/li>\n<li class=\"L9\"><span class=\"pln\"> xValue <\/span><span class=\"sy0\"><span class=\"pun\">=<\/span><\/span><span class=\"pln\"> analogRead<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\">joyX<\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L0\"><span class=\"pln\"> yValue <\/span><span class=\"sy0\"><span class=\"pun\">=<\/span><\/span><span class=\"pln\"> analogRead<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\">joyY<\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L2\"><span class=\"co1\"><span class=\"com\">\/\/print the values with to plot or view<\/span><\/span><\/li>\n<li class=\"L3\"><span class=\"typ\">Serial<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"kwd\">print<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\">xValue<\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L4\"><span class=\"typ\">Serial<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"kwd\">print<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"st0\"><span class=\"str\">&#8220;<\/span><span class=\"es1\"><span class=\"str\">\\t<\/span><\/span><span class=\"str\">&#8220;<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L5\"><span class=\"typ\">Serial<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"pln\">println<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\">yValue<\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L6\"><span class=\"br0\"><span class=\"pun\">}<\/span><\/span><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<h1><span id=\"Mapping\" class=\"mw-headline\">Mapping<\/span><\/h1>\n<p>It is usually not enough to read the analog values, you might want to map it to a display or any other interface. So let&#8217;s map these these values to a 8&#215;8 led matrix. So that we can move the pixel with the joystick. You can easily change this to map to a graphic or a OLED display.<a class=\"image fancybox\" href=\"https:\/\/exploreembedded.com\/wiki\/File:Matrx_LED_and_Joystick_with_Arduino_bb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"img-responsive\" src=\"https:\/\/exploreembedded.com\/wiki\/images\/e\/ea\/Matrx_LED_and_Joystick_with_Arduino_bb.png\" alt=\"Matrx LED and Joystick with Arduino bb.png\" width=\"2127\" height=\"1350\" \/><\/a><\/p>\n<div class=\"mw-geshi mw-code mw-content-ltr\" dir=\"ltr\">\n<div class=\"c source-c\">\n<ol class=\"linenums\">\n<li class=\"L0\"><span class=\"co2\"><span class=\"com\">#include<\/span> <span class=\"str\">&#8220;LedControl.h&#8221;<\/span><\/span><\/li>\n<li class=\"L1\"><span class=\"co2\"><span class=\"com\">#define<\/span><span class=\"pln\"> joyX A0<\/span><\/span><\/li>\n<li class=\"L2\"><span class=\"co2\"><span class=\"com\">#define<\/span><span class=\"pln\"> joyY A1<\/span><\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L4\"><span class=\"kw4\"><span class=\"kwd\">int<\/span><\/span><span class=\"pln\"> xMap<\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"pln\"> yMap<\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"pln\"> xValue<\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"pln\"> yValue<\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L5\"><span class=\"typ\">LedControl<\/span><span class=\"pln\"> lc<\/span><span class=\"sy0\"><span class=\"pun\">=<\/span><\/span><span class=\"typ\">LedControl<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"nu0\"><span class=\"lit\">12<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"nu0\"><span class=\"lit\">11<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"nu0\"><span class=\"lit\">10<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"nu0\"><span class=\"lit\">1<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L7\"><span class=\"kw4\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"> setup<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span> <span class=\"br0\"><span class=\"pun\">{<\/span><\/span><\/li>\n<li class=\"L8\"><span class=\"typ\">Serial<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"kwd\">begin<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"nu0\"><span class=\"lit\">115200<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L9\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L0\"><span class=\"pln\"> lc<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"pln\">shutdown<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"nu0\"><span class=\"lit\">0<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"kw2\"><span class=\"kwd\">false<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L1\"><span class=\"coMULTI\"><span class=\"com\">\/* Set the brightness to a medium values *\/<\/span><\/span><\/li>\n<li class=\"L2\"><span class=\"pln\"> lc<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"pln\">setIntensity<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"nu0\"><span class=\"lit\">0<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"nu0\"><span class=\"lit\">8<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L3\"><span class=\"coMULTI\"><span class=\"com\">\/* and clear the display *\/<\/span><\/span><\/li>\n<li class=\"L4\"><span class=\"pln\"> lc<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"pln\">clearDisplay<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"nu0\"><span class=\"lit\">0<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L5\"><span class=\"br0\"><span class=\"pun\">}<\/span><\/span><\/li>\n<li class=\"L6\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L7\"><span class=\"kw4\"><span class=\"kwd\">void<\/span><\/span><span class=\"pln\"> loop<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span> <span class=\"br0\"><span class=\"pun\">{<\/span><\/span><\/li>\n<li class=\"L8\"><span class=\"co1\"><span class=\"com\">\/\/ put your main code here, to run repeatedly:<\/span><\/span><\/li>\n<li class=\"L9\"><span class=\"pln\"> xValue <\/span><span class=\"sy0\"><span class=\"pun\">=<\/span><\/span><span class=\"pln\"> analogRead<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\">joyX<\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L0\"><span class=\"pln\"> yValue <\/span><span class=\"sy0\"><span class=\"pun\">=<\/span><\/span><span class=\"pln\"> analogRead<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\">joyY<\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L1\"><span class=\"pln\"> xMap <\/span><span class=\"sy0\"><span class=\"pun\">=<\/span><\/span><span class=\"pln\"> map<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\">xValue<\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span> <span class=\"nu0\"><span class=\"lit\">0<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"nu0\"><span class=\"lit\">1023<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span> <span class=\"nu0\"><span class=\"lit\">0<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span> <span class=\"nu0\"><span class=\"lit\">7<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L2\"><span class=\"pln\"> yMap <\/span><span class=\"sy0\"><span class=\"pun\">=<\/span><\/span><span class=\"pln\"> map<\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"pln\">yValue<\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"nu0\"><span class=\"lit\">0<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"nu0\"><span class=\"lit\">1023<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"nu0\"><span class=\"lit\">7<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"nu0\"><span class=\"lit\">0<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L3\"><span class=\"pln\"> lc<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"pln\">setLed<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"nu0\"><span class=\"lit\">0<\/span><\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"pln\">xMap<\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"pln\">yMap<\/span><span class=\"sy0\"><span class=\"pun\">,<\/span><\/span><span class=\"kw2\"><span class=\"kwd\">true<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L4\"><span class=\"pln\"> lc<\/span><span class=\"pun\">.<\/span><span class=\"me1\"><span class=\"pln\">clearDisplay<\/span><\/span><span class=\"br0\"><span class=\"pun\">(<\/span><\/span><span class=\"nu0\"><span class=\"lit\">0<\/span><\/span><span class=\"br0\"><span class=\"pun\">)<\/span><\/span><span class=\"sy0\"><span class=\"pun\">;<\/span><\/span><\/li>\n<li class=\"L5\"><span class=\"pln\">\u00a0<\/span><\/li>\n<li class=\"L6\"><span class=\"br0\"><span class=\"pun\">}<\/span><\/span><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<p>So as you see in the code above, the map() function can be used to map the ranges as you wish. Also notice that the Y axis map is inverted! So much to learn with a simple interface! Do\u00a0<a title=\"Explore Ping-Pong with Arduino\" href=\"https:\/\/exploreembedded.com\/wiki\/Explore_Ping-Pong_with_Arduino\">checkout the retro ping-pong game<\/a>\u00a0built with the same setup.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<pre><span id=\"line-1\">int <span class=\"nv\">VRx<\/span> <span class=\"o\">=<\/span> A0<span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-2\">int <span class=\"nv\">VRy<\/span> <span class=\"o\">=<\/span> A1<span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-3\">int <span class=\"nv\">SW<\/span> <span class=\"o\">=<\/span> <span class=\"m\">2<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-4\">\r\n<\/span><span id=\"line-5\">int <span class=\"nv\">xPosition<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-6\">int <span class=\"nv\">yPosition<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-7\">int <span class=\"nv\">SW_state<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-8\">int <span class=\"nv\">mapX<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-9\">int <span class=\"nv\">mapY<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-10\">\r\n<\/span><span id=\"line-11\">void setup<span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\r\n<\/span><span id=\"line-12\">  Serial.begin<span class=\"o\">(<\/span><span class=\"m\">9600<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span> \r\n<\/span><span id=\"line-13\">  \r\n<\/span><span id=\"line-14\">  pinMode<span class=\"o\">(<\/span>VRx, INPUT<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-15\">  pinMode<span class=\"o\">(<\/span>VRy, INPUT<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-16\">  pinMode<span class=\"o\">(<\/span>SW, INPUT_PULLUP<span class=\"o\">)<\/span><span class=\"p\">;<\/span> \r\n<\/span><span id=\"line-17\">  \r\n<\/span><span id=\"line-18\"><span class=\"o\">}<\/span>\r\n<\/span><span id=\"line-19\">\r\n<\/span><span id=\"line-20\">void loop<span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\r\n<\/span><span id=\"line-21\">  <span class=\"nv\">xPosition<\/span> <span class=\"o\">=<\/span> analogRead<span class=\"o\">(<\/span>VRx<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-22\">  <span class=\"nv\">yPosition<\/span> <span class=\"o\">=<\/span> analogRead<span class=\"o\">(<\/span>VRy<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-23\">  <span class=\"nv\">SW_state<\/span> <span class=\"o\">=<\/span> digitalRead<span class=\"o\">(<\/span>SW<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-24\">  <span class=\"nv\">mapX<\/span> <span class=\"o\">=<\/span> map<span class=\"o\">(<\/span>xPosition, <span class=\"m\">0<\/span>, <span class=\"m\">1023<\/span>, -512, <span class=\"m\">512<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-25\">  <span class=\"nv\">mapY<\/span> <span class=\"o\">=<\/span> map<span class=\"o\">(<\/span>yPosition, <span class=\"m\">0<\/span>, <span class=\"m\">1023<\/span>, -512, <span class=\"m\">512<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-26\">  \r\n<\/span><span id=\"line-27\">  Serial.print<span class=\"o\">(<\/span><span class=\"s2\">\"X: \"<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-28\">  Serial.print<span class=\"o\">(<\/span>mapX<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-29\">  Serial.print<span class=\"o\">(<\/span><span class=\"s2\">\" | Y: \"<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-30\">  Serial.print<span class=\"o\">(<\/span>mapY<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-31\">  Serial.print<span class=\"o\">(<\/span><span class=\"s2\">\" | Button: \"<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-32\">  Serial.println<span class=\"o\">(<\/span>SW_state<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-33\">\r\n<\/span><span id=\"line-34\">  delay<span class=\"o\">(<\/span><span class=\"m\">100<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span>\r\n<\/span><span id=\"line-35\">  \r\n<\/span><span id=\"line-36\"><span class=\"o\">}<\/span><\/span><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>The Analog Joystick is similar to two potentiometers connected together, one for the\u00a0vertical\u00a0movement (Y-axis) and other for the\u00a0horizontal\u00a0movement (X-axis). The joystick also comes with a\u00a0Select switch. It can be very handy for retro gaming, robot control or RC cars. So let&#8217;s understand how it works! Basics The Arduino Uno or any other Arduino board that &hellip; <a href=\"https:\/\/www.strongd.net\/?p=1664\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Analog JoyStick with Arduino<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1664","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/1664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1664"}],"version-history":[{"count":2,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/1664\/revisions"}],"predecessor-version":[{"id":1667,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/1664\/revisions\/1667"}],"wp:attachment":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}