Joystick con un unica asse

Salve , sto costruendo una leva spoiler per il simulatore di volo con un potenziometro e arduino leonardo, in pratica è una sorta di leva joystick con una
sola asse.
Allego foto.
Ho provato a compilare il codice con IDE ma non ne vengo fuori.
Mi potreste aiutare? :face_with_peeking_eye:
Grazie mille

Buonasera e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

Comincia ad allegare quello che hai scritto, usando il tag "< CODE />" che vedi in alto, dopo aver formattato il codice nell'IDE (Ctrl-T).

Ciao, Ale.

Ok grazie ci provo.

const int joystickPin = A0;
int joystickValue = 0;
void setup() {
  Serial.begin(9600);
}

void loop() {
  joystickValue = analogRead(joystickPin);
  Serial.print("Valore del joystick: ");
  Serial.println(joystickValue);
  delay(100);
}

Ok, il problema qual'è? Non compila? Non vengono fuorii risultati attesi?

Ciao, Ale.

Dallo sketch che hai postato è tutto fuorché un joystick.
Non fa altro che leggere un valore analogico e stamparlo sulla seriale, mentre per interfacciarlo con il simulatore di volo devi realizzare una periferica HID.

Dai un'occhiata a questa libreria:

No no l'IDE compila ma al termine dell'uploading mi da questi messaggi in rosso:

Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
Device code: 0x44

Perfetto, adesso me lo riconosce come joystick anche windows, solo che se provo a muovere la leva non da segno di vita.

Andrea

Ma non puoi mettere del codice a caso in uno sketch e pensare che faccia quello che desideri...

Il codice di cui hai messo il printscreen (è sempre bene mettere il codice usando il tag e non come immagine) definisce un solo pulsante collegato al pin 9.

scusa rimedio subito.

#include <Joystick.h>

// Create the Joystick
Joystick_ Joystick;

// Constant that maps the physical pin to the joystick button.
const int pinToButtonMap = 9;

void setup() {
  // Initialize Button Pins
  pinMode(pinToButtonMap, INPUT_PULLUP);

  // Initialize Joystick Library
  Joystick.begin();
}

// Last state of the button
int lastButtonState = 0;

void loop() {

  // Read pin values
  int currentButtonState = !digitalRead(pinToButtonMap);
  if (currentButtonState != lastButtonState) {
    Joystick.setButton(0, currentButtonState);
    lastButtonState = currentButtonState;
  }

  delay(50);
}

si io non ho nessun pulsante ma solo una leva con un unico asse.

perfetto ho scritto questo codice e adesso sembra funzionare:

#include <Joystick.h>
Joystick_ Joystick;
const int yAxisPin = A0;
int yValue = 0;
void setup() {
  Joystick.begin();
}

void loop() {
  yValue = analogRead(yAxisPin);
  int mappedYValue = map(yValue, 0, 1023, -127, 127);
  Joystick.setYAxis(mappedYValue);
  delay(10);
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.