A simple meter using Adafruit 2.8 TFT with touch v2
Dependencies: SPI_STMPE610 UniGraphic mbed vt100
A dumb simple voltage tester using ADC.
With FRDM-KL25Z, you can measure about 0V to 3.28V.
Nothing to drop your jaw nor holding your breath
but I wanted one, so I wrote one ;-)
とても単純はADCを使用した電圧テスターです。
FRDM-KL25Z を使用した場合、0V ~ 3.28V くらいが測定範囲です。
特に目新しいことも、驚くこともありませんが、
自分が欲しいので書いてみました (^ - ^)
On 18-May-2018
I changed the number display from 0.00 to 0.000
so that I can measure the change of a small loadcell.
2018年5月18日
ロードセル (重量センサ)の出力値の変化を見たかったので
有効数字を小数点以下2桁から3桁に変更しました。
main.cpp
- Committer:
- Rhyme
- Date:
- 2018-05-18
- Revision:
- 4:0607a2a46238
- Parent:
- 3:bf8761c8eb17
File content as of revision 4:0607a2a46238:
/** * main.cpp */ #include "mbed.h" #include "ILI9341.h" #include "Arial28x28.h" #include "vt100.h" #include "meter.h" #include "main.h" #define ADC_MAX_VALUE 3.28 vt100 *tty = 0 ; ILI9341 *tft = 0 ; meter *tacho = 0 ; DigitalOut *backlight = 0 ; AnalogIn *vin = 0 ; float min_value = 0.0 ; float max_value = 3.3 ; void initTFT(void) { //Configure the display driver tft->BusEnable(true) ; tft->FastWindow(true) ; tft->background(Black); tft->foreground(White); wait(0.01) ; tft->cls(); tft->BusEnable(false) ; backlight = new DigitalOut(PIN_BL_TFT, 1) ; } void init_hardware(void) { tty = new vt100() ; tty->cls() ; tft = new ILI9341(SPI_8, 10000000, PIN_MOSI, PIN_MISO, PIN_SCLK, PIN_CS_TFT, PIN_RESET_TFT, PIN_DC_TFT, "Adafruit2.8") ; initTFT() ; tft->set_font((unsigned char*) Arial28x28); tft->foreground(White) ; tacho = new meter(5, 5, 230, 230, 0.0, 3.3) ; vin = new AnalogIn(PIN_ADC_CH0) ; *backlight = 1 ; } double getRoundedValue(void) { double value = 0.0 ; int intvalue = 0 ; value = ADC_MAX_VALUE * vin->read() ; intvalue = (int)(1000.0 * value + 0.5) ; value = (double)intvalue / 1000.0 ; return( value ) ; } int main() { float value = 0.0 ; float prev_value = 0.0 ; init_hardware() ; tacho->draw(value) ; while(1) { value = getRoundedValue() ; printf("%.2f\n", value) ; if (value != prev_value) { tacho->update(value) ; prev_value = value ; } wait(0.1) ; } }