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:
  • 1 Bewertungen - 2 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Thermometer mit 7 Segment Anzeige
17.05.2016, 16:17
Beitrag #25
RE: Thermometer mit 7 Segment Anzeige
Zitat:Jetzt noch eine Frage, könnte man das minus bei Temperaturen kleiner (-10)
um eine Stelle nach rechts verschieben?
Wen du ein bisschen selbst überlegst, wirst du eine Lösung finden.

Code:
shiftOut(DATA, CLOCK, LSBFIRST, digits[96]);
Das hast du schon mal ein sehr grober Fehler eingebaut, oder hat deine Array digits mehr als 96 Elemente ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.05.2016, 20:11
Beitrag #26
RE: Thermometer mit 7 Segment Anzeige
Oha ,stimmt. Da muss natürlich shiftOut(DATA, CLOCK, LSBFIRST, 0B00000000); rein.
Mit dem minus habe ich es so gedacht, 1. Stelle bei zweistelliger Zahl aus und bei negativer zweistelliger Zahl minus an und bei einstelligen negativer Zahl wieder aus. 2. Stelle bei zweistelliger Zahl, die Zahl, bei einstelligen Zahl aus und bei einstelligen negativer Zahl das minus an.
Das wäre die Theorie.
Könnte das so funktionieren?
Gruß ottii50
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.05.2016, 21:29
Beitrag #27
RE: Thermometer mit 7 Segment Anzeige
Zitat:Könnte das so funktionieren?
Einfach probieren, sollte eigentlich gehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.05.2016, 08:33 (Dieser Beitrag wurde zuletzt bearbeitet: 20.05.2016 09:17 von ottii50.)
Beitrag #28
RE: Thermometer mit 7 Segment Anzeige
Hallo Mathias, hab es mit " if, else if und else gemacht, funktioniert auch.
Nur die erste Stelle mit dem Minus funktionert nicht, geht erst bei (-1,1°C) aus,ansonsten ist sie immer an. Auch im positiven Bereich. Da ist noch der Wurm drin.
Code:
if (zahl[2] > 0)
    {
    shiftOut(DATA, CLOCK, LSBFIRST, digits[zahl[2]]);
    }
    else if (n < 0) {
    shiftOut(DATA, CLOCK, LSBFIRST, 0B00000010);
    }
    else
    {
      shiftOut(DATA, CLOCK, LSBFIRST, 0B00000000);
      }    
  if (n < -10) {
    shiftOut(DATA, CLOCK, LSBFIRST, 0B00000000);
  }  
  else {
    shiftOut(DATA, CLOCK, LSBFIRST, 0B00000010);
  }

gruß...ottii50

Ohh.... habs bemerkt, so geht es nicht da muss das minus ja immer an sein!!

Komm nicht weiter, hab schon verschiedene Sachen probiert.
Jetzt ist das minus bei (-0,9°C) an und nicht mehr aus AngryAngryAngry
Bei if (n < -10) leuchtet das Minus ab (-1°C), soll aber erst ab (-10°C) an seinHuh
Ich denke es liegt an der Schreibweise von if (n > -10), hab keinen Plan mehr, bitte um Hilfe!!!Blush
Code:
shiftOut(DATA, CLOCK, LSBFIRST, 0B00000000);
      }    
  if (n > -10) {
    shiftOut(DATA, CLOCK, LSBFIRST, 0B00000010);
  }  
  else {
    shiftOut(DATA, CLOCK, LSBFIRST, 0B00000000);
  }
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.05.2016, 16:15
Beitrag #29
RE: Thermometer mit 7 Segment Anzeige
Kannst du mal die ganz "void displayNumber " posten, dann sieht man mehr.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.05.2016, 17:27
Beitrag #30
RE: Thermometer mit 7 Segment Anzeige
Natürlich, hab es auch schon mit abs(n) versucht, geht auch nicht.

