/* -------------------------------------------------------- adc_demo.ino Demoprogramm zum Einlesen analoger Werte, hier 2 analoge Inputs 28.02.2026 R. Seelig -------------------------------------------------------- */ #include #include "v003_adc.h" // Objekte erzeugen, Konstruktor erwartet GPIO-Pin, auf dem // ein analoger Wert eingelesen wird. Erlaubte Pins sind: // PA2, PA1, PC4, PD2 .. PD6 ADC analog1(PD4); ADC analog2(PA1); /* ---------------------------------------------------------- textnvalue gibt einen Text, gefolgt von einem Integer, der als Pseudokommazahl, je nach Mode, ausgegeben werden kann. Abschliessend erfolgt ein weiterer Stringtext Uebergabe: *s : Zeiger auf einen AsciiZ String value : Integerwert *s2 : zweiter String mode : Ausgabemodus, 0 = Integerwert 1 = mit Dezimalpunkt Bsp.: textnvalue("Temp.: ", 123, "C\n\r", 1); gibt aus: Temp,: 12.3 C ---------------------------------------------------------- */ void textnvalue(char *s, int16_t value, char *s2, uint8_t mode) { int16_t vorkomma, nachkomma; Serial.print(s); if (mode) { Serial.print(value / 100); Serial.print("."); Serial.print(value % 100); } else { Serial.print(value); } Serial.print(s2); } /* ---------------------------------------------------------- setup ---------------------------------------------------------- */ void setup() { Serial.begin(115200); Serial.print("\n\r --------------------------------------\n\r"); Serial.print(" CH32V003 running at 48 MHz \n\r"); Serial.print(" 16 kByte Flash, 2 KByte RAM \n\r"); Serial.print(" \n\r"); Serial.print(" Arduino-Demo: ADC, 2 analoge Inputs \n\r"); Serial.print(" \n\r"); Serial.print(" 28.02.2026 R. Seelig \n\r"); Serial.print(" --------------------------------------\n\n\r"); } /* ---------------------------------------------------------- loop ---------------------------------------------------------- */ void loop() { uint16_t count = 0; uint16_t val1, val2; while(1) { val1= analog1.calc_spg(analog1.read(), 4990); delay(20); val2= analog1.calc_spg(analog2.read(), 4990); textnvalue("\rCounter: ", count, " | ", 0); textnvalue("In 1: ", val1, " V | ", 1); textnvalue("In 2: ", val2, " V ", 1); count++; delay(1000); } }