Go Down

Topic: Brüchte Hilfe (Read 771 times) previous topic - next topic

AndyMN

Hi, also nochmal. Ich möchte eine Zeitschaltung für eine selbstgebaute Belichtungsgerät hinbekommen.
Ich habe ein 0,96 Zoll Oled Display auf dem stehen sollte:

Bitte Belichtungszeit einstellen

Minuten xxx
Sekunden xx

Diese würde ich gerne mit einem Encoder auswählen und nachdem man auf einen Startknopf drückt schaltet ein Relais und die Belichtung startet. Gleichzeitig zählt der auf dem Display runter und schaltet das Relais wieder aus und gibt ein nach 0 ein piepen aus...

Das wäre schon alles, übertrifft aber leider meine Fähigkeiten wie ich schnell feststellen musste. Und wenn ich dadurch ein Ardu-Boy bin dann soll es halt so sein. Ich werde mich mit einfacheren Dingen beschäftigen aber hätte das halt gerne erstmal fertig. Wie schon gesagt, ich habe hier einiges an Hardware rumliegen von Sensoren über ein grosses Breadboard, Chips, Fotoplatinen und so weiter und möchte mich auch etwas tiefer in die Materie einlernen.. Aber das hätt ich halt einfach gerne weg... Und es bringt nichts dir zu erklären was bisher ist, da ichs nicht wirklich erklären kann. Ich weiss nicht wo ich was reinpacken muss wo ich wann was muss. Ist das eigentlich ein Grundsätzlich einfacher Code oder ist das schon etwas gehobener ??? Würde mich mal interessieren. Das schönste Geschenk das du mir machen könntest wäre der fertige Code mit vielen //Das macht dies weil... und // das muss hierein weil es sonst.... So einen richtigen Dummi erklärungscode.

Gruss Andy


postmaster-ino

Hi

Da ich es nicht geschafft habe, aus Dir herauszubekommen, wo Deine Probleme in Deinem Sketch sind, habe ich versagt.
Dabei dachte ich echt, daß man Das schon hinbekommen könnte - selbst wenn nicht, hätte man zumindest einen Sketch, wo das IF an einer wohl eher widersinnigen Stelle zu liegen kam und der Kompiler einem das Ding um die Ohren haut.

Hat nicht sollen sein, schade eigentlich.
Für schöne Geschenke bin ich leider nicht zuständig!

MALE Dir auf, WAS WANN WIE passieren soll.
Je ganeuer Du den Kram auf-MALST (so wirklich mit Stift auf Papier), desto einfach wird es, Das in ein Programm umzumünzen.

Mit einem fertigem Sketch ist Dir nicht wirklich geholfen - klar, das jetzige Zeug verschwindet nicht im Mülleimer, aber beim ersten Problem stehst Du wieder hier mit einer Frage, Die man mit etwas Grundlagen nicht stellen müsste.

Leider kann ich in Deinen Posts nicht wirklich erkennen, daß Du Dir auch nur ansatzweise Mühe gibst.
Ja toll - Du sitzt wochenlang am Rechner und kopiert irgend welche Fetzen zusammen - leider ohne Sinn und Verstand!
Auch meine Hinweise, WAS DU MACHEN SOLLST, enden in 'das hat auch keinen Sinn (In diesem Beispiel) rum zu probieren bis irgend etwas eh nicht klappt.' (Zitat aus #28).

Du hast einen Sketch, mit Dem Du wohl eine Zahl raus/runter verstellen kannst.
Und Du hast ein Beispiel von mir, wo eine (zuvor festgelegte) Zahl runtergezählt wird.
Weiter hast Du von mir die Anweisung erhalten, diese Teile mit IFs gegen einander abzugrenzen.
Wenn wir die Zeit einstellen, soll Diese noch nicht runterzählen - wenn runter gezählt wird, sollten Drehungen am Encoder wohl die Zeit nicht irrtümlich verstellen.
Dazu kam auch nicht viel.

Ich bin hier nicht der Gruppen-Opa, Der 'den Kleinen' die Hausaufgaben macht.

Programmieren ist das Einfachste, was Es gibt - Es ist NUR logisch!
Zugegeben - manches Mal versagt die Logik auch hier, aber bisher war der Fehler eher auf meiner Seite - das Steinchen machte schon brav, was ich Ihm sagte.

Also mache (MALE) einen Plan, WAS WANN WIE funktionieren soll.
Einer der Blöcke könnte in früher Version ungefähr so aussehen:
-- Einstellen der Zeit --
- Durch Knopfdruck zwischen Minuten, Sekunden und OK wechseln
- Minuten und Sekunden durch Verdrehen hoch/runter zählen
- OK durch Verdrehen zwischen OK und VERSTELLEN wechseln lassen
- bei Druck auf OK die Einstellung verlassen, auf 'VERSTELLEN' wieder auf die Stunden springen
-- angewählte Bereiche blinkend oder mit Pfeil davor

-- Countdown --
- Durch Knopfdruck Countdown unterbrechen -> Einstellung
- Runterzählen der Zeit
- bei Null Alarm, nicht weiter runter zählen
- Verdrehen hat keine Auswirkungen (Was Nichts macht, braucht hier normal nicht hin, schadet aber auch nicht)

DAS kann man dann ausarbeiten, z.B. am Anfang, was auf das Display geschrieben werden soll.

In späteren Versionen dieser Listen hast Du den Kram so verfeinert, daß jede Zeile nur noch wenige Zeilen Code sind - tada - Sketch fertig.

Kommentare schaden dann im Sketch auch nicht - dort muß nicht stehen, was die Zeile macht - Das sieht man - dort muß hin, welcher Sinn hinter der Zeile steht.

byte status=0;  //status ist jetzt 0
... wäre nicht nur verbesserungswürdig, sondern wirklich nicht sonderlich intelligent.
byte status=0; //status, Was gerade 'gemacht' wird - Einstellen(0)/Contdown(1)/Alarm(2)

Nett ist's, wenn die Datentypen noch passen, aber Das bekommen wir später auch noch zusammen hin.

So, Du wieder
Dein Problem, Dein Sketch, Deine Bilder.
Ob ich ohne Diese an Deinem Problem arbeiten will, entscheide aber immer noch ich.
Große Buchstaben? Immer wieder, neben Punkt und Komma, gerne gesehen.

AndyMN

Hi, ich glaube eher das du nicht verstehen kannst, das es auch Leute gibt die es nicht verstehen.

Ich danke dir trotzdem für deine Mühe.


postmaster-ino

#33
Feb 03, 2020, 07:32 pm Last Edit: Feb 08, 2020, 04:14 pm by postmaster-ino
... verstehe ich nicht :)

Nun denn, wünsche Dir mehr Erfolg mit Deinem nächsten Helfer.

MfG

PS: Sketch in #25 überarbeitet, kam zum Probieren (eigentlich war was Anderes geplant ... der Sketch aber noch offen) - es fehlte zumindest ein static für den Alarm-Zustand.
Somit wurde bei einem Alarm ganz schnöde weiter runter gezählt, was bei uint32_t mit 4Milionen_batsch wieder anfängt.
Auch wurden die IFs anders verteilt, daß ich keine separate IF für den aktiven Alarm-Zustand brauche, sondern Das im ELSE-Zweig abhandeln kann.
Dein Problem, Dein Sketch, Deine Bilder.
Ob ich ohne Diese an Deinem Problem arbeiten will, entscheide aber immer noch ich.
Große Buchstaben? Immer wieder, neben Punkt und Komma, gerne gesehen.

Go Up