Quadrature Encoder su DC motor

Salve a tutti, in casa mi sono trovato un quadrature encoder su DC motor, e volevo trasformarlo in un haptic (rotella con scatti gestiti da PWM di Arduino UNO).
Ricordo di averlo fatto più di 20 anni fa con un tabella di questo tipo:

int pwmSin[] = {0, 0, 1, 4, 10, 17, 20, 26, 37, 45, 50,
                64, 70, 78, 94, 110, 127, 144, 160, 176, 191,
                195, 204, 210, 217, 228, 237, 244, 250, 253, 254,
                255,255,255,255,255,255,255,255,255,255,255,255,
                255,255,255,255,255,255,255,255,255,255,255,255,
                255, 250, 244, 237, 228, 217, 210, 204, 195, 191,
                176, 160, 150, 144, 127, 110, 94, 78, 70, 64,
                50, 45, 37, 26, 20, 17, 10, 4, 1, 0, 0
               };

dove pwmSin sono i valori che vado ad inserire qui:

analogWrite(pin, pwmSin[]);

e con un contatore che legge gli stati del quadrature encoder:

void contaImpulsi ()
{
  aState = digitalRead(2);
  if (aState != aLastState)
  {
    if (digitalRead(6) != aState)
    {
      counter++;
      stato = 0;
    }
    else
    {
      counter--;
      stato = 1;
    }

  }

A questo punto però non so più come muovermi.
Gli scatti li sento ma solo per una piccola parte di valori. La ruota codificata sull'encoder è di 900cpr e gli scatti riesco a sentirli soltanto per i primi conteggi.

Per caso avreste delle dritte (funzioni o quant'altro) su come procedere?

Grazie in ogni caso

È difficile rispondere a causa della scarsità di informazioni. Uno schema, non una cosa crespa sarebbe di grande aiuto insieme alle informazioni sul motore e sul conducente. Ci sono molti tutorial in linea che possono aiutarti.

In rete non c'è tanto per motori DC...

riformulo la domanda se mi è permesso:

come faccio a monitorare un incremento o un decremento di un contatore?
ho un contatore che aumenta e diminuisce in base al segnale sul pin2; vorrei sapere se esiste una funzione che capisca se sta aumentando o diminuendo... grazie in ogni caso

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