Monostufe mit Retrigger für Arduino

OP #8002215
Lesenswert?

Hallo Ich suche ein Programm für Arduino, welches eine Monostufe mit Retrigger beinhaltet. Vorgesehen ist, dass die Monozeit mit dem ersten Tastendruck für z.B. 10 Min. startet. Durch einen weiteren Tastendruck soll sich die Monozeit um weitere 10 Min. verlängern. Genau genommen soll mit jeden Tastendruck die Zeit um 10 Min. verlängert werden. Allerdings beim 6. Tastendruck sollte die Zeitstufe den Vorgang sofort beenden, den Ausgang abschalten bzw. auch die vorherige Tasterwahl auf 0 zurücksetzen. Rücksetzen des Ausgangs auch wenn die eingestellte Monozeit abgelaufen ist. Einige Programme aus dem Internet sind als Monostufe teils auch mit Retrigger lauffähig, wie z.B: https://www.google.com/search?q=retriggerbare+monostufe+mit+arduino+programmieren& … oder: http://www.sachsendreier.com/asw/projekteundexperimente/taste_monoflop/index.php, usw. Nur fehlt bei allen die Stufenschaltung, um die Zeit schrittweise zu verlängern. Für einen Tipp oder Programmvorschlag wäre ich dankbar. Gruß Rolf

#8002266
Lesenswert?

Das sagt ChatGPT (nicht schlecht)

1
const int buttonPin = 2;
2
const int outputPin = 8;
3

4
const unsigned long stepTime = 600000UL; // 10 Minuten
5
const int maxPresses = 6;
6

7
unsigned long offTime = 0;
8
int pressCount = 0;
9

10
bool lastButtonState = HIGH;
11

12
void setup() {
13
  pinMode(buttonPin, INPUT_PULLUP);
14
  pinMode(outputPin, OUTPUT);
15
  digitalWrite(outputPin, LOW);
16
}
17

18
void loop() {
19
  bool buttonState = digitalRead(buttonPin);
20

21
  // Flankenerkennung (Taste gedrückt)
22
  if (lastButtonState == HIGH && buttonState == LOW) {
23
    pressCount++;
24

25
    // 6. Tastendruck → sofort AUS
26
    if (pressCount >= maxPresses) {
27
      digitalWrite(outputPin, LOW);
28
      pressCount = 0;
29
      offTime = 0;
30
    } 
31
    else {
32
      unsigned long now = millis();
33

34
      // Monoflop starten oder verlängern
35
      digitalWrite(outputPin, HIGH);
36
      offTime = (offTime < now) ? (now + stepTime) : (offTime + stepTime);
37
    }
38

39
    delay(50); // Entprellung
40
  }
41

42
  lastButtonState = buttonState;
43

44
  // Zeit abgelaufen?
45
  if (digitalRead(outputPin) == HIGH && millis() >= offTime) {
46
    digitalWrite(outputPin, LOW);
47
    pressCount = 0;
48
  }
49
}

Und ChatGPT kann auch Humor!

"Wieviel Energie hat es gekostet, dieses Programm zu schreiben?

Kurzfassung: praktisch nichts Relevantes 😄

Etwas ausführlicher – mit einem Augenzwinkern:

Meine Seite: Ich selbst „verbrauche“ keine Energie im klassischen Sinn. Ich rechne nicht lokal, sondern laufe auf Servern. Für diese Antwort und den Code reden wir grob von ein paar Wattsekunden Rechenzeit auf Rechenzentrums-Hardware. Das liegt eher im Bereich Millisekunden · einige Watt → also < 1 Joule pro Anfrage.

Rechenzentrum (grob geschätzt): Selbst großzügig gerechnet:

z. B. 50 W für 0,1 s

Energie = 50 W × 0,1 s = 5 Joule

Das entspricht etwa:

der Energie, um eine 1-W-LED 5 Sekunden leuchten zu lassen 💡

oder einen Tropfen Wasser minimal zu erwärmen

Deine Seite: Wahrscheinlich hat dein Arduino beim Lesen mehr Energie verbraucht als das Schreiben des Codes 😉 Und dein Gehirn beim Verständnis nochmal deutlich mehr 🧠⚡"

Wobei ich die Rechnung anzweifle, wie so oft ;-)

#8002420
Lesenswert?

Rolf Z. schrieb:

Ich suche ein Programm für Arduino, welches eine Monostufe mit Retrigger beinhaltet.

Falls es noch nicht zu Dir durchgedrungen ist: Arduino kann nicht nur mit fertigen Programmen betrieben werden, sondern erlaubt auch den Einsatz eigener.

Nemopuk schrieb:

Willst du etwas kaufen, oder Programmieren lernen?

Weder noch, er will etwas kopieren.

Falk B. schrieb:

Ich zweifle die Rechnung von ChatGPT zum Energieverbrauch an

Musst Du schon wieder mit diesem Scheißdreck herumspammen?

OP #8002564
Lesenswert?

Danke ans Forum für die Infos ChatGBT zeigte ein Programm, es geht, aber die Funktion ist nicht die Gewünschte. Ich habe zum Test die Zeiten auf 10 sec. gekürzt. Die Tastungen stimmen nicht, die Zeiten sind ok. Werde mal mit dem Programm weitermachen. Die Klugen Sprüche, dass man den Arduino selbst programmieren kann kannste dier sparen! Wenn ich es könnte würde ich mich nicht an euch wenden, mit der Hoffnung keine Klugscheißereien zu erhalten.

#8002579
Lesenswert?

Rolf Z. schrieb:

Die Klugen Sprüche, dass man den Arduino selbst programmieren kann kannste dier sparen! Wenn ich es könnte würde ich mich nicht an euch wenden, mit der Hoffnung keine Klugscheißereien zu erhalten.

Keinem ist das in die Wiege gelegt worden, auch den größten Experten nicht. Das fällt nicht vom Himmel, sondern das muss jeder SELBST LERNEN. Gerade für Arduino gibt es als Einstieg viel Beispielcode, mit dem man anfangen und den man selbst ausbauen kann.

