Duvida com analogReference(EXTERNAL);

Boas,

Tinha por aqui uma board que em tempos usava com os µC da microchip, e necessito de usar como tensão de referencia outra que os 5V do arduino.

Lendo como usar a função analogReference fico com a duvida, qual a melhor forma de corrigir o erro dos 0.3v da vref, pois no meu caso a vref tambem é de 2.5v

Alternatively, you can connect the external reference voltage to the AREF pin through a 5K resistor, allowing you to switch between external and internal reference voltages. Note that the resistor will alter the voltage that gets used as the reference because there is an internal 32K resistor on the AREF pin. The two act as a voltage divider, so, for example, 2.5V applied through the resistor will yield 2.5 * 32 / (32 + 5) = ~2.2V at the AREF pin.

Lendo como usar a função analogReference fico com a duvida, qual a melhor forma de corrigir o erro dos 0.3v da vref, pois no meu caso a vref tambem é de 2.5v

Pelo que entendi queres o que o teu ADC tenha como tensao de referencia os 2.5V.Esse erro dos 0.3V e causado pela resitencia interna no pino Aref.A soluçao mais facil e nao usares nenhuma resistencia externa no pino, colocando la os teus 2.5V diretamente no pino Aref.Agora há um senao ... tens de ter a certeza que chamas a funçao analogReference(EXTERNAL) para configurar o micro para usar a tensao externa

Eu não percebo porque é que tens de colocar a resistência no ARef.
A resistência interna nesse pino deve ser suficiente para protegê-lo. Sendo uma referência de tensão, suponho que não vá passar muita corrente por ele, logo se não vais estar a usar a referência interna (será bom ver o que é escolhido por default...).

O arduino, se bem me lembro usa a referência externa por defeito... ou é o AVCC?

Será porque a referência interna é de 1, qualquer coisa Volts?

Não tenho internet que chegue para ver o manual, logo não posso dizer muito sobre isto. :frowning:

Ok, retiro o que disse. Já percebi.

If the user has a fixed voltage source connected to the AREF pin, the user may not use the other reference voltage options in the application, as they will be shorted to the external voltage. If no external voltage is applied to the AREF pin, the user may switch between AVCC and 1.1V as reference selection. The first ADC conversion result after switching reference voltage source may
be inaccurate, and the user is advised to discard this result.

A resistência adiciona uma pequena proteccão para quando fizeres a troca de referência.

Agora, porque é que queres mudar de referência? Maior precisão na gama 0 - 1.1V?
O chip tem o pino Aref seleccionado como referência logo à partida. As bibliotecas do Arduino é que, creio, definem outra referência. Talvez o AVCC? Logo tens de ver a funcão que faz o startup do arduino e comentá-la.

Se apenas pretendes usar 2,5V e não mudar de referências activamente então escusas de meter resistências lá.

Aproveitando o tópico queria solucionar uma dúvida minha, estou usando um sensor de temperatura LM35, e li que deveria usar o analogReference(INTERNAL)

Aproveitando o tópico queria solucionar uma dúvida minha, estou usando um sensor de temperatura LM35, e li que deveria usar o analogReference(INTERNAL), por que com a voltagem de 1.1V a precisão seria maior, no caso uns 2° de diferença(rsrsrs), então vamos para as dúvidas:
1° - vou adicionar outros sensores analógicos, será que vai atrapalhar???
2° - será que eu não poderia usar um resitor pra limitar a voltagem do sensor de temperatura para 1.1v e usar o analogReference(DEFAULT) ???

Qual é a tensão de saída desses outros sensores?

Não. Tu podes usar a referência default à vontade... tens é menos precisão.