jacknpoe

joystick analógico

Dec 9th, 2025
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 1.46 KB | Software | 0 0
  1. #include <LiquidCrystal_I2C.h>  // para cristal líquido 16x2 I2C
  2.  
  3. // pinos para X, Y e botão
  4. #define PINO_X A0
  5. #define PINO_Y A1
  6. #define PINO_B A2
  7.  
  8. short MEIO_X, MEIO_Y;  // vão guardar os valores de X e Y quando o joystick está parado
  9. short x, y;  // le() vai prencher esses dados
  10. byte botao;  // idem
  11. LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);  // o objeto cristal líquidp
  12.  
  13. void setup() {
  14.   // os pinos serão INPUT (no caso do botão, só funciona com INPUT_PULLUP)
  15.   pinMode( PINO_X, INPUT);
  16.   pinMode( PINO_Y, INPUT);
  17.   pinMode( PINO_B, INPUT_PULLUP);
  18.  
  19.   MEIO_X = analogRead( PINO_X);  // guarda valor do joystick parado
  20.   MEIO_Y = analogRead( PINO_Y);  // idem
  21.  
  22.   LCD.init();  // inicia cristal líquido
  23.   LCD.backlight();  // liga a luz do cristal líquido
  24. }
  25.  
  26. // lê os dados dos pinos x, y e botao
  27. void le() {
  28.   x = analogRead( PINO_X) - MEIO_X;  // deduz o valor do joystick parado
  29.   y = analogRead( PINO_Y) - MEIO_Y;  // idem
  30.   botao = ( digitalRead( PINO_B) == 0);  // se voltar 0, o botão está pressionado
  31. }
  32.  
  33. void loop() {
  34.   le();  // lê x, y e botao
  35.  
  36.   LCD.clear();  // limpa o cristal líquidp
  37.   LCD.setCursor( 0, 0);  // primeira linha
  38.   LCD.print( "X: " + String(x) + ", Y: "+ String(y));  // imprime x e y
  39.   LCD.setCursor( 0, 1);  // segunda linha
  40.   LCD.print( "Botao: " + String(botao ? "LIGADO" : "DESLIGADO"));  // estado do botão
  41.  
  42.   delay( 200);  // para não ficar limpando o cristal líquido que piscaria demais
  43. }
Advertisement
Add Comment
Please, Sign In to add comment