Stap 6: Bemonstering Middelingstijd en weergeven
De schets hieronder gebruikt bemonstering en gemiddeld om de weergegeven waarden. Kopieer en plak deze op de Arduino IDE en compileren en laden.
// -----------------Sketch Start-----------------------------
/*--------------------------------------------------------------
Programma: 1-kanalige DVM met Sampling
Beschrijving: Leest waarde op analoge input A0 en berekent
de spanning met een spanning divider
netwerk op pin A0 die worden gedeeld door 10.195 en een referentie spanning van 5.0v.
Hardware: Arduinonano of Uno met spanning divider op A0.
Software: Ontwikkeld met behulp van de Arduino 1.0.3 software
Verenigbaar moeten zijn met Arduino 1.0 +
Datum: 25 maart 2014
Auteur:
--------------------------------------------------------------*/
#define NUMSAMP 100 / / aantal monsters te nemen voor gemiddeld en weergeven
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 / / reset
#define 10.915 Dv1 / / Voltage divider waarde
#define VREF 5.0 / / spanning gemeten 5V pin
#include < Adafruit_GFX.h > / / Core grafische bibliotheek
#include < Adafruit_ST7735.h > / / hardwarespecifieke bibliotheek
#include < SPI.h >
Adafruit_ST7735 tft = Adafruit_ST7735 (cs, dc, rst);
int som = 0; Som van monsters
unsigned char Scount = 0; Het nummer van het monster van de huidige
zweven AVvolts = 0,0; Berekende gemiddelde spanning
VOID Setup
{/ / Setup weergeven en statische items afdrukken
tft.initR(INITR_BLACKTAB); initialiseren van een tab ST7735S-chip, zwart
tft.fillScreen(ST7735_BLACK); scherm wissen
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
tft.setCursor(10,0);
TFT.println ("DC voltmeter DVM");
TFT.println("");
TFT.println("");
TFT.Print ("spanning @ pin A0");
tft.setTextColor(ST7735_RED);
tft.setCursor(0,140);
TFT.println ("Let op max spanning 55vdc");
}
void loop
{
een aantal analoge monsters nemen en ze optellen
terwijl (Scount < NUMSAMP) {}
som += analogRead(A0); lezen en toevoegen van de monsters
Scount ++; _ / / verhogen de telling van de steekproef
delay(10); 10 mS wachten voor het lezen van de volgende monster
}
AVvolts = ((float) som / NUMSAMP (drijven) * VREF) / 1023; berekenen van de gemiddelde spanning
De berekende gemiddelde spanning weergeven
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 ("Vdc");
Scount = 0;
som = 0;
}
// -----------------Sketch End-----------------------------