Estoy usando un NAU7802 ADC que tiene un amplificador incorporado . Estoy tratando de usarlo para leer un medidor de tensión pero sigue dándome lecturas extrañas.
Finalmente, recurrí a unir las dos entradas diferenciales para que leyera 0, sin embargo, estas son las lecturas que recibo (a 80 Hz, ganancia = 128):
Comopuedever,lamayoríadelasveceslalecturaescorrecta,perocada0,4segundosomástieneunaexplosióndetonterías.
Estoybastantesegurodequemicódigoescorrecto(nopuedopublicarlo,losiento).TengaencuentaqueestoysondeandoeldispositivoparaDRDY(datoslistos)enlugardeinterrumpirlo.Esonodeberíahacerunadiferencia,peronoséquéestácausandoesto.
¿Alguientienealgunasugerencia?Heagregadocondensadoresencasitodosloslugaresquepuedoypongotodoenunacajademetal,asíquenocreoqueseaEMI.
Meestoyvolviendoloco.
Actualización,sevuelvemásextraño
AsíquecambiéunpocomicódigoparaqueuselainterrupciónDRDY,comoesta(nopudehacerqueI2CfuncionedentrodelISRporalgunarazón,deahíelbooleano):
//Insetup()attachInterrupt(1,adcIsr,RISING);}volatilebooldataReady=false;voidadcIsr(){dataReady=true;}loop(){if(dataReady){Serial.println(adc.readADC());dataReady=false;}}
Yahoramesaleestegráfico.¡Lamagnituddelostriángulosesindependientedelaganancia!
En serio, no tengo idea de lo que está pasando ahora. Parece una especie de problema de tiempo, pero la hoja de datos dice que cada vez que lees la salida del ADC, se engancha y te da la última.