Code:
void displayNumber(int n)
{
byte zahl[3];
  int na = abs(n);
  zahl[0] = na % 10;
  zahl[1] = na % 100 / 10;
  zahl[2] = na / 100;

  digitalWrite(LATCH, LOW);
  shiftOut(DATA, CLOCK, LSBFIRST, digits[zahl[0]]);
  shiftOut(DATA, CLOCK, LSBFIRST, digits[zahl[1]]);
  if (zahl[2] > 0)
    {
    shiftOut(DATA, CLOCK, LSBFIRST, digits[zahl[2]]);
    }
    else if (n < 0) {
    shiftOut(DATA, CLOCK, LSBFIRST, 0B00000010);
    }
    else
    {
      shiftOut(DATA, CLOCK, LSBFIRST, 0B00000000);
      }    
  if (abs(n) >= -10) {
    shiftOut(DATA, CLOCK, LSBFIRST, 0B00000000);
  }  
  else {
    shiftOut(DATA, CLOCK, LSBFIRST, 0B00000010);
  }
digitalWrite(LATCH, HIGH);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.05.2016, 18:45
Beitrag #31
RE: Thermometer mit 7 Segment Anzeige
Versuche mal das hier.
Syntax-Fehler sollte es keine haben.

Code:
void displayNumber(int n) {
    const unsigned char blank = 0B00000000;
    const unsigned char minus = 0B01000000;
    const unsigned char punkt = 0B10000000;

    int na = abs(n);
    digitalWrite(LATCH, LOW);
    if (n >= 100) {
        if (n < 0) {
            shiftOut(DATA, CLOCK, LSBFIRST, minus);
        } else {
            shiftOut(DATA, CLOCK, LSBFIRST, blank);
        }
        shiftOut(DATA, CLOCK, LSBFIRST, digits[na % 10]);
        shiftOut(DATA, CLOCK, LSBFIRST, digits[na % 100 / 10] | punkt);
        shiftOut(DATA, CLOCK, LSBFIRST, digits[na / 100]);
    } else {
        shiftOut(DATA, CLOCK, LSBFIRST, blank);
        if (n < 0) {
            shiftOut(DATA, CLOCK, LSBFIRST, minus);
        } else {
            shiftOut(DATA, CLOCK, LSBFIRST, blank);
        }
        shiftOut(DATA, CLOCK, LSBFIRST, digits[na % 10] | punkt);
        shiftOut(DATA, CLOCK, LSBFIRST, digits[na / 10]);
    }
    digitalWrite(LATCH, HIGH);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.05.2016, 19:26
Beitrag #32
RE: Thermometer mit 7 Segment Anzeige
Danke Mathias, werde es am kommenden WE probieren.
Wünsche eine schöne Woche!
Gruß ... ottii50
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  merkwürdige Anzeige bei lektion 17 lecker16 7 160 20.11.2016 22:40
Letzter Beitrag: Tommy56
Smile Datum Anzeige mit 7 Segmentanzeige ottii50 11 897 16.05.2016 19:12
Letzter Beitrag: Mathias
  Leonardo- Anzeige von MIDI-Daten an ws2812b Modinox 7 479 26.01.2016 13:11
Letzter Beitrag: Bitklopfer
  OLED Display anzeige von Logo falsch ! b3ta 0 333 23.01.2016 15:12
Letzter Beitrag: b3ta
  8 LED , 7-Segment-Elemente einzeln ansteuern beim tm1638 und die Buttons arduinofan 0 501 15.01.2016 22:37
Letzter Beitrag: arduinofan
  8x7 Segment LED Anzeige / Sketch verändern w1ck3d 3 647 23.11.2015 17:56
Letzter Beitrag: hotsystems
  7-Segment Multiplex, überblendet Mathias 4 710 18.11.2015 17:22
Letzter Beitrag: Mathias
  Drehzahl Anzeige Analog (neuling) Kuxii 9 1.112 30.10.2015 12:01
Letzter Beitrag: hotsystems
  Sieben Segment LED Anzeige Tellen 10 1.814 18.06.2015 21:21
Letzter Beitrag: Tellen
  fehler in anzeige von float avoid 11 1.910 12.04.2015 16:32
Letzter Beitrag: HaWe

Gehe zu:


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