Rolf Z. schrieb:

Die Tastungen stimmen nicht

Was meinst du damit? Mit so einer unspezifischen Fehlerbeschreibung kann man wenig anfangen.

: Bearbeitet durch User
Gast #8002721
Lesenswert?

Mi N. schrieb:

Das ist dann aber kein nachtriggerbares Monoflop. Und deren Funktion ist definiert worden, als es Arduino noch garnicht gab.

Da hast Du Recht. Aber Rolf beschreibt ja dann im Text, was er haben will.

@Rolf: hmmm, du hast dir nen Arduino zugelegt. Ich gehe einfach mal davon aus, dass du den auch selbst programmieren willst. Da ist deine geplante Anwednung geradezu ideal. Nicht zu komplex, kein Netzwerkzeug etc.

Nimm doch einfach den gpt-Code und passe ihn so an, dass er funktioniert wie gewünscht. AFAIK ist da auch kein Tasten-Entpreller drin...

Und ja, den gpt-Beifang hättest Du nicht unbedingt zu posten brauchen. Aber ich verstehe dich schon ein wenig, denn manchmal ist man einfach überrascht über die Konversation mit gpt... ;-)

ciao

Marci

#8002897
Lesenswert?

Mi N. schrieb:

Ich bin ein wenig irritiert, daß hier die Funktion eines nachtrigerbaren Monoflops nicht bekannt ist.

Es geht hier nicht um ein nachtriggerbares Monoflop, jedenfalls nicht, falls man die Anforderungen an die Funktion liest.

Rolf Z. schrieb:

Vorgesehen ist, dass die Monozeit mit dem ersten Tastendruck für z.B. 10 Min. startet. Durch einen weiteren Tastendruck soll sich die Monozeit um weitere 10 Min. verlängern.

#8002920
Lesenswert?

Rolf Z. schrieb:

Die Klugen Sprüche, dass man den Arduino selbst programmieren kann kannste dier sparen!

Wenn ich es könnte würde ich mich nicht an euch wenden

Ersetze "könnte" durch "wollte".

Rahul D. schrieb:

Vielleicht soll ja doch die nächste Zeitdauer hinten angehängt werden. Fünf mal drücken: 50 Minuten Laufzeit. Sechster Druck: Reset (weil man sich verdrückt hat).

Das wäre die Bedienung des Ansmann Timers AES-1, die sehr praxisgerecht ist: Erster Tastendruck Ein für 15 min, jeder weitere 30 - 60 - 2h - 4h - 8h. Der nächste Tastendruck lässt die 15 min LED blinken und nach ein paar Sekunden schaltet das Gerät ab. Ich vermute, dass das ein ATTiny macht, 8-Pin-SMD.

Marci W. schrieb:

@Rolf: hmmm, du hast dir nen Arduino zugelegt. Ich gehe einfach mal davon aus, dass du den auch selbst programmieren willst.

Das klingt anders.

Da ist deine geplante Anwednung geradezu ideal. Nicht zu komplex, kein Netzwerkzeug

Sehe ich ebenso, aber dafür muß man wollen.

Nimm doch einfach den gpt-Code und passe ihn so an, dass er funktioniert wie gewünscht.

Das halte ich für keine gute Idee, der Umbau fremden Codes ist meist schwieriger, als eigenen zu schreiben.

AFAIK ist da auch kein Tasten-Entpreller drin

Wird man dann lernen. Das ist in dieser Anwendung ganz einfach zu machen, weil nichts zeitkritisch ist.

OP #8003271
Lesenswert?

Das Programm für die Monostufe am Arduino geht jetzt. Grudlage hierfür ist der Vorschlag von Falk B. mit ChatGPT mit einigen Änderungen. Ihr habt schon recht, man lernt es durchs Selbermachen. Aber auf dumme Sprüche und Belehrungen sollte man verzichten, es kann nicht jeder so klug sein wie so mancher hier. Einige konnten wenigstens meine Anfrage lesen und verstehen. Das Forum ist doch sicherlich angelegt um Fragen oder Ideen auszutauschen, auch wenn diese von Anfängern gestellt werden. Danke nochmals Gruß Rolf

Beitrag #8004456 wurde vom Autor gelöscht.
#8005271
Lesenswert?

Hallo,

freut mich. Der kleine Unterschied ist, Falk hat mit ChatGPT es genau auf deine Anforderung zugeschnitten. Bei mir sieht man eine Klasse die man wiederverwenden kann. Du kannst im Programm oder in einem anderen mehrere unabhängige Taster Instanzen anlegen. Es muss auch kein Klassen Template sein, normale Klasse reicht auch aus, lag gerade zur Hand. Welches Programm du verwendest kannst du ganz allein für dich entscheiden. Wichtig ist du musst verstehen was passiert. Da ist Falks zugegeben einfacher zu lesen. Alles andere kommt mit der Zeit wenn du dran bleibst.

OP #8029308
Lesenswert?

Hallo, noch ein Nachtrag: Wie am 5.2. geschrieben läuft das Programm. Es zeigte sich aber nach einigen Tagen, dass dies nicht so ist. Bei meinen zwei Schaltungen wurden Arduino-Nanos aus China eingesetzt, die sich im Programm aufhängten. Bei zwei anderen aus China war dies schon nach wenigen Stunden der Fall. Der Wechsel zum Original Arduino Nano und bei der zweiten Schaltung zu einem JOY-IT Nano brachte den Erfolg. Die beiden Schaltungen laufen jetzt schon über 20 Tage ohne Ausfall. Früher hatte ich Original bzw. JOY-IT eingesetzt, das wird wohl in Zukunf auch so bleiben, also für mich, Finger weg von China.

OP #8029405
Lesenswert?

Hallo, gestorben scheint nichts zu sein, die Nanos aus China können neu mit dem Programm geladen werden und laufen dann wieder einige Stunden bis zum oben erwähnten Aufhängen vom Programm. Das Arduino-Testrogramm "Blink" hingegen läuft bei diesen China-Modulen ohne Ausfall.

