Arduino I2C ADS1115 I2C LCD

Arduino I2C ADS1115 I2C LCD

Para esto utilizaremos 1 Arduino, 1 ADC 16-Bit ADS1115 4 canales,
1  Interfaz I2C IIC para LCD1602 y 1 LCD 16×2 Luz de fondo Blanca,
1/2 proto, 1 juego de Jumpers y 1 potenciomertro de 10k.

 “Ya que no sabemos que tiene cargado el Arduino
es importante primero programarlo
y así prevenir voltajes de entrada

indeseados a nuestros componentes.”

Este proyecto consistirá en un Arduino I2C ADS1115 I2C LCD, leer la tensión de un potenciómetro con el módulo ADC1115 y retransmitir la información a la LCD todo por el protocolo I2C.

El ADS1115 constan de cuatro entradas etiquetadas A0-A3 toda la resolución de 15 bits. Además de las funciones de ADC finalizadas simples también son posibles una serie de funciones de comparación. Para más información sobre las funciones de programación del ADS1115 ver lo siguiente:

Datasheet LCD I2C

Datasheet ADS I2C

Gracias a la biblioteca #include <Wire.h> en este caso, Arduino UNO
usaremos los PIN A5-SCL y A4-SDA para la  comunicación I2C.

#include <Adafruit_ADS1015.h>

Descargar la Liberia:
https://github.com/adafruit/Adafruit_ADS1X15
#include <LiquidCrystal_I2C.h>

Descargar la Liberia:
https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library

Arduino I2C ADS1115 I2C LCD

Arduino I2C ADS1115 I2C LCD leer la tensión de un potenciómetro con el modulo ADC1115 y transmitir la información al Monitor Serial todo por el protocolo I2C.


Rápidamente mencionaré los principales códigos a programar:

Para probar que las liberas fueron instaladas correctamente en nuestra carpeta de “lib” en “Equipo c:/ Programas / Arduino”.
Compilaremos los siguientes códigos por individual.

Paso 1 Programar Arduino “ADS1115 I2C”:

Compilar y esperar “Subido” de lo contrario cerrar todas las ventanas ID y re intentar.


#include <Wire.h>
#include <Adafruit_ADS1015.h>

Adafruit_ADS1115 ads(0x48);
float Voltage = 0.0;

void setup(void)
{
Serial.begin(9600);
ads.begin();
}

void loop(void)
{
int16_t adc0; // Leemos el ADC, con 16 bits 
adc0 = ads.readADC_SingleEnded(0);
Voltage = (adc0 * 0.1875)/1000;

Serial.print("AIN0: ");
Serial.print(adc0);
Serial.print("\tVoltage: ");
Serial.println(Voltage, 7);
Serial.println();

delay(1000);
}


Paso 2 Programar Arduino:

Compilar y esperar “Subido” de lo contrario cerrar todas las ventanas ID y re intentar.


#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Iniciar LCD address con 0x27 para 16x2 Display
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{  // initializar la LCD
lcd.begin();
// Encender Pantalla e imprimir en pantalla.
lcd.backlight();
lcd.setCursor(0,0); lcd.print("         ");
lcd.setCursor(0,0); lcd.print(" HetPro  ");
lcd.setCursor(0,1); lcd.print("         ");
lcd.setCursor(0,1); lcd.print(" i2C LCD ");
}

void loop()
{  // Colocar el cursor en columna 0, linea 1
   // (note: linea 1 es la segunda, como la primera es la 0):
lcd.setCursor(0, 1);

// Imprimir el tiempo de actividad
lcd.print(millis()/1000); 
// Variable a imprimir "millis()/1000" sin comillas.
}


Cambiando su dirección I2C:

La ventaja del I2C no solo es el ahorro de puertos y la facilidad de cableado,  también el poner múltiples LCD´s y sensores cambiando su dirección I2C.

Arduino I2C ADS1115 I2C LCD, Module Addressing

Arduino I2C ADS1115, I2C LCD, Arduino LCD Module Addressing

Cambiar la dirección I2C “I2C ADDRESSES” :
ALHUNOS I2C tienen pins (o pads de soldadura) de tal manera que su disección puede ser cambiada. Usualmente están etiquetadas como A0-A1-A2 .
De fábrica esta default 0x27. (1 = SIN Conectar. 0 = Conectado):

A0 A1 A2 HEX Address
1     1     1       0x27
0    1     1       0x26
1    0     1       0x25
0   0     1       0x24
1    1     0       0x23
0   1     0       0x22
1   0     0       0x21
0   0    0       0x20


#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Iniciar LCD address con 0x27 para 16x2 Display
LiquidCrystal_I2C lcd(0x27, 16, 2);

Arduino I2C ADS1115 I2C LCD. Module Addressing

Arduino I2C ADS1115 I2C LCD, Arduino ADS1115 Module Addressing

Cambiar la dirección I2C “I2C ADDRESSES” :


#include <Wire.h>
#include <Adafruit_ADS1015.h>

// Iniciar ADS address con 0x48
Adafruit_ADS1115 ads(0x48); 


Arduino I2C ADS1115 I2C LCD

Finalmente programamos y cableamos los módulos,
para  hacer la lectura analógica A0
y visualizarla en al LCD todo por el protocolo I2C.

Paso 3 Programar Arduino:


#include <Wire.h>
#include <Adafruit_ADS1015.h>
#include <LiquidCrystal_I2C.h>
// Iniciar address 0x27 y 0x48 
LiquidCrystal_I2C lcd(0x27, 16, 2); 
Adafruit_ADS1115 ads(0x48);
float Voltage = 0.0;

void setup(void) 
{  // initializar Serial/ADS/LCD 
  Serial.begin(9600);  
  ads.begin();
  lcd.begin();

  // Encender Pantalla e imprimir en pantalla.
  lcd.backlight(); 
  lcd.setCursor(0,0); lcd.print("                ");
  lcd.setCursor(0,0); lcd.print("  HetPro  ADS   "); 
  lcd.setCursor(0,1); lcd.print("                ");
  lcd.setCursor(0,1); lcd.print("        i2C LCD ");
}

void loop(void) 
{
  int16_t adc0;  
  adc0 = ads.readADC_SingleEnded(0);
  Voltage = (adc0 * 0.1875)/1000;
  
  Serial.print("AIN0: ");        
  Serial.print(adc0);
  Serial.print("\tVoltage: ");  
  Serial.println(Voltage, 4);  
    
  delay(100);
  lcd.setCursor(0, 1);
  lcd.print(Voltage, 4); // Variable a imprimir.
}


Arduino I2C ADS1115 I2C LCD

Arduino I2C ADS1115 I2C LCD, leer la tensión de un potenciómetro con el modulo ADC1115 y transmitir la información a la LCD todo por el protocolo I2C.

Arduino I2C ADS1115 I2C LCD

Arduino I2C ADS1115 I2C LCD, leer la tensión de un potenciómetro con el modulo ADC1115 y transmitir la información a la LCD todo por el protocolo I2C.

Leave a Reply