Mini 2-Axis Analog Thumbstick

Project Description

This a Mini 2-Axis Analog Thumbstick from Adafruit. The device sends out a Analog signal on the left and right pins depending on how far in a direction the stick is pushed from 1(left,up) to 0(right,down) with the base value in the middle being around 0.5. The outputs on both sides are the same.

Product Webpages

Thumbstick: https://www.adafruit.com/products/2765

Board: https://www.adafruit.com/products/3246

/media/uploads/Hylian_Master/2765-00.jpg /media/uploads/Hylian_Master/3246-00.jpg

Hookups for Demo

Mbed PinsAnalog PinsComments
p15Left Y pin
p16Left X pin
Right Y pinRight and Left pins give the same output
Right X pinso are not necessary for the demo
Vout+ pins
Gnd- pins

Demo Code

This code lights the LEDs on the mbed LPC1768 from right to left if the thumbstick is rotated in a clockwise manner. This program outputs the X and Y outputs through the USB serial as well to be read through a software such as Teraterm. The outputs are set and accessed via a library although they are both read in as a simple AnalogIn.

#include "mbed.h"
#include "Thumbstick.h"

DigitalOut led1(LED1);//Up
DigitalOut led2(LED2);//Right
DigitalOut led3(LED3);//Down
DigitalOut led4(LED4);//Left

Thumbstick Thumb(p15,p16); //Ypin,Xpin

Serial serial(USBTX, USBRX);

int main() {
    while(1) {
        serial.printf("Xpin: %f,    Ypin: %f  \n\r",Thumb.Xcord.read(),Thumb.Ycord.read());
      
      if(Thumb.Xcord.read() < 0.2){led2=1;}//Right
        else{led2=0;}
      
      if(Thumb.Xcord.read() > 0.8){led4=1;}//Left
        else{led4=0;}
      
      if(Thumb.Ycord.read()<0.2){led3=1;}//Down
        else{led3=0;}
      
      if(Thumb.Ycord.read()>0.8){led1=1;}//Up
        else{led1=0;}
    }
}


Import programThumbstickHelloWorld

Thumbstick demo code

Import libraryThumbstick

Library for thumbstick demo


Please log in to post comments.