#8029407
Lesenswert?

Rolf Z. schrieb:

Hallo, gestorben scheint nichts zu sein, die Nanos aus China können neu mit dem Programm geladen werden und laufen dann wieder einige Stunden bis zum oben erwähnten Aufhängen vom Programm. Das Arduino-Testrogramm "Blink" hingegen läuft bei diesen China-Modulen ohne Ausfall.

Na dann würde ich als unabhängiger Betrachter mal auf einen Programmierfehler schliessen.

#8029408
Lesenswert?

Rolf Z. schrieb:

gestorben scheint nichts zu sein, die Nanos aus China können neu mit dem Programm geladen werden und laufen dann wieder einige Stunden bis zum oben erwähnten Aufhängen vom Programm.

Was heißt denn aufhängen? Drückst du dauernd die Taste? Das klingt eher nach einem kombinierten Software-Hardware Problem. Das Programm vom Veit ist mir zu kompliziert, das muss er selber oder ein anderer anschauen, ob dort eventuell ein Fehler drin steckt, der zu einem Verklemmen führen kann.

#8029430
Lesenswert?

Hallo,

a) es kann ein Softwareproblem sein b) es kann ein Hardwareproblem sein

Die Frage lautet was ist es wirklich? Die Fehlerbeschreibung sagt mir nicht viel. Die Fehlerbeschreibung zeigt aktuell eher ein Hardwareproblem. Die gleiche Software läuft mit 2 Boards nicht und mit 2 anderen Boards schon. Was sagt die serielle Ausgabe wenn diese dauerhaft mitläuft? Welche Software wird denn aktuell verwendet? Die Fehlerbeschreibung sollte auch präziser sein. Was bedeutet "hängt sich auf"? Reagiert es nicht auf Tastendruck? Bleibt es anderweitig nachprüfbar stehen? Schaltet die "Led" nicht mehr aus? Was genau? Wie sieht denn die komplette Schaltung überhaupt aus? Was wird geschalten? Mir ist auch nicht klar welche Software verwendet wird. Auf Grund der Beschreibung ist es für mich allerdings aktuell kein Softwarefehler.

: Bearbeitet durch User
#8029441
Lesenswert?

Falk B. schrieb:

Alexander schrieb:

Die ATmega sind vermutlich nicht defekt, wohl eher die AMS1117 oder Fake-FTDI bzw. CH340 Serial Konverter gestorben.

Jaja, der Experte mal wieder. Dumm nur, daß die USB-Verbindung hier gar nicht benötigt wird . . .

Haben die nicht? Was ist das da auf der Rückseite?

https://www.aliexpress.com/item/1005004305055818.html

Angehängte Dateien:
#8029468
Lesenswert?

Zu dem Zeitpunkt war mir nicht klar dass gar nicht von einen Totalausfall der Hardware die Rede gewesen ist. Da die sich aber noch flashen lassen (wohl auch über USB) ist das hinfällig.

Mir fällt nur noch auf dass in den loop() kein delay drin ist. Keine Ahnung ob das beim ATmega überhaupt eine Rolle spielt? Nehme an der wird auch mit 100% CPU Last nicht viel Strom brauchen.

Ansonsten kann es ja eigentlich nur in dem Teil des Codes ein Problem sein den Rolf hinzugefügt hat.

(Firma: Gast) #8029480
Lesenswert?

Alexander schrieb:

Mir fällt nur noch auf dass in den loop() kein delay drin ist. Keine Ahnung ob das beim ATmega überhaupt eine Rolle spielt? Nehme an der wird auch mit 100% CPU Last nicht viel Strom brauchen.

Was soll das bedeuten?

Ach ja... Du brauchst auf meine Frage nicht antworten. Denn die Antwort wird sicherlich irrational sein. Und da hat keiner was von.

OP #8029481
Lesenswert?

Hallo. Ein Software.- oder Hardwareproblem der Außenbeschaltung mit Taster, LCD-Anzeige und Relais ist es nicht, da der Original-Arduino-Nano und der JOY-IT das Programm einer Monostufe wie oben vom 31.01 beschrieben abarbeitet und nach mehreren Tagen, im Gegensatz zu den 4 China-Nanos, nicht ausfällt. Daher für ca. 6 € einen JOY-IT oder auch für ca. 20 € einen Original beim Reichelt, Pollin oder Conrad und die Sache läuft.

#8029486
Lesenswert?

Rolf Z. schrieb:

Ein Software.- oder Hardwareproblem der Außenbeschaltung mit Taster, LCD-Anzeige und Relais ist es nicht, da der Original-Arduino-Nano und der JOY-IT das Programm einer Monostufe wie oben vom 31.01 beschrieben abarbeitet und nach mehreren Tagen, im Gegensatz zu den 4 China-Nanos, nicht ausfällt.

Das mag sein, schließt aber die Probleme nicht aus. Du willst es nicht herausfinden. OK.

(Firma: Gast) #8029516
Lesenswert?

Alexander schrieb:

Arduino F. schrieb:

Was soll das bedeuten?

Arduino Fanboy stellt sich dumm.. gerade Du weißt es ganz genau

Nichts weiß ich davon, nicht was du meinst, nicht was du denkst.

Punkt 1: Was soll ein delay() positives auf einem Nano bewirken, was irgendwelche Ausfälle abwenden hilft.

Punkt 2: Ein Nano läuft immer mit 100%, ob mit oder ohne delay(). Nur der sleep mode kann daran was ändern. Aber von dem ist hier keine Rede.

Also klar: Ich habe nichts von dem verstanden, was du mit den Sätzen ausdrücken willst. Entweder kommst du mit eine rationalen Erklärung/Erläuterung, oder ich werde das weiter als dummes Gewäsch betrachten. Und dich eben als Wirrkopf.

: Bearbeitet durch User
(Firma: Starfleet) #8029562
Lesenswert?

