Einlesen von Binär Code.....

vor 30 weeks 2 days von mitch4

Also mein problem besteht darin dass ich eine 7 Segment Anzeige mit 4 Stellen beschalten möchte,
und ich will den Binären code über meine Tastatur mit dem Terminal übertragen....

doch MC hört immer nach ein paar 0 und 1en auf zu übertragen(zählen)

ich lese das signal mittels Serial.read() ein...

es wäre echt super wenn mir jemand helfen könnte oder vl. einen anderen weg sagen könnte wie ich den code einlesen/eigebne kann.

Ähnliche Posts

4 Antworten auf “Einlesen von Binär Code.....”


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
  1. Spot sagt:

    Hallo

    Poste doch mal deinen Sourcecode, so ist ein bisschen schwer zu verstehen was du genau machst.

    mfg
    Spot

    Login or register to post comments

  1. mitch4 sagt:

    void loop()

    {

    if (Serial.read()==48)
    {
    digitalWrite(Digit_1,HIGH);
    Serial.println("ich bin High");
    delay(100);
    }

    if (Serial.read()==49)
    {
    digitalWrite(Digit_1,LOW);
    Serial.println("Ich bin Low");
    delay(100);

    eingabe=Serial.read();
    ausgabe=char(eingabe);

    }

    /// Das ist ist die loop die nicht funktionieren will.

    Also die aufgabe ist es eine 7 Segment anzeige anzusteuern und per Terminal den binär Code übertragen zu können , aber immer wenn zwei nullen aufeinander folgen bricht er die übertragung ab wenn ich im wechsel 010101 übertrage dann klappts was könnte die ursache sein ??

    Login or register to post comments

  1. Spot sagt:

    Hallo

    Dein Fehler liegt darin das du mehrfach Serial.Read() aufrufst.
    Wenn du zb. 010100 schickst dann wird die erste 0 im besten Fall bei if (Serial.read()==48) ausgelesen. Das Programm hängt dann im delay so das die 1 schon zum auslesen bereit steht und das Programm dann auch weiter funktioniert. Wenn du zwei 0(oder auch 1) schickst kann das ganze nicht funktionieren da du ja immer abwechselnd überprüfst.

    Mach daraus:

    void loop()
    {
     unsigned char ucUARTData;
     if(Serial.available())
     {
         ucUARTData = Serial.read();
     
         if(ucUARTData == '0') 
         {
             digitalWrite(Digit_1,LOW);
             Serial.println("ich bin Low");
             delay(100);
         }
     
         if (ucUARTData == '1')
         {
             digitalWrite(Digit_1,HIGH);
             Serial.println("Ich bin High");
             delay(100);
     
         //eingabe=Serial.read(); Ich hab keine Ahnung was die beiden Zeilen machen sollen aber
         //ausgabe=char(eingabe); wenn du wieder ein Serial.read() machst verlierst du ein Zeichen
         }
     }
    }

    mfg
    Spot

    Login or register to post comments

  1. mitch4 sagt:

    //eingabe=Serial.read(); Ich hab keine Ahnung was die beiden Zeilen machen sollen aber
    //ausgabe=char(eingabe); wenn du wieder ein Serial.read() machst verlierst du ein Zeichen

    ja die letzten beiden zeilen sind quatsch die wollt ich eigentlich nicht mit kopieren.

    ja danke für deinen rat bzw. lösung ....

    du hast mir echt weiter geholfen .

    Danke nochmal

    Login or register to post comments