INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
DRUCKSENSOR + LCD
11.07.2015, 23:02
Beitrag #1
DRUCKSENSOR + LCD
Servus leute,

versuche momentan ein kleines Projekt von mir umzusetzen.
Ein drucksensor liest werte und soll diese dann auf dem 4-Segment display wiedergeben.

Drucksensor:

- funktioniert einwandfrei Wink

LCD:
-liest den in der Konsole eingegebenen Wert ein und zeigt ihn an.

So ich will aber nicht das er es einliest sondern DIREKT eine Variable nimmt.
Diese habe ich bereits als INTEGER drin, aber der will anscheinend lieber ne CHAR.

Code:
int* lights[4];
char incoming[9] = {};
void display(){
  
  //read the numbers and / or chars from the serial interface
  if (Serial.available() > 0) {
    int i = 0;
    //clear the array of char
    memset(incoming, 0, sizeof(incoming));
    while (Serial.available() > 0 && i < sizeof(incoming) - 1) {
      incoming[i] = Serial.read();
      i++;
      delay(3);
    }
    Serial.println(incoming);
    
    //tmp is for the incoming string and counter for the 4 digits
    int counter = -1;
    for (int tmp = 0; tmp < 9; tmp++) {
      counter++;
      switch(incoming[tmp]){
        case '0':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N0P;
            tmp++;
          } else {
            lights[counter] = N0;
          }
          break;
        case '1':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N1P;
            tmp++;
          } else {
            lights[counter] = N1;
          }
          break;
        case '2':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N2P;
            tmp++;
          } else {
            lights[counter] = N2;
          }
          break;
        case '3':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N3P;
            tmp++;
          } else {
            lights[counter] = N3;
          }
          break;
          case '4':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N4P;
            tmp++;
          } else {
            lights[counter] = N4;
          }
          break;
        case '5':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N5P;
            tmp++;
          } else {
            lights[counter] = N5;
          }
          break;
        case '6':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N6P;
            tmp++;
          } else {
            lights[counter] = N6;
          }
          break;
        case '7':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N7P;
            tmp++;
          } else {
            lights[counter] = N7;
          }
          break;
        case '8':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N8P;
            tmp++;
          } else {
            lights[counter] = N8;
          }
          break;
        case '9':
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            lights[counter] = N9P;
            tmp++;
          } else {
            lights[counter] = N9;
          }
          break;
          case '-':
          lights[counter] = MIN;
          if (tmp  < 8 && (incoming[tmp + 1] == '.' || incoming[tmp + 1] == ',')) {
            tmp++;
          }
          break;        
        
        case 1 ... 43: counter--; break;//special chars are ignored
        //44 to 46 are , - .
        case 47: counter--; break;//special chars are ignored
        //chars between Z and a
        case 91 ... 96: counter--; break;//special chars are ignored
        case 123 ... 127: counter--; Serial.println("above 122"); break;//special chars are ignored
        
        default: lights[counter] = BLANK;
      }
    } //end for
    
  } //end if, i.e. reading from serial interface

und irgendwo hier drin liegt der Hund begraben! der soll mir quasi eine Variable
z.B.
Code:
int maxdruck;
die den Wert 625 hat auf dem Display anzeigen.

Ich hoffe irgendwer kann mir helfen Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Drucksensor Dommas88 1 2.660 06.05.2014 09:19
Letzter Beitrag: stfN2128

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste