Desde o inicio que o voltímetro das horas me chateava um pouco...
A sua não linearidade (barato... :) ) aliada ao meu método tosco de fazer a escala, fez com que o pwm para as horas não fosse calculado com um simples y=mx+b.
Farto disso resolvi fazer uma abordagem mais inteligente.
Acertei os valores de pwm para as 12 horas, de forma a coincidir exactamente o ponteiro com o risco da escala.
Guardei esses valores no vector "horas[posição vector]".
A única certeza após isto é que cada "salto" teria de ser dividido em 60 minutos.
O cálculo para obter o pwm certo para aquela hora e minuto, é dado por:
H - horas lidas no RTC;
M - minutos lidos no RTC;
H - horas lidas no RTC;
M - minutos lidos no RTC;
unsigned int horas[13] = {0,70,160,245,330,415,495,590,680,780,870,970,1024};
…pwm = horas[horas_1] - horas[horas_1 -1];pwm = (pwm * minutos_1)/60;pwm += horas[horas_1 -1];
Desta forma dou por resolvido o problema com o voltimetro das horas. Já está a funcionar à algumas horas e até ao momento está perfeito.
0 Responses so far.
Enviar um comentário