FTDI NerO + I2C-Digital Input

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;
 }
 }

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.