Schon mal eine KI befragt? Das ist doch heute fast so normal wie googeln.

Naja, hat der TO wahrscheinlich gemacht und hat ihm nur seine eigene Hilflosigkeit in technischen Dingen offenbart. Aber ja, da ist das "Versprechen" das KI dank Vibe-Coding jeden zum Programmierer macht. https://www.br.de/nachrichten/netzwelt/vibe-coding-ki-hilft-kann-jetzt-jeder-programmieren,Ul3eUmK

BTW, heisst das heutzutage Mono-Stufe und nicht mehr Mono-Flop ? Re-triggerable Monoflop war frühe 'ne simple Übung in Schaltungstechnik:

https://www.mikrocontroller.net/articles/Monoflop

Und nochmal früher hiess es wohl "Treppenlichtautomat" oder technisch "Ausschaltverzögerung".

: Bearbeitet durch User
OP #8029603
Lesenswert?

Bradward B. schrieb:

BTW, heisst das heutzutage Mono-Stufe und nicht mehr Mono-Flop ? Re-triggerable Monoflop war frühe 'ne simple Übung in Schaltungstechnik:

https://www.mikrocontroller.net/articles/Monoflop

Und nochmal früher hiess es wohl "Treppenlichtautomat" oder technisch "Ausschaltverzögerung".

Ist das alles so wichtig wie es früher oder heute heißt? Im WC ist auch oft ein Lüfter als "Sch...hausnachlaufkomponente" engebaut. Wer lesen kann ist klar im Vorteil und weiß was gemeint ist. Siehe dazu oben die Beschreibung meiner Anfrage vom 31.01.26.

#8029660
Lesenswert?

Rolf Z. schrieb:

Na sicherlich auch aus China, aber warum laufen diese Module mit dem selben Programm, unabhängig ob Original oder JOY-IT. Bootloader, andere Bauteile, Eingangskontrollen, ich habe keine Ahnung.

Es ist zwar dasselbe Anwendungsprogramm, aber nicht unbedingt derselbe Bootlader im Flash der Arduinos.

Was der Bootlader vor dem Start der Anwendung so alles tut, weißt du nicht. Du weißt auch nicht, ob und was die von der Anwendung benutzten Arduino-Libs mit dem Bootloader-Code oder den vom Bootloader gesetzten Variablen tun. Zum Beispiel können Timing-Unterschiede beim Entprellen die tollsten Effekte bewirken.

Und: Was du noch nicht verraten hast, ist, ob deine Arduino-externe Hardware immer dieselbe oder nur eine gleiche ist.

OP #8029700
Lesenswert?

Hallo, nochmal zur Info:

In meinem "Nachtrag" vom 29.03.26 wollte ich nur sagen, daß meine China-Arduinos vom Typ: Nano nicht richtig gehen. Der Fehler ist, ein stehenbleiben nach Stunden im Programmablauf, beim nochmaligen Hochladen vom Programm erneutes späteres stehenbleiben. Dagegen laufen die Original-Arduinos und die von JOY-IT mit dem gleichen Programm und Außenbeschaltung seit ca. 3 Wochen ohne Störung. Der äußere/optische Unterschied ist, das Original besitzt eine kleinere Bauform vom Atmel-Chip und beim JOY-IT ist das Firmenlogo korrekt. Dagegen ist beim China-Chip der Schriftzug einfach gehalten. Die Anordnung der Bauteile ist auch anders. Ob dies allerdings schon ein Zeichen für einen schlechten Nachbau aus China ist? Der Hinweiß von "Rolf22": "Es ist zwar dasselbe Anwendungsprogramm, aber nicht unbedingt derselbe Bootlader im Flash der Arduinos", würde ich zustimmen trotz "Old Bootlader" Einstellung bei China und JOY-IT.

Meine Anfrage vom 31.01.26 für eine Monostufe war nur: "Für einen Tipp oder Programmvorschlag wäre ich dankbar". Es wurden auch Tipps und Programmvorschläge gemacht, die auch laufen und werden für mein Projekt oben benutzt.

Es ist für mich belanglos, ob hier in den letzten Tagen über die Richtigkeit bzw. Begrifflichkeiten einer Monostufe als Monoflop oder auf Deutsch auch monostabiler Multivibrator oder Treppenhausschalter genannt werden muß. Daher an diejenigen, tobt euch bei den freien Enzyklopädien aus.

Wichtig ist nur, Vorsicht bei Teilen aus China. Ein JOY-IT für ca. 6 € macht scheinbar keine Sorgen.

#8029711
Lesenswert?

Rolf Z. schrieb:

In meinem "Nachtrag" vom 29.03.26 wollte ich nur sagen, daß meine China-Arduinos vom Typ: Nano nicht richtig gehen. Der Fehler ist, ein stehenbleiben nach Stunden im Programmablauf,

Was soll denn da stehen bleiben? Drückst du dauernd auf den Knopf? Ist das Ding dauernd in Benutzung?

beim nochmaligen Hochladen vom Programm erneutes späteres stehenbleiben.

Es reicht, auf den Reset-Knopf zu drücken!

"Es ist zwar dasselbe Anwendungsprogramm, aber nicht unbedingt derselbe Bootlader im Flash der Arduinos", würde ich zustimmen trotz "Old Bootlader" Einstellung bei China und JOY-IT.

Der Bootloader hat im Betrieb keinerlei FUnktion, der wird nur zum Upload der Software benutzt.

#8029722
Lesenswert?

Rolf Z. schrieb:

Der Code ist für eine Firma, daher nicht zum weitergeben.

Also steckt noch DEUTLICH mehr Programm drin, als das Stückchen, das hier nachgefragt und von 2 Leuten geleifert wurde! Das SOLLTE man KLAR kommunizieren. Siehe Netiquette!

Unabhängig davon ist ja die Frage: Warum steigen die China-Arduinos beim gleichen Programm und Beschaltung nach kurzer zeit aus und die Original Arduinos bzw. JOY-IT läuft schon seit mehreren Tagen.

