Auf dieser Bildschirmseite wird der gelesene Wert der I2C-DI Karte als Zahl und im Anzeigeinstrument ausgegeben.
char anzeige[15]=““; //Array für Zahlendarstellung void display_di() { CleO.Start(); int tiefeBt1 = 100; CleO.StringExt(FONT_MEDIUM, 160, 0, BLUE, TM, 0, 0, „HOKA I2C DEMO“); //Überschrift CleO.RectangleExt(0, 50, 350, 500, WHITE, TL, 0, 0); //Weißer Hintergrund CleO.CircleExt(160,240,90,100,LIGHTGREY,MM,0,0); //Kreis für Analoganzeige CleO.RectangleExt(0, 240, 320, 100, WHITE, TL, 0, 0); //Rechteck zwecks Halbkreis CleO.NeedleWidth(15); //Nadel für Analoganzeige itoa(getInput(),anzeige,10); //Wert des Moduls in Array speichern CleO.StringExt(FONT_MEDIUM, 160, 90, BLACK, TM, 0, 0, anzeige); //Wert auf Display ausgeben CleO.NeedleExt(160, 240, 110, BLUE,controlNeedle(getInput())+90, 0); //Nadelbewegung nach Wert CleO.LineWidth(30); //Funktion Startseite Button if (penDownOnBack) { penDownOnBack = false; globalCurrSite = 0; } //Startseite Button CleO.Tag(100); CleO.LineColor(BLUE); CleO.Line(0, 375, 350, 375); CleO.StringExt(FONT_MEDIUM,160, 375, WHITE, MM, 0, 0, „Startseite“); //Footer CleO.StringExt(FONT_SANS_2, 160, 440, BLUE, TM, 0, 0, „www.horter.de“); CleO.Show(); } int getInput() { int val; Wire.requestFrom(I2C_IN_ADDR, 1); //Abfrage an Adresse schicken val = 255 – Wire.read(); //Wert invertieren return val; } int controlNeedle(int val) { double b = 0.705; //255 Werte auf 180 Grad -> 0.705 Grad pro +1 int res = b*val; //Position der Nadel anhand von val bestimmen return res; //Auf „int“ gerundetes Ergebnis ausgeben } void control_di() { int16_t x, y, dur, tag; CleO.TouchCoordinates(x, y, dur, tag); if (previousDur == 0 && dur != 0) { previousTag = tag; previousDur = 1; if (tag == 100) penDownOnBack = true; } else if (previousDur == 1 && dur == 0) { previousDur = 0; if (previousTag == 100) penDownOnBack = false; } }