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