Problema con pedale d'espressione per pedaliera MIDI

Salve, il progetto della mia pedaliera Midi sta continuando. Ho acquistato un pedale d'espressione della m-audio QUESTO ma collegato al connettore Jack Femmina stereo da 6,3 QUESTO (nella foto sono anche descritti i collegamenti di questo ad Arduino) , non mi da tutta l'escursione da 0 a 127, infarti parte da metà (dal 50% circa) e arriva a massimo verso 120 di value (91% circa).
In arduino, lo sketch per mappare e fare in modo che il segnale analogico venga convertito in 127 è questo:

#define exPin A5
int currentVal = 0;
int lastVal = 0;

.....


void setup() {
pinMode (exPin, INPUT_PULLUP);

void loop() {
currentVal = analogRead(exPin);
currentVal = map(currentVal, 0, 1023, 0, 127);
currentVal = constrain(currentVal, 0, 127);


if(abs(currentVal-lastVal) > 1)
{ MIDI.sendControlChange (89, currentVal, 1);
}

lastVal = currentVal;
delay(5);
}

Come potrei risolvere questo problema?
È strano perché ho anche provato direttamente con un potenziometro da 10K collegato ad arduino nello stesso modo, e va senza problemi (ovviamente per il potenziametro il collegamento è stato diretto, cioe senza entrare nel jack stereo).

tonynapoli2309:
Ho acquistato un pedale d'espressione della m-audio

Identico al mio (era in dotazione alla mia Keystation 88, una delle 4 tastiere che ho).
Allora, non ho ben capito quale sia il problema, ossia mi spiego meglio.

Primo, hai notato che sotto al pedale c'è uno switch "MAudio-Others"? A seconda della posizione si comporta in modo diverso, tu come lo hai impostato? In posizione MAudio hai i due estremi del potenziometro interno tra "Sleeve" (il contatto più esterno) e "Ring" (l'anello centrale), ed il contatto centrale su "Tip" (la punta). L'immagine che hai postatto rappresenta i contatti della femmina jack, non i corrispondenti contatti del pedale!

Secondo, hai notato che c'è un trimmer di lato che permette di impostare il "volume minimo" ossia la resistenza minima? Tu come l'hai impostato?

Terzo, dato che di fatto è come se fosse un potenziometro, perché hai messo una resistenza da 10k? Il potenziometro che dici di aver usato come test immagino che tu l'abbia collegato con i due capi a +5V e GND, ed il centrale al pin analogico: perché non hai fatto lo stesso anche per il pedale? Mettendo una resistenza da 10k in serie ad un potenziometro da circa 10k, non potrai mai andare da 0 a 5V sul pin...

In ogni caso, una volta che avrai definito e capito le prime tre cose, tu hai misurato con un tester la resistenza nelle due posizioni, tra sleeve e tip? Hai notato che (almeno al mio) non arriva mai a zero, tantomeno se sposti il potenziometro laterale? A me parte sempre attorno ai 2k ed arriva a 15 (con il trimmer laterale al minimo, ossia in senso antiorario), e questo significa che non devi pensare di ottenere valori tra 0 e 1023, ma l'intervallo che rilevi devi rimapparlo di conseguenza. Per cui collega il pedale (senza resistenza aggiuntiva), metti in modalità M-Audio ed abbassa al minimo il trimmer laterale, quindi vedi quali valori leggi dal pin e rimappa quelli per andare tra 0 e 127.

Ciao, grazie per la risposta. Ti rispondo dapprima, come ho impostato i pulsanti ( a me è una pedaliera Midi con footswitch e non una keyboard). I pulsanti (che sono footswitch spst) sono stati collegati sempre nello stesso modo del jack femmina ossia, su un polo la 5v e sull'altro il PIN relativo e su questo stesso polo un cavo con resistenza da 10k che va al ground per fare pulldown. Tutto funziona alla grande. Collegando il tutto assieme ai LED ed ad un display 7 segmenti, se adotto la soluzione di collegare senza il pulldown non mi funziona. Così come non mi funziona il pedale di espressione, sempre nel caso di omettere il pulldown con la resistenza di 10k. Ho notato sia il tastino sotto, che la rotellina di lato, ma non mi cambia nulla ne a mettere su other o su m-audio e ne a ruotare la rotellina sul lato. Il comando è sempre quello: fisso tra 50 e 90 % (parlando di escursione) indipendentemente se su other o m audio.
Il potenziometro è stato provato anch'esso con una 10k.

