Guten Abend Gemeinde,
Da ich neu in dem Bereich bin habe ich eine kleine Frage zum
Programmieren über Arduino IDE.
Und zwar gibt es ein Befehl womit ich den delay Zeitraum verkleinern
kann.
z.B. ich habe 3 led,s nebeneinander die sollen alle nach einander
leuchten, und wieder zurück zum angang also
digitalWrite(blau, HIGH);
delay(1000);
digitalWrite(blau, LOW);
digitalWrite(gruen, HIGH);
delay(1000);
digitalWrite(gruen, LOW);
digitalWrite(rot, HIGH);
delay(1000);
digitalWrite(rot, LOW);
digitalWrite(gruen, HIGH);
delay(1000);
digitalWrite(gruen, LOW);
usw....
nun möchte ich aber die pause, nach jeden Ablauf um ein beliebigen Wert
z.B. 10ms verkürzen bis ich bei 0 angekommen bin.
Gibt es dafür einen kurzen befehl oder muss ich den Ablauf jetzt 100 mal
dort hinschreiben und bei jeden Ablauf die Pause verkürzen?
Vielen Dank
Der Grundansatz ist natürlich schon mal Mist, aber der MC sonst nichts
zu tun kann man das schon so machen.
delay () akzeptiert normalerweise nur Konstanten als Parameter.
Du baust dir also ein Unterprogramm mit einer Schleife und delay (1) und
übergibst die gewünschte Verzögerungszeit als Argument.
Das UP arbeitet nun delay(1) x mal ab.
delay(x) macht x Millisekunden Pause. Verkleinert man x wird die Pause
kürzer. Einfach oder?
Man kann für delay auch ohne weiteres eine Variable benutzen, wie:
wartezeit = 1000;
delay(wartezeit);
wartezeit = wartezeit - 10;
usw...
das mit der Variable und der Wartezeit hat wunderbar geklappt was das
verringern angeht.
Nun hapert es noch ein wenig beim aufwärts, sprich wenn er bei der die
Wartezeit bei 0 angekommen ist soll sie in 10er schritten wieder hoch
bis 1000ms gehen.
Dirk N. schrieb:> Nun hapert es noch ein wenig beim aufwärts, sprich wenn er bei der die> Wartezeit bei 0 angekommen ist soll sie in 10er schritten wieder hoch> bis 1000ms gehen.
Eine so schlechte Schreibweise ist schon mal erwähnenswert. Und Mut hast
Du auch, eine so dusselige Frage zu stellen!
Befrage die Suchmaschine nach Arduino und arbeite Grundlagen ab. Arduino
ist eine ganz tolle Umgebung, die immer wieder durch total faule Leute
in Mißkredit gebracht wird - fühle Dich angesprochen.
Manfred schrieb
> Eine so schlechte Schreibweise ist schon mal erwähnenswert. Und Mut hast> Du auch, eine so dusselige Frage zu stellen!>> Befrage die Suchmaschine nach Arduino und arbeite Grundlagen ab. Arduino> ist eine ganz tolle Umgebung, die immer wieder durch total faule Leute> in Mißkredit gebracht wird - fühle Dich angesprochen.
Wieso ist das eine dusselige Frage?
Wie gesagt ich versuche gerade mir ein bisschen Wissen was Arduino
angeht anzueignen. Und da musst du mir nicht mit irgendwelchen Sprüchen
kommen.
Wozu sind die Foren denn da? Um Erfahrungen miteinander auszutauschen.
Und da ich in dem Bereich kaum Erfahrung habe, wende ich mich an euch.
Und jedem können mal Schreibfehler unter kommen.
Und nur zu Info mein Sketch läuft.
Dirk N. schrieb:> Und da ich in dem Bereich kaum Erfahrung habe, wende ich mich an euch.
Das kannst du ändern!
Dann lautet der Tipp:
Schaffe dir ein C/C++ Buch an, und lerne die Sprache.
Dirk -. schrieb:> Wieso ist das eine dusselige Frage?> Wie gesagt ich versuche gerade mir ein bisschen Wissen was Arduino> angeht anzueignen. Und da musst du mir nicht mit irgendwelchen Sprüchen> kommen.
Sprüche und Wahrheit sind verschiedene Dinge.
> Wozu sind die Foren denn da? Um Erfahrungen miteinander auszutauschen.
Eben, Erfahrungen auszutauschen.
> Und da ich in dem Bereich kaum Erfahrung habe, wende ich mich an euch.
Du hast nicht "kaum Erfahrung", Du hast schlicht und einfach garkeine.
Du hast noch nicht einmal einfachste_Grundlagen durchgearbeitet!
Ich habe mir 2015 zwei China-Unos kommen lassen, vier LEDs dran gelötet
und Lauflicht gespielt. Dann habe ich stundenlang diverse
Anfängerscripte bespielt, mir zwei Bücher besorgt und eigenständig
"Blink ohne delay" bespielt, ein Display angesteuert, ein Drehpoti
abgefragt und und und - ohne im Forum herumzukaspern. Dein "Problem" ist
dermaßen billig, dass man es an einem Nachmittag eigenständig lösen
kann.
Ich hätte bei meinen letzten zwei Projekten 17 Threads aufmachen können,
was nicht erwartungsgemäß funktioniert. Ich habe es nicht getan, habe
stattdessen Beschreibungen gesucht ('ergooglet') und mir eigenes Wissen
erarbeitet. Gucke ich auf meine ehemaligen Lehrlinge, die waren im
Endefekt stolz, Lösungen selbst gefunden zu haben anstatt dass ich sie
ihnen vorgekaut hätte.
> Und jedem können mal Schreibfehler unter kommen.
Ich zähle die jetzt nicht durch und einzeln auf, aber mehr als ein
Schreibfehler war das schon.
Hallo Dirk,
F1 schrieb
>wartezeit = 1000;>delay(wartezeit);>wartezeit = wartezeit - 10;>usw...
Du kannst in etwa das Beispiel von F1 nehmen und die folgende Zeite ein
wenig abändern:
Hi
Würde auf <Minwert+abs(aenderung) und >Maxwert-abs(aenderung) ändern, da
so die Änderungsgeschwindigkeit beliebig (auch während des Ablauf)
angepasst werden kann, ohne ein Überschwingen zu bekommen.
Nur ist mir nicht bekannt, wie die Absolut-Funktion des Arduino heißt
(also vorzeichenlose Zahl)
MfG
ChrisMicro schrieb
> Hallo Dirk,>> F1 schrieb>>wartezeit = 1000;>>delay(wartezeit);>>wartezeit = wartezeit - 10;>>usw...>> Du kannst in etwa das Beispiel von F1 nehmen und die folgende Zeite ein> wenig abändern:> wartezeit = wartezeit - aenderung;>> Für das langsamer werdenaenderung = 10;>> Für das schneller werden> aenderung = -10;>> Dann musst du nur noch die Grenzen überprüfen:> if(wartezeit<0) aenderung = 10;> if(wartezeit>1000) aenderung = -10;>> Viel Spaß damit.
Das werde ich mal testen bzw. versuchen zu schreiben.
> Nur ist mir nicht bekannt, wie die Absolut-Funktion des Arduino heißt> (also vorzeichenlose Zahl)
Was meinst du damit?
> Hallo,> ich würde dir dies hier gerne aufs Herz legen :-))>> http://www.mikrocontroller.net/attachment/279643/Arduino_Kochbuch__super_.pdf
Danke, Habe ich heruntergeladen und werde mir mal die Zeit nehmen und
mir das durchlesen.
Thomas Eckmann schreibt
> Manfred schrieb:>> Ich zähle die jetzt nicht durch und einzeln auf, aber mehr als ein>> Schreibfehler war das schon.>> Genau:>> Manfred schrieb:>> , Du>> Manfred schrieb:>> garkeine.>> Manfred schrieb:>> Endefekt>> Aber sonst bist du ein ziemlich toller Typ.
Genau Thomas so sieht es aus, Manfred sollte erst die Fehler bei sich
selbst suchen.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang