Analog Joystick: Difference between revisions

From Sketching with Hardware at LMU Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by one other user not shown)
Line 17: Line 17:
= How to control it in MicroPython =
= How to control it in MicroPython =


== Basic code to generate a 500 Hz signal ==
Reading all values and printing them to the console
reading all values and printing them to the console
<syntaxhighlight lang="python" line='line'>
<syntaxhighlight lang="python" line='line'>
#Example usage for ESP32
#Example usage for ESP32
Line 50: Line 49:


[[File:Joystick-inside.PNG|x400px]]
[[File:Joystick-inside.PNG|x400px]]
[[Category:Sensor]]

Latest revision as of 09:51, 11 June 2024

Description[edit]

The analog joystick includes 2 Potentiometer and one digital switch.

It has 5 connectors:

  • GND - connected to GND
  • 5V - which is in our cases connected to 3.3V
  • VRx - the voltage representing the position in X
  • VRy - the voltage representing the position in Y
  • SW - 0 if pressed

How to connect it electrically[edit]


How to control it in MicroPython[edit]

Reading all values and printing them to the console

#Example usage for ESP32
from machine import Pin, ADC
from time import sleep
# analog inputs for X and Y
analogPinX = ADC(Pin(34))
analogPinY = ADC(Pin(35))
#switching the analog input to 12Bit (0...4095)
analogPinX.atten(ADC.ATTN_11DB)
analogPinY.atten(ADC.ATTN_11DB)
# digital input on pin 26
sw = Pin(26, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor

while True:
  analogValX = analogPinX.read()
  analogValY = analogPinY.read()
  switch = sw.value()

  print("x:%s   y:%s   sw:%s" % (analogValX, analogValY, switch))
 
  sleep(1)

Related Tutorial Videos[edit]


Background[edit]

This is conceptually what is inside the joystick.