Arduino schlatet LED nicht aus ( nur ein kleines Problem)

vor 48 weeks 4 days von Freeeduino

Hallo
habe lange nichts mehr mit dem arduino gemacht und wollte mich mal wieder dransetzen.

Habe hier ein kleines Programm geschreiben, welches eine Zahl über die Serielle Schnitstelle einließt und eine LED dementsprechend oft blinken soll. Aber die LED Bleibt einfach an und geht nicht aus .

Desweiteren wollte ich noch fragen , wie man es machen, dass man auch Zahlen 10+ eintippen kann also mehrstellig ?

Her erstmal der Quellcode

int gelb = 3 ;
int green = 2 ;
int counter;
char serial;

void setup() {
Serial.begin(9600);
Serial.println("Connection established baud 9600");
pinMode(green, OUTPUT);
pinMode(gelb, OUTPUT);
Serial.flush();
Serial.println ("Serial buffer erased");
}

void loop () {
digitalWrite(gelb,HIGH);
if (Serial.available() > 0 )
{ serial = Serial.read();
Serial.print ("Serial data received ->");
Serial.println (serial);
}
while(serial > 50)
{digitalWrite(gelb,LOW);
digitalWrite(green,HIGH);
delay(500);
digitalWrite(green,LOW);
serial = serial -1;
}

}

Ähnliche Posts

9 Antworten auf “Arduino schlatet LED nicht aus ( nur ein kleines Problem)”


Comment viewing options

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

    Hi, ich hätte ja nach deinem Text und der Überschrift erwartet, dass es nur um einen Tippfehler geht... Liest du das eigentlich bevor du auf Save drückst?

    Was hat die 50 da zu suchen? Und Wenn du mehr als ein Zeichen senden willst, warum fragst du dann auf >0 und nicht auf >1 ab?

    Login or register to post comments

  1. Freeeduino sagt:

    okay fnagen wir nochmal an, mit nur einer zahl als eingabe, habe das problem mit dem blinken gelöst ( dumme sache dalay(500); vergessen -.- )

    Hier nun nochmal das richtige Programm

    int gelb = 3 ;
    int green = 2 ;
    int taster = 4;
    int serial;

    void setup() {
    Serial.begin(9600);
    Serial.println("Connection established baud 9600");
    pinMode(green, OUTPUT);
    pinMode(gelb, OUTPUT);
    pinMode(taster, INPUT);
    digitalWrite(taster, HIGH);
    Serial.flush();
    Serial.println ("Serial buffer erased");
    }

    void loop () {
    digitalWrite(gelb,HIGH);
    if (Serial.available() > 0 )
    { serial = Serial.read();
    Serial.print ("Serial data received ->");
    Serial.println (serial);
    }
    while(serial > 0)
    {digitalWrite(gelb,LOW);
    digitalWrite(green,HIGH);
    delay(500);
    digitalWrite(green,LOW);
    delay(500);
    serial = serial -1;
    Serial.println (serial);
    }

    }

    aber was ich nun nicht verstehe und zwar wenn ich den Variablentyp der variable "serial" auf int (integer) setze, dann fängt der bei einer eingabe von 3 bei 51 an zu zählen und zählt runter bis 0. Setze ich den Variablentyp auf char (charakter), dann fängt er zwar tatsächlich bei 3 an zu zählen, zählt jedoch immer weiter runter (3,2,1,0,/,.,-,,,+,*,),(,',&,%,$,#,",! ...)

    wie kann ich das umgehen?

    Login or register to post comments

  1. Freeeduino sagt:

    Wenn ich mal fragen darf, wie soll mir die ASCI Tabelle helfen? Wäre hilfreicher, wenn du mir auch sagen könntest, wie ich die in meinem Programm anwenden soll.

    Und was soll das mit der Duden Rechtschreibprüfung? (nur weil ich öfters einmal Wörter klein schreibe??)

    Login or register to post comments

  1. chrimbo sagt:

    Guck mal wo in der Tabelle deine Zahlen stehen. Und beschäftige dich mal mit der Uart. Das sollte ein Anstoß sein selbst zu denken und dir nicht alles vorkauen zu lassen.

    Nein, weil du jedes dritte Wort falsch(!) schreibst

    Login or register to post comments

  1. Freeeduino sagt:

    Kommt vom schnellen Tippen.
    Habe mir jetzt schnell geholfen, indem ich den Variablentyp als Integer deklariert habe und von der Eigabe -48 gerechnet habe, so komme ich auf die korrekten Werte.

    Login or register to post comments

  1. chrimbo sagt:

    Und wenn du dir Zeit für deine Probleme nehmen würdest anstatt zu versuchen sie blitzschnell im Internet einzutippen, wüsstest du auch warum und woher die Magische 48 kommt... aber du wirst das gleiche Problem nochmal bekommen wenn du zweistellige Zahlen eingeben willst.

    Login or register to post comments

  1. Freeeduino sagt:

    Jetzt mal im Ernst , anstatt mir hier Vorträge zu halten, wie schei** ich tippe und das ich mich angeblich nicht genug damit auseinandersetze, könntest du auch ein wenig hilfreich sein und mir helfen anstatt immer nur hier rumzumeckern.

    P.s. Ich erwarte darauf von dir keine Antwort wenn du mir nicht helfen möchtest / kannst dann hör auf hier rumzuposten und lasse Platz, damit mir jemand ernsthaft helfen kann.

    Login or register to post comments

  1. chrimbo sagt:

    Willst du mich eigentlich veräppeln? Wenn du dir mal anschaust wie eine serielle Schnittstelle funktioniert (RS232) und dir dabei noch die ASCII Tabelle anschaust, müsstest du eigentlich darauf kommen, warum, wie und was da eigentlich vorgeht und dann erklärt sich auch dein Problem. Aber wenn du jemanden suchst, der dir das alles vorkaut und in mundgerechten Happen serviert, dann solltest du vielleicht einen Kurs belegen. Vielleicht bietet die Volkshochschule sowas ja an.

    Login or register to post comments