Ripeto, senza mettere un pulldown purtroppo non mi funziona proprio, anzi il potenziometro che ho utilizzato per prova, senza la 10 k funziona e funziona anche con la 10k. Il pedale m audio invece se non ci metto sta benedetta 10k sul RING, no dal alcun comando. Per quanto riguarda il calcolo della resistenza del pedale, sí, ho notato che va da 1 (a pedale abbassato) a 12k (a pedale aperto) e ovviamente misurando quello del potenziometro che va da 0 a 10k, c'è ovviamente una bella differenza.

Stasera provo a rimappare tenendo conto di questa cosa.
Considerando che va da 1 a 12 k, secondo te quanto dovrei impostare nella mappatura?

tonynapoli2309:
Ti rispondo dapprima, come ho impostato i pulsanti ( a me è una pedaliera Midi con footswitch e non una keyboard).

Si, lo so, ricordo l'altro post.. :wink:

I pulsanti (che sono footswitch spst) sono stati collegati sempre nello stesso modo del jack femmina

Eh, scusa ma che c'entra come hai collegato i pulsanti? Ma tu SAI che il pedale di espressione NON è un pulsante ma un potenziometro, vero?... :o

ossia, su un polo la 5v e sull'altro il PIN relativo e su questo stesso polo un cavo con resistenza da 10k che va al ground per fare pulldown. Tutto funziona alla grande.

Eh, si, per i pulsanti si. Ma noi parliamo del pedale di espressione, che è una cosa diversa.

Il comando è sempre quello: fisso tra 50 e 90 % (parlando di escursione) indipendentemente se su other o m audio.

Ma, ripeto: hai provato a vedere con un tester come sono i valori di resistenza sui pin che hai? Hai controllato che la femmina jack che hai abbia esattamente quella mappatura sleeve-ring-tip? E hai collegato quindi il pin analogico alla "punta" (tip), e GND e 5V a sleeve e ring (ora non ricordo in quale ordine, ma anche se li mettessi al contrario avresti semplicemente valori invertiti in base al movimento del pedale)? La differenza tra M-Audio e Other è che in un caso il centrale del potenziometro è il "tip", per il secondo il "ring", cosa che comunque tu DEVI verificare prima di collegare GNDe 5V (per evitare di corticircuitare qualcosa...)

Considerando che va da 1 a 12 k, secondo te quanto dovrei impostare nella mappatura?

Te l'ho detto, vedi che valori leggi da analogRead() per le due posizioni, e rimappa quelli.
Se ad esempio leggi 150 a pedale alzato (volume minimo/zero) e 600 a pedale abbassato, fai una cosa del genere:

...
#define POT_MIN 150
#define POT_MAX 600
...
  // Leggo dal potenziometro
  int pot = analogRead(PIN_PEDALE);
  // Controllo anche i valori limite (hai visto mai...)
  if (pot < POT_MIN) pot = POT_MIN;
  if (pot > POT_MAX) pot = POT_MAX;
  // Rimappo da 0 a 127
  int volume = 127*(pot-POT_MIN)/(POT_MAX-POT_MIN);
...

PS: ovviamente l'ho scritto "al volo", sta a te inserirlo nel tuo codice e verificare cosa ricevi dal potenziometro e quindi quale valore mandi via MIDI...

Ma stai scherzando? AHAHAHHAHA. Presumi che io non sappia che un pedale di espressione abbia un potenziometro all'interno? Come hai fatto a presumere ciò se ti ho parlato anche della Resistenza che ho calcolato da 1 a 12K calcolata sul pedale stesso? Ahahahha Ti ho spiegato semplicemente per quanto riguarda gli altri pulsanti come sono stati collegati per darti una visione dell'insieme di come è strutturata la mia pedaliera Midi ahahhaha non per altro! Comunque risolto, ho rimappato il codice che ho postato all'inizio e modificato i valori che non sono più da 0 a 1028.grazie e buona serata

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