Mensch Meier, hat deine Platte nen Sprung? Die Frage steht seit gestern im Raum. Du eierst aber nur rum und lenkst ab! Wenn man der Frage WIRKLICH auf den Grund gehen will, muss man auch mal eine Diskussion über Fehlerquellen zulassen und nicht einfach so hoppla hop alle Fehler ausschließen! Das ist dumm! Siehe Fehlersuche! Darum ist im Moment noch vollkommen offen, ob es ein Hardware- oder Softwareproblem ist! Aber ohne sinnvolle Mitarbeit deinerseits zum Hardwareaufbau (Bilder, Schaltplan) oder Software (willst du ja nichts zu sagen) wird das rein gar nichts, außer eine end- und sinnlosen Diskussion, wie sie der "Experte" Alexs wieder mal losgetreten hat.

OP #8029723
Lesenswert?

Falk B. schrieb:

Der Bootloader hat im Betrieb keinerlei FUnktion, der wird nur zum Upload der Software benutzt.

Und genau hier ist der Hund begraben. Wenn das Programm nicht richtig Hochgeladen wird, obwoh die Anzeige beim Hochladen keinen Fehler anzeigt, wird es dann nicht richtig laufen, oder sehe ich das falsch?

Falk B. schrieb:

Was soll denn da stehen bleiben?

Das Programm bleibt irgendwo stehen oder hängt sich auf, z.B. es bleibt der Ausgang ständig eingeschaltet, oder der Taster hat keine Funktion mehr.

OP #8029738
Lesenswert?

Wo wird rumgeeiert und abgelenkt? Rumgeiert wird nur von Experten durch Klarstellung "was ist eine Monostufe". Abgelekt wird nicht, nur immer die Frage gestellt: Wo ist der Unterschied bei gleichen Programm und Außenbeschaltung der Arduinos. Die Original Arduinos und JOY-IT machen ihre Arbeit, nur China nicht. Ein Hardware- oder Softwareproblem kann es nicht sein! Da braucht man keine Hilfsmittel zur Fehlersuche wie Oszi, Signalgen. u.ä. Bis jetzt nur eine überzeugente Meinung von "Rolf22" gelesen: "Bootloader".

#8029742
Lesenswert?

Falk B. schrieb:

Der Bootloader hat im Betrieb keinerlei FUnktion, der wird nur zum Upload der Software benutzt.

Zumindest initialisiert er Dinge, die sich später im Betrieb auswirken können. Allein schon, um den Upload zu ermöglichen, muss er etwas initialisieren. Ein Beispiel für ein solches Problem: Beitrag "Arduino Nano Watchdog Boot Loop"

Ich selbst habe bei meinem allerersten Arduino-Versuch mit einem China-Board Probleme ähnliche Probleme gehabt. Erst durch Überschreiben des China-Bootloaders mit Optiboot lief meine Software ohne Fehler.

#8029748
Lesenswert?

Rolf Z. schrieb:

Der Code ist für eine Firma, daher nicht zum weitergeben.

Dass es für ein kommerzielles Projekt ist, wird hier zum ersten Mal erwähnt.

Ist das der Grund, warum keine weiteren Hintergrundinformationen kommen? Hoch geheime Rocket Science ist das ja vermutlich nicht.

Oder reicht es aus, mitzuteilen, dass gewisse China-Klone des Nano Probleme bereiten können?

Auch meiner Glaskugel ist das zu wenig, um ein verständlicheres Bild zu bekommen. Was passiert denn nun, wenn der Reset Button bei einem hängenden Nano gedrückt wird?

(Firma: Gast) #8029750
Lesenswert?

Rolf Z. schrieb:

Ja heißt: "wird nicht richtig laufen" oder Ja heißt: "sehe ich falsch", Programm wird richtig laufen

Du siehst falsch.

Nach dem Hochladen findet ein Verify statt! Es (das Flash, bzw. sein Inhalt) kann sich danach nicht mehr ändern, bis zum nächsten Upload.

Übrigens, ich versorge alle meine Nanos mit dem UNO Bootloader, und spreche sie auch als UNO an. Das löst allen HäckMäck mit dem alten und neuern Nano Bootloader.

: Bearbeitet durch User
OP #8029755
Lesenswert?

Rolf schrieb:

Ich selbst habe bei meinem allerersten Arduino-Versuch mit einem China-Board Probleme ähnliche Probleme gehabt. Erst durch Überschreiben des China-Bootloaders mit Optiboot lief meine Software ohne Fehler.

Das ist wenigstens mal ein Hinweis. Danke Dann mus doch beim Bootloader zwischen China und JOY-IT ein Unterschied bestehen, auch wenn diese gleich mit "Old-Bootlouder" Hochgeladen werden. Interne Speicherplätze, Taktfrequenzen o.ä. könnten hier sicherlich Einfluss nehmen. Beim Original Arduino ist es verstädlich, da dieser mit ATMEGA328P geladen wird.

OP #8029784
Lesenswert?

StefanK schrieb:

keine weiteren Hintergrundinformationen

Infos sind klar: China-Nano geht nicht, Original und JOY-IT gehen bei gleicher Soft.- und Hardware.

StefanK schrieb:

Was passiert denn nun, wenn der Reset Button bei einem hängenden Nano gedrückt wird?

Reset setzt den Arduino nicht mehr in Gang. Man muß das Programm neu Hochladen, dann läuft es wieder eine gewisse Zeit.

Oliver S. schrieb:

Es gibt ja nur drei Möglichkeiten: Hardwareproblem, Softwareproblem, oder Benutzerfehler. Da du die ersten beiden Möglichkeiten kategorisch ausschließt, bleibt nur die dritte.

Frage: Was könnte man falsch machen, 3 Arduinos von 3 Firmen, 2 davon gehen einer geht nicht? Benutzerfehler sicherlich nicht!

OP #8029809
Lesenswert?

Arduino F. schrieb:

Übrigens, ich versorge alle meine Nanos mit dem UNO Bootloader, und spreche sie auch als UNO an. Das löst allen HäckMäck mit dem alten und neuern Nano Bootloader.

Habe ich jetzt getestet. Beim Original Arduino Uno geht es. Programm läuft auch. Beim China Arduino Nano geht es nicht. Einen JOY-IT habe ich jetzt nicht zur Verfügung, werde ich aber später evtl. nächste Woche prüfen. Danke für die Info.

#8029812
Lesenswert?

Rolf Z. schrieb:

Frage: Was könnte man falsch machen, 3 Arduinos von 3 Firmen, 2 davon gehen einer geht nicht?

Wenn dich die Antwort tatsächlich interessiert dann hast Du hier genug Experten die der Sache auf den Grund gehen können. Allerdings fehlen die angefragten Informationen dazu (Quellcode, Setting, Hardware, Verkabelung) und Du möchtest diese nicht veröffentlichen. Deine Frage ist somit rhetorischer Natur, Dich interessiert es nicht wirklich.

#8029818
Lesenswert?

Rolf Z. schrieb:

StefanK schrieb:

keine weiteren Hintergrundinformationen

Infos sind klar: China-Nano geht nicht

StefanK schrieb:

Was passiert denn nun, wenn der Reset Button bei einem hängenden Nano gedrückt wird?

Reset setzt den Arduino nicht mehr in Gang. Man muß das Programm neu Hochladen, dann läuft es wieder eine gewisse Zeit.

OK, dann flashe mal den passenden Optiboot auf die China-Version und probiere es. Dass es an der China-HW liegen könnte, halte ich nach Deiner Beschreibung für unwahrscheinlich.

Interessant wäre noch, die SW in AVR-Notation zu schreiben und auf die Arduino Routinen zu verzichten. Dann dürfte es egal sein, was der China-Bootloder macht oder nicht macht, solang er das Prog richtig flasht, was ja der Fall ist.

#8029915
Lesenswert?

Rolf Z. schrieb:

Der Code ist für eine Firma, daher nicht zum weitergeben.

Hallo Rolf,

hiermit entziehe ich dir die Erlaubnis meinen Code zu verwenden und untersage dir dessen Nutzung.

Ich kann dir nicht helfen, weil du keine verwertbaren Information lieferst. Ich möchte dir auch nicht mehr helfen, weil du mich und andere hinters Licht führst. Ende meiner Durchsage.

#8029952
Lesenswert?

Hallo,

der Bootloader und dessen Einstellung wird erst interessant, wenn der Programmcode im Flash die magische Grenze von 30kB überschreitet. Wenn man das dann noch ausreizen möchte, wird es interessant welchen Bootloader man verwendet. Alle anderen Fuses wie Taktquelle etc. spielen für die reine Funktionsbetrachtung keine Rolle. Für einen Programmabsturz ist es egal ob der µC mit 1 oder 16MHz taktet, weil immer 5V anliegen und damit alle Takteinstellungen erlaubt sind. Selbst wenn der µC bzw. das Programm zu langsam oder zu schnell läuft, ist das unabhängig von allen was zu einem Absturz führen soll. Das bezieht sich auf meinen und auf Falks Code. Dabei stimmen maximal die Zeiten nicht, was aber nicht zu einem Absturz führt. Wenn irgendwelche Zeiten nicht stimmen, hätte man das schon längst festgestellt. Weil davon noch mehr abhängt, sobald externe Hardware mit Bus ins Spiel kommt.

Das Problem von Rolf liegt genau da, wo wir nicht hinschauen dürfen. Es gibt keinen Einblick in seine Software und Hardware. Was ich total Assi finde ist, vom öffentlichen Forum profitieren wollen, dann ein Problem melden aber keine klaren Angaben liefern.

Rolf Z. schrieb:

Ein Hardware- oder Softwareproblem kann es nicht sein!

Na was denn dann?

Bis jetzt nur eine überzeugente Meinung von "Rolf22" gelesen: "Bootloader".

Daran glaube ich nicht.

: Bearbeitet durch User
#8030025
Lesenswert?

Arduino F. schrieb:

Übrigens, ich versorge alle meine Nanos mit dem UNO Bootloader, und spreche sie auch als UNO an. Das löst allen HäckMäck mit dem alten und neuern Nano Bootloader.

Funktioniert da auch A6 + A7 ?

Veit D. schrieb:

hiermit entziehe ich dir die Erlaubnis meinen Code zu verwenden und untersage dir dessen Nutzung.

Man sollte doch nicht mit Kanonen auf Spatzen schießen.

Für die Lösung des Problems ist es auch nicht relevant. MfG Ein 81 Jähriger

: Bearbeitet durch User
(Firma: Starfleet) #8030068
Lesenswert?

Ist das alles so wichtig wie es früher oder heute heißt?

Zwecks erfolgreicher Kommunikation, ist es durchaus hilfreich, sich auf Begrifflichkeiten zu einigen und diese auch über längere Zeit beizubehalten.

Eben und die Einigung auf Fachbegriffe fand vor einigen Jahrzehnten statt und für Lernende heisst es lediglich "Grundlagen Lernen" und diese Begriffe "pauken". Der überwiegende teil hier dürfte bei "Mono" eher an Audiotechnik mit Mono-Endstufen denken. Aber die Unterscheidung zwischen mono und stereo dürfte den heutugen BT-earplugs Geschädigten kaum geläufig sein - Hauptsache Schmackes auf die Ohren.

Die mageren Google Ergebnisse für Mono-zeit sollten eigentlich ein Indiz für die schlechte begriffswahl sein.

Gerade wenn man nicht selbst das problem löst sonder die Code-beschaffung an andere delegiert sollte man die Anforderungen klar benennen können.

