Paso 3: La construcción del circuito
Una vez que tenemos las entradas de trabajo, vamos a instalar la pantalla TFT LCD Color de 1.8" y escribir un boceto para mostrar la medida de entrada.
Vamos entonces a explorar varias opciones de software y hardware para mejorar o personalizar el DVM.
Permite así iniciar construyendo el divisor de voltaje en el protoboard y conectarlo al pin A0 de Arduino.
Mire el diagrama del circuito y las otras imágenes que le guiará con los pasos.
Una vez que el circuito se coloca juntos, conectar el Arduino al puerto USB de su PC y cargar el siguiente bosquejo de prueba que mostrará el voltaje conectado a la pata del resistor 1Meg libre vía el monitor serial.
Simplemente copie y pegue el siguiente bosquejo para el IDE de Arduino.
// -----------------Sketch Start-----------------------------
/* -----------------------------------------------------------
Programa: Serie DVM
Descripción: Voltímetros de corriente continua con la tensión mostrada en el monitor serial
No hay Color TFT LCD todavía!
Hardware: Arduino NANO o Uno con divisor de voltaje en A0.
Software: Escrito y desarrollado utilizando el software de Arduino 1.0.3
Fecha:
Autor:
--------------------------------------------------------------*/
valores de calibración de divisor de tensión
#define Dv1 11
Tensión de referencia del ADC / valor de calibración
#define VREF 5
Float V1 = {0.00};
void setup()
{
Serial.Begin(9600);
}
void loop()
{
V1 = analogRead(0);
Serial.Print ("voltaje @ pin A0");
Serial.println(((v1*Vref) / 1023)) * Dv1, 2);
}
// -----------------Sketch End-----------------------------
Vamos a revisar lo que está sucediendo;
El programador de Atmega utilizado por Arduino contiene un convertidor de analógico a digital (A/d) de 6 canales a bordo. El convertidor tiene resolución de 10 bits, que devuelve un entero de 0 a 1023 (210= 1024, cuenta 0, por lo que es 1023 pasos) para el valor de 0 a 5 voltios.
Queremos convertir A/D devolvió el valor a la tensión de corriente que estamos midiendo.
Tenemos que multiplicar el resultado por 5 y dividir por 1023 para ajustar el valor devuelto por los 10 bits convertidor A/D.
También están dividiendo el voltaje por 11 con el divisor de tensión, por lo que estamos midiendo el voltaje (y queremos ver en la pantalla), se multiplicará por 11 para compensar la división.
Hacemos con la fórmula de followimg:
Vout=((VIN*(5/1023))*11).
el código es:
Serial.println(((v1*Vref) / 1023)) * Dv1, 2);
Multiplicar por 5 (VREF) y divida por 1023 para convertir la salida de A/D en una escala entre O y 5, luego multiplicamos por 11(Dv1) para compensar el divisor de tensión. La razón estamos usando variables para el divisor y los valores de tensión, es que estos valores cambiarán cuando calibramos el DVM. El "2" al final de la fórmula define cuantos dígitos para mostrar después del decimal.
Si tienes el programa para cargar correctamente, abra al serial monitor haciendo clic en el icono de lupa en la esquina superior derecha de la arduino IDE, debe ver flujo de datos. Utilizando un cable puente, intente conectar la pata libre de la resistencia de 1Meg al Pin GND pin primero y después a los 5V. Usted debe ver la lectura cambia de 0 a 5v.
Ahora solo tenemos que repetir lo que hicieron el primer canal tres veces más que un 4 canales DVM, pero antes de hacer eso, vamos a conectar nuestro LCD a COLOR TFT a Arduino. Se necesita 7 cables de puente para hacer esto:
Conectar lo siguiente con los puentes
TFT LCD. Arduino
VCC 5V
GND Gnd
SCL 13
SDA 11
CS 10
RS/DC 9
RES 8
Nota:
A diferencia de mi instructables otros, utilizaremos la interfaz SPI de alta velocidad para manejar la pantalla para que el puente de conexión es diferente. Una vez más, revisa las fotos para guiarte si tu no estás seguro cómo cablear hasta.
Usted necesitará instalar dos bibliotecas para utilizar la pantalla:
Adafruit_GFX.h el Core graphics library
Biblioteca de .h el Hardware específico de Adafruit_ST7735
Descargar las librerías y copiarlos a la carpeta de biblioteca de Arduino.
Copiar y pegar el bosquejo a continuación para el IDE de Arduino. El bosquejo de código DVM es lo mismo, pero con la adición de código para mostrar el voltaje en A0 en la pantalla LCD.
Compilar y cargar el sketch en Arduino.
// -----------------Sketch Start-----------------------------
/*-----------------------------------------------------------
Programa: TFTLCDDVM
Descripción: Voltímetros de corriente continua con tensión de muestra
en Color TFT LCD con 2 decimales
Hardware: Arduino NANO con divisor de voltaje en A0.
TFT LCD conectado
Software: Desarrollado utilizando el software de Arduino 1.0.3
Fecha: 10 de marzo de 2014
Autor: johnag
--------------------------------------------------------------*/
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 / rearme
#include < Adafruit_GFX.h > / / Biblioteca de gráficos de base
#include < Adafruit_ST7735.h > / / específicos de Hardware de biblioteca
#include < SPI.h >
Tft de Adafruit_ST7735 = Adafruit_ST7735 (cs, dc, rst);
valor del divisor del voltaje de calibración
#define Dv1 11
Tensión de referencia del ADC
#define VREF 5
Float V1 = {0.00};
void setup()
{
Serial.Begin(9600);
tft.initR(INITR_BLACKTAB); inicializar una ficha de chip, negro ST7735S
tft.fillScreen(ST7735_BLACK); borrar la pantalla
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
tft.setCursor(10,0);
TFT.println ("voltímetro de CD DVM");
tft.setTextColor(ST7735_RED);
tft.setCursor(0,140);
TFT.println ("PRECAUCIÓN máxima tensión 55vdc");
}
void loop()
{
V1 = analogRead(0);
tft.drawLine (0, 20, (tft.width)-1, 20, ST7735_WHITE);
tft.drawLine (0, 130, tft.width ()-1, 130, ST7735_WHITE);
tft.setTextColor(ST7735_YELLOW,ST7735_BLACK);
tft.setTextSize(2);
voltaje 1 (pin A0)
se multiplica el voltaje por la red de resistencia
factor de división para calcular el voltaje real
tft.setCursor (45, 40);
TFT.println ("V1");
tft.setTextSize(1);
TFT.println ("tensión @ pin A0");
tft.setCursor (20, 80);
tft.setTextSize(2);
Serial.Print ("voltaje @ pin A0");
Serial.println(((v1*Vref) / 1023)) * Dv1, 2);
TFT.Print(((v1*Vref) / 1023)) * Dv1, 2);
TFT.Print ("CC");
}
//---------------Sketch End----------------------------------------