Envío GRATIS en compras mayores a $699 MXN
Valido hasta el 20 de Abril del 2023
El shield de ADC utiliza el circuito ADS1115 el cual es un convertidor analógico a digital de 16 bits controlado por un puerto I2C. Este integrado cuenta con 4 canales los cuales permiten leer señales en voltaje desde 0V hasta 10V ya que se cuenta con un divisor de voltaje a la entrada de cada canal. Es compatible con Raspberry PI 4. Puede medir señales de voltaje de 0V a 10V.
El voltaje de entrada para el ADS115 depende del voltaje aplicado a la terminal central de la terminal tornillo y las resistencias del divisor de voltaje, las cuales son de 10K y 5.1K al 1%. Si se requiere alguna otra proporción se puede montar antes al momento de hacer el pedido, favor de solicitar al agente de ventas el cambio para verificar la disponibilidad de resistencias.
Especificaciones
- ADC: ADS1115.
- Voltaje de operación: 3.3V.
- Temperatura de trabajo: –40°C a +125°C.
- Comparador programable.
- 4 entradas simples o 2 entradas diferenciales.
- Dirección I2C: SJ1 = 0, 0x49 ; SJ1 = 1, 0x48.
- Vin en la terminal tornillo para el ADC: 0V a 10V.
- Altura conector hembra 2x20: 14mm de la PCB al conector.
- Dimensiones: 57.50mm x 64mm.
Descripción de jumpers
Nombre |
Descripción |
SJ1 |
Condición default: no soldado. Si se suelda se conecta a GND el pin ADDR cambiando la dirección del puerto I2C. Dirección inicial sin soldar el jumper: 0x49. Dirección con jumper soldado: 0x48. |
SJ2-SJ3, SJ4, SJ5 |
Selector de voltaje para las terminales tornillo. Opciones:
Condición default: conector a jack 2.1mm. |
SJ6 |
Condición default: no soldado. Permite conectar el pin de Alert del ads1115 al pin 15 físico de la Raspberry Pi. Pin digital 22. |
Codigo de prueba con wiringPi
#include
#define pinInicial 100
#define ads115_direccion 0x49
#define adc_1 0
#define adc_2 1
#define adc_3 2
#define adc_4 3
double VinMaximo = 10; //Voltaje
uint32_t R2 = 5100; //Ohms
uint32_t R1 = 10000; //Ohms
uint32_t valorMaximoADC_16BITS = 32768; //entero bits 2^16-1
double ganancia = 4.096;
double voltajeInMaxDespuesDivisor = 3.3774834437;
using namespace std;
int main (void)
{
wiringPiSetup () ;
ads1115Setup(pinInicial, ads115_direccion);
for(;;){
uint32_t adc1 = analogRead(pinInicial+adc_1);
uint32_t adc2 = analogRead(pinInicial+adc_2);
uint32_t adc3 = analogRead(pinInicial+adc_3);
uint32_t adc4 = analogRead(pinInicial+adc_4);
double voltaje_a1 = VinMaximo*(ganancia*adc1/valorMaximoADC_16BITS)/voltajeInMaxDespuesDivisor;
double voltaje_a2 = VinMaximo*(ganancia*adc2/valorMaximoADC_16BITS)/voltajeInMaxDespuesDivisor;
double voltaje_a3 = VinMaximo*(ganancia*adc3/valorMaximoADC_16BITS)/voltajeInMaxDespuesDivisor;
double voltaje_a4 = VinMaximo*(ganancia*adc4/valorMaximoADC_16BITS)/voltajeInMaxDespuesDivisor;
cout << "Digital A1: "<< adc1 << " , Voltaje: " << voltaje_a1 << " ";
cout << "Digital A2: "<< adc2 << " , Voltaje: " << voltaje_a2 << " ";
cout << "Digital A3: "<< adc3 << " , Voltaje: " << voltaje_a3 << " ";
cout << "Digital A4: "<< adc4 << " , Voltaje: " << voltaje_a4 << " ";
delay(2000);
}
return 0 ;
}