Und ein Grundansatz bei der Lösungserstellung ist Teile und Herrsche. Hier also teiprobleme abgrenzen und getrennt implementieren. Hier ist es grob,

  • Nutzereingaeb abnehmen
  • Variable entsprechend setzen
  • Aktoren (Verzögerung) in Unterroutine mit Variable als Eingangsparameter entsprechend schalten

Was ich total Assi finde ist, vom öffentlichen Forum profitieren wollen, dann ein Problem melden aber keine klaren Angaben liefern.

Im Klartext: lupenreines "Schmarotzertum".

: Bearbeitet durch User
(Firma: Starfleet) #8030075
Lesenswert?

Man stelle sich das andere Szenario vor, dann würden die ersten Posts vom Stundensatz handeln.

Und? IMHO wäre es eine deutliche Verbesserung wenn es jedem TO klar wäre, welche Aufwände er bei den (freiwillig) Helfenden verursacht.

Vielleicht reift dann auch die Erkenntnis, das das Wichtigste an einer "Spielerei" ist, das man es selbst macht uns dabei "lernt" und keine Beschäftigungsthearapie für andere.

(Firma: Starfleet) #8030077
Lesenswert?

Man stelle sich das andere Szenario vor, dann würden die ersten Posts vom Stundensatz handeln.

Und? IMHO wäre es eine deutliche Verbesserung wenn es jedem TO klar wäre, welche Aufwände er bei den (freiwillig) Helfenden verursacht.

Vielleicht reift dann auch die Erkenntnis, das das Wichtigste an einer "Spielerei" ist, das man es selbst macht uns dabei "lernt" und keine Beschäftigungstherapie für andere.

#8030132
Lesenswert?

Al. K. schrieb:

Veit D. schrieb:

hiermit entziehe ich dir die Erlaubnis meinen Code zu verwenden und untersage dir dessen Nutzung.

Man sollte doch nicht mit Kanonen auf Spatzen schießen.

Hier schon, aber sowas von! Um bei deiner Rhetorie zu bleiben; volle Breitseite mit 1100 Schuss pro Minute. Eine Unverschämtheit vom TE, wie auch ich finde.

#8030143
Lesenswert?

Kann das ein Mod vielleicht in die Startseite aufnehmen: "Ein wesentlicher Zweck des Forums ist, Fragesteller zu erniedrigen und zu beleidigen. Technische Fragestellungen sind Nebensache, Hauptsache sie sind so angelegt, dass es genügend persönliche Angriffspunkte gibt. Off-topic-Diskussion in technischen Threads ist explizit gewünscht, um den o.g. Zweck zu erfüllen."

#8030159
Lesenswert?

Uwe schrieb:

Kann das ein Mod vielleicht in die Startseite aufnehmen: "Ein wesentlicher Zweck des Forums ist, Fragesteller zu erniedrigen und zu beleidigen. Technische Fragestellungen sind Nebensache, Hauptsache sie sind so angelegt, dass es genügend persönliche Angriffspunkte gibt. Off-topic-Diskussion in technischen Threads ist explizit gewünscht, um den o.g. Zweck zu erfüllen."

Den Eindruck kann man gewinnen - echt traurig! Leute, was ist los mit euch? Jetzt begrabt mal das Kriegsbeil wieder.

Was mir (technisch) am meisten zu denken gibt, ist die Info, dass sich der Nano nicht mehr per reset Button starten lässt nachdem er sich aufgehängt hat. Wie kann das sein? Das ginge doch nur, sofern das Resetverhalten verändert wurde?

Interessant zu wissen wäre, wie der Nano auf den reset Button reagiert, solang er noch einwandfrei läuft und wie, wenn nach dem Aufhängen man Vcc aus und einschaltet. Vlt meldet sich Rolf Z nochmal, falls er jetzt nicht völlig vergrault ist...

#8030238
Lesenswert?

Oliver S. schrieb:

Da hängt sich nicht der Nano auf, sondern das Programm. Und das halt nach zuverlässig und reproduzierbar jedem Reset.

Das würde bedeuten, daß der Programmstart nur durch den Bootloader nach der Programmierung möglich ist, weil sich irgendwas verklemmt. Sehr merkwürdig. Vielleicht hängt der Bootloader IMMER, wenn er nicht am PC hängt? Könnte man mal mit einem einfachen Blink-Programm testen, ob der Resettaster funktioniert!

#8030254
Lesenswert?

Aus theoretischem Intetesse:

Würde der BL das Resetverhalten für den Flashvorgang verändern und das am Ende des Flashens nicht wieder korrigieren?

Wir gehen immer davon aus, dass sich auf dem China-Nanoboard ein echter Atmega328 aus Atmel/Mikrochip Fertigung befindet. Was wenn ein dubioser Chinanachbau drauf ist, der eine Macke hat? Der Flashzellen hat, die nach einiger Zeit ihren Inhalt verändern?

#8030263
Lesenswert?

StefanK schrieb:

Wir gehen immer davon aus, dass sich auf dem China-Nanoboard ein echter Atmega328 aus Atmel/Mikrochip Fertigung befindet. Was wenn ein dubioser Chinanachbau drauf ist, der eine Macke hat? Der Flashzellen hat, die nach einiger Zeit ihren Inhalt verändern?

Ich gehe davon aus, dass hier nur der TE mehr Licht ins Dunkel bringen kann, dazu aber keine Lust hat. Ggf, aufgrund gewisser Charaktereigenschaften...

OP #8030320
Lesenswert?

Rolf Z. schrieb:

Hallo, noch ein Nachtrag: Wie am 5.2. geschrieben läuft das Programm. Es zeigte sich aber nach einigen Tagen, dass dies nicht so ist. Bei meinen zwei Schaltungen wurden Arduino-Nanos aus China eingesetzt, die sich im Programm aufhängten. Bei zwei anderen aus China war dies schon nach wenigen Stunden der Fall. Der Wechsel zum Original Arduino Nano und bei der zweiten Schaltung zu einem JOY-IT Nano brachte den Erfolg. Die beiden Schaltungen laufen jetzt schon über 20 Tage ohne Ausfall. Früher hatte ich Original bzw. JOY-IT eingesetzt, das wird wohl in Zukunf auch so bleiben, also für mich, Finger weg von China.

