Paso 6: Muestreo, promedio y visualización de
El bosquejo siguiente utiliza muestreo y promedio para mejorar los valores mostrados. Copiar y pegar en el IDE de Arduino y compilar y cargar.
// -----------------Sketch Start-----------------------------
/*--------------------------------------------------------------
Programa: 1 canal DVM con muestreo
Descripción: Lee el valor analógico A0 entrada y calcula
el voltaje con un divisor de tensión
red en el pin A0 que divide por 10.195 y un voltaje de referencia de 5.0v.
Hardware: Arduinonano o Uno con divisor de voltaje en A0.
Software: Desarrollado utilizando el software de Arduino 1.0.3
Deben ser compatibles con Arduino 1.0 +
Fecha: 25 de marzo de 2014
Autor:
--------------------------------------------------------------*/
#define NUMSAMP 100 / / número de muestras a tomar antes de hacer un promedio y mostrando
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 / rearme
#define 10.915 Dv1 / / valor del divisor de tensión
#define VREF 5.0 / / medida de voltaje 5V pin
#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);
int suma = 0; Suma de las muestras tomadas
unsigned char Scount = 0; Número de muestra
Float AVvolts = 0.0; Tensión media calculada
void setup()
{/ / Configurar pantalla e imprimir elementos estáticos
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.println("");
TFT.println("");
TFT.Print ("tensión @ pin A0");
tft.setTextColor(ST7735_RED);
tft.setCursor(0,140);
TFT.println ("PRECAUCIÓN máxima tensión 55vdc");
}
void loop()
{
un número de muestras analógicas y añadir
mientras que (Scount < NUMSAMP) {}
suma += analogRead(A0); leer y añadir las muestras
Scount ++; incrementar el número de muestra
Delay(10); Esperar 10 mS antes de leer la siguiente muestra
}
AVvolts = (suma (flotador) / (float) NUMSAMP * VREF) / 1023; calcular el voltaje promedio
Muestra el voltaje promedio calculado
tft.setTextColor(ST7735_YELLOW,ST7735_BLACK);
tft.setTextSize(2);
tft.setCursor (45, 50);
TFT.println ("V1");
tft.setCursor (10, 80);
tft.setTextSize(2);
TFT.Print(AVvolts * Dv1);
TFT.println ("CC");
Scount = 0;
suma = 0;
}
// -----------------Sketch End-----------------------------