Como puedo programar el módulo ADS1115 con Arduino en Matlab

Hola! estoy tratando de programar en Matlab el modulo ADS1115 con Arduino, he revisado estas páginas sin embargo no logro entender bien como funciona, alguno ha logrado programar?

https://la.mathworks.com/matlabcentral/answers/286348-how-i-can-read-a-signal-from-asd1115-with-arduino-and-matlab

Por favor, lee las Normas del foro y edita tu enlace de acuerdo a como se indica que deben postearse. Este foro es de Arduino pero tu consulta es mas adecuada para un foro de Matlab. Sin embargo, ten paciencia a ver si alguien puede ayudarte.

Respuesta: Lo que veo en tu enlace (espero que lo edites) es primero una inicialización

%check arduino
a=arduino();
%find ic2 adc and select it (do it after installing add onto arduino)
addrs = scanI2CBus(a);
%create a ic2 device. substitute ‘0x48’ if necessary
signal = i2cdev(a, '0x48')

y luego hay una respuesta donde se envia un comando

writeRegister(dev,1,51075,'uint16');
pause(0.02)
data = readRegister(dev,0,'uint16');
This code will measure the signal from the A0 channel of the ADS1115, up to 1.024 Volts. To use a voltage above 1.024 Volts you can write a different number to the register. As far as I know, you need to call the writeRegister command every time before you read the data with readRegister.

y se lee el dato en el canal 0, que espera un entero de 16 bits.

Qué es lo que no entiendes, suponiendo que todo eso funcione?

He probado ese código en Matlab y no obtengo un valor ADC coherente. Por ejemplo, con un multímetro leo 330mV pero el matlab me bota un valor ADC de 58360, si haces la conversión:

Volt=1.024*(58360/65536)=911.87 mV (corrijanme si es la conversión no es la correcta)

He probado la programación del módulo ADS1115 en el Software de Arduino guiándome de este ejemplo:

https://www.luisllamas.es/entrada-analogica-adc-de-16-bits-con-arduino-y-ads1115/

y si logro obtener el voltaje tal cual se muestra en mi multímetro.

**Por favor podrías indicarme exactamente que quieres que cambie?, he leido las normas y no encuentro en cual estoy infringiendo.

Te he pedido que leas las normas y sigues respondiendo sin respetarlas. No solo no has modificado tu post inicial donde tienes enlaces mal posteados sino que vuelves a poner un nuevo enlace sin usar etiquetas. Por favor tomate unos minutos y corrige las faltas indicadas.

Bueno, la diferencia entre MATLAB y Arduino es que en Arduino tienes una librería que resuelve tu problema sin pensar y en MATLAB tienes que pensar porque es un programa fantástico pero ese código solo esta parcializado.

Investiga que hace

writeRegister(dev,1,51075,'uint16');

ya que esta claro que esto

pause(0.02)
data = readRegister(dev,0,'uint16');

debería leer un entero desde el canal 0 20 mseg después.

Según leo 51075 pareciera estar bien pero no funciona. Veré la librería arduino para comparar.

Esta claro que lo que falta es setear el amplificador de Ganancia programable. Observa el ejemplo de Luis Llamas y compara. En el de Matlab no esta y por eso obtienes un valor alto.

Acá tienes un código que pueda funcionar.