Dies habe ich als N A C H T R A G bzw. nur zur I N F O an das Forum am 29.03. geschrieben !

Wer Lesen kann ...

Zu keinem Zeitpunkt wurde Verlangt das sich hier Pseudoexperten und Schreiberlinge hineinsteigern und sich dadurch einer Beschäftigungstherapie unterziehen müssen!

Das Motto im Forum ist (wie von Uwe erkannt): Fragesteller zu erniedrigen und zu beleidigen. Technische Fragestellungen sind Nebensache, Hauptsache sie sind so angelegt, dass es genügend persönliche Angriffspunkte gibt.

Und zur Info an Veit: Sein Text: ... hiermit entziehe ich dir die Erlaubnis meinen Code zu verwenden und untersage dir dessen Nutzung. Dürfte sich erübrigen, weil: Wie ein Programmauszug zeigt wurde keines der im Januar von Falk oder Veit vorgeschlagenen Programme verwendet, obwohl diese mit Abänderungen, wie oben bestätigt wurde (02.02.26), für mich auch laufen würden!

Auszug von meinem Programm:

// ================= Festlegungen ================================ const int tasterPin = 3; // Taster Pin an +5V, 10K an GND const int ledPin = 2; // Ausgang Pin für LED oder Relais int stufe = 0; // Aktuelle Zeitstufe (0-5 auf 0 setzen) unsigned long timerStart; // Es sind 32 Bit-Zahlen (4 Byte) möglich bool timerAktiv = false; // Zeitstuife auf 0 setzen // 5 Zeiten, z.B.: 1000 msec X 60 sec X 30 Min. = 1 800 000 msec = 30 Min. unsigned long zeiten[] = {0, 900000, 1800000, 2700000, 3600000, 4500000}; // Zeiten: 15Min. 30Min. 45Min. 60Min. 75Min. // ================= Aus und Eingänge festlegen ===================
void setup() { // Aus und Eingänge festlegen pinMode(tasterPin, INPUT); // Taster Eingang pinMode(ledPin, OUTPUT); // Ausgang für Relais oä. digitalWrite(ledPin, LOW); // Ausgang auf 0V legen } // ======================= Programmstart =========================== void loop() {
// Taster abfragen (mit Entprellung) if (digitalRead(tasterPin) == HIGH) // Taster liefert HIGH usw. im Programm.

Daher, bitte keine weiteren Hineinsteigerungen aus dem Forum wegen euren Blutdruck.

Wie gesagt, ich nehme Original und JOY-IT, weil damit das Programm läuft und Cina juckt mich nicht.

MfG Rolf Z

#8030447
Lesenswert?

Hallo Rolf Z.,

also die Antwort schlägt ja nun dem Fass den Boden aus. Weißt du eigentlich was du da schreibst?

Am 5.2.26 hast du nur geschrieben, dass Falks und mein Programm bei dir läuft. Danach war Funkstille. Kann man so machen.

Am 29.3.26 kommst du zurück und schreibst, dass du ein Problem hast. Du schreibst nicht, dass du Falks oder mein Code nicht verwendet. Das schreibst du nicht. Also was folgt, man macht sich Gedanken was falsch sein könnte. Ich opfere erneut mein Freizeit für dich.

Dann regst du dich auf, die Experten würden rumeiern. Wie bitte? Es gab von unterschiedlichen Leuten klare Nachfragen die du nicht beantwortest. Also wer eiert rum?

Erst heute dem 31.3.26 wird klar, dass du eigenen Code verwendest. Nicht Falks und nicht meinen. Erst heute kommt das raus. Warum erst heute?

Die Krone ist dann der Spruch "Wer lesen kann ..." Wie bitte? Die Informationen gab es ja nun vorher nicht.

Am Ende kommt raus es wird ein Produkt für eine Firma. Das heißt, du verdienst mit meiner unserer Freizeit Geld. Kann man so machen, weil die Themen sich hier alle vermischen. Hier fragen auch Experten andere Experten wovon viele beruflich unterwegs sind. Ist alles kein Problem.

Das Problem an dem ich mich stoße ist dein Auftreten, dein Verhalten. Du streust nicht nachprüfbare Informationen und wunderst dich dann, dass ich mich und andere aufregen. Das wundert mich und regt mich auf.

Wenn du wirklich Erwachsen bist, solltest du doch wissen wie deine Texte wirken und alle anderen im Forum nur das Lesen können was du schreibst. Die Glaskugel funktioniert in dem Technikbereich selten.

Und alles was ich hier schreibe sind keine Angriffspunkte in Form von "niedermachen", dass sind einfach nur Punkte für den normalen Umgang untereinander. Wenn du keine Lösung möchtest, brauchste auch nichts schreiben. Denn alles was du ab 29.3.26 geschrieben hast, hat nur reinste Verwirrung gestiftet. Gebracht hat es nichts. Absolut nichts. Dein Code ist ja auch nicht prüfbar. Das kann eigentlich kein Geheimnis sein so wie das aussieht. Die Begründung nehme ich dir nicht ab. Aber dein Problem ist ja nun wirklich nicht mein Problem. Zum Glück.

: Bearbeitet durch User
#8030681
Lesenswert?

Lessons learned:

  • Primäres Ziel erreicht. Rolf Z konnte mit den Hilfestellungen seinen eigenen Code erstellen. :-)

  • Aufregung ist schädlich fürs Herz und die Stimmung hier. :-(

  • Hilfe die man hier bekommt ist zum Teil nicht kostenlos. Die Währung in der man dafür bezahlt sind Beleidigungen und Erniedrigungen. :-(

  • Die Ursachen für die Probleme mit dem China-Nano sind weiterhin unklar. :-(

Vielleicht ist der China-Nano ein als Arduino getarntes Spionagetool, das den Rechner infiziert, sobald es via USB angeschlossen wird ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren