Forum: Mikrocontroller und Digitale Elektronik Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort


von Darko D. (darlo)


Lesenswert?

Hallo alle zusammen. Ich bin schon seit ca. 5 Jahren hier, habe aber nur 
ein paar mal um Hilfe gebeten.
Heute ist es wieder soweit. Ich würde mich freuen, wenn einer von euch 
sich persönlich meinem Projekt widmet. Ich könnte natürlich alles hier 
posten, das würde aber sehr viel Zeit kosten und würde wahrscheinlich 
nicht schnell zum Erfolg führen. Wenn das aber nicht anders geht, dann 
auch gerne so.

Ich würde gerne dafür auch zahlen, wenn mir jemand mein Programm so 
ändert dass es auch funktioniert.

Ich habe einen at mega 8 und 5 Eingänge digital und 5 Ausgänge digital.

Alles sind wenn / dann Bedingungen und auch Bedingungen so wie:

solange der Eingang 1 nicht betätigt wird, solange soll der ausgang 3 
betätigt sein.

Es sind aber auch viele Verschachtelungen vorhanden. Ich denke mal ein 
profi brauch für das ganze Programm 20 Minuten. Wie könnte ich mit eurer 
Hilfe zum Ziel kommen?

Um die Erstattung der Fahrtkosten etc. sorge ich natürlich.

Danke erst mal!

von my2ct (Gast)


Lesenswert?

Darko D. schrieb:
> Ich denke mal ein profi brauch für das ganze Programm 20 Minuten.

Du kriegst die Aufgabe des Programms selber nicht einmal geordnet 
dargestellt und meinst beurteilen zu können, wie lange ein Profi dafür 
braucht.
Ein Vielfaches der 20 Minuten gehen wahrscheinlich schon alleine dafür 
drauf, um dir zu erzählen, wie du ihm dein Problem in verständlicher 
Form (i.e. logisch strukturiert) verklaren kannst.

von Denis (Gast)


Lesenswert?

Mach erst mal ein Programmablaufplan/PAP.
Dann geht es weiter.

von Darko D. (darlo)


Lesenswert?

Hallo. Es tut mir leid, wenn ich mich nicht so gut ausdrücken kann.
Ich wollte damit nur sagen, dass es vom Anspruch nicht so hoch ist.
Es sind eig. nur wenn dann Bedingungen die ineinander verschachtelt 
sind.
Ich habe ein ordentliches Flussdiagramm gemalt. Ich werde es gleich 
hochladen. LG

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Hier zum Beispiel das Flussdiagramm.

von Oliver S. (oliverso)


Lesenswert?

Bier und Popkorn stehen schon bereit…

Oliver

: Bearbeitet durch User
von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Das hier ist vom AT Mega 8 die Belegung (wenn das so geht) hoffe ich:

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Als letztes möchte ich noch das unvollständige und nicht korrekte 
Programm als txt datei zur Verfügung stellen. Oli, für Essen und trinken 
wird auch gesorgt!

von MaWin (Gast)


Lesenswert?

Deine Hausaufgaben machst du besser selbst. Dann lernst du auch etwas.

von pnp (Gast)


Lesenswert?

Darko D. schrieb:
> Das hier ist vom AT Mega 8 die Belegung (wenn das so geht) hoffe
> ich:

Warum hast du beispielsweise beim "Port C4" dahinter
(rot) geschrieben "Port C15"? Ähnlich bei anderen Ports...

von Darko D. (darlo)


Lesenswert?

Hallo. ja das stimmt wohl. Ich bin allerdings vor wenigen wochen Vater 
geworden und dann ist es immer mit der Zeit so eine sache...
Ich würde mich dennoch freuen, wenn mir jemand die ersten 5 Zeilen erst 
mal stilistisch i.O. bringt, denn das == false oder true ist glaube ich 
falsch...

von my2ct (Gast)


Lesenswert?

Darko D. schrieb:
> Schaltung_Verlauf.bmp
> 5,36 MB

Darko D. schrieb:
> AT_Mega8.bmp
> 3,46 MB

Erst lesen, dann posten.
Was könnte der Hinweis "Zeichnungen und Screenshots im PNG- oder 
GIF-Format hochladen" wohl bedeuten?

Fällt dir etwas auf?

von Darko D. (darlo)


Lesenswert?

Hallo pnp.
Das kann ich dir sagen.

Weil ich mich verechnet habe. Ich glaube B7 bedeutet das B1 und B2 und 
B3 zusammen angesteuert werden, ist das richtig? Es hätte jeweils 1 mehr 
heißen müssen oder?

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Ich habe beides in PNG geändert. Danke für den Hinweis.

von Darko D. (darlo)


Lesenswert?

Ich gaube ich erinnere mich.

Port C0 heißt im Programm C1 weil 2hoch null gleich 1 ergibt.
Port c1 heißt im Programm c2 weil 2hoch eins gleich 2 ergibt.
und so weiter.

Und C5 im programm wäre dann der vierer und der einser zusammen...

von pnp (Gast)


Lesenswert?

Darko D. schrieb:
> Hallo pnp.
> Das kann ich dir sagen.
>
> Weil ich mich verechnet habe. Ich glaube B7 bedeutet das B1 und B2 und
> B3 zusammen angesteuert werden, ist das richtig? Es hätte jeweils 1 mehr
> heißen müssen oder?

Nein. "Port C4" heißt "PortC Pin4". Und wo sich dieser am µC befindet, 
ist im Datenblatt festgelegt. Du kannst nicht einfach aus einer 4 eine 
15 machen. :-)

von Darko D. (darlo)


Lesenswert?

Danke danke. Ich habe da nicht einfach ne 15 draus gemacht.

Port c4 im Programm wäre dann Port zwei hoch 4 und das ist dann PortC16. 
Ich habe mich wie gesagt immer um einen vertan.

von Stefan F. (Gast)


Lesenswert?

Mir fällt sofort auf, dass das Programm drei tote Enden hat.

Was passiert danach? Wenn du danach nicht kit dem Weltuntergang 
rechnest, dann muss es dort irgendwie weiter gehen.

Weiterhin fehlt mir da jegliche Fehlerbehandlung. In so einem Diagramm 
würde ich die auch nicht einzeichnen, aber wenigstens als Text dazu 
liefern. Beispiele:

> Ventil auf ansteuern bis Endlage erreicht
Und wenn die Endlage nicht erreicht wird, was dann? Wie lange darf das 
dauern?

> Betätigung Schalter auf/zu B31
Was soll passieren, wenn der Schalter zwischendurch während des 
folgenden Ablaufes erneut betätigt wird?

Bei deinen ganzen Kästchen wird nicht klar zwischen Bedingungen, 
Ereignissen und Reaktionen unterschieden. Das solltest du klarer 
darstellen, durch unterschiedliche Symbole.

Die ersten 10 Minuten sind schon vorbei. So viel zu den 20 Minuten.

von EAF (Gast)


Lesenswert?

> if(PORTB |=(1<<31) == true)
Habs nicht geprüft, aber das wird nie wahr werden.

1. eine Zuweisung im if ist meist bedenklich
2. das "== true" ist überflüssig, oder tut nicht das was du möchtest
3. die (1<<31) ? das wird sicherlich nicht das tun, was beabsichtigt 
ist.

3 Böcke in einer Zeile!

von Darko D. (darlo)


Lesenswert?

Oha ihr macht mir Mut...
Also eine Fehlerbehandlung soll da nicht mit eingebaut werden. Das wird 
dann zu kompliziert.
Es handelt sich um eine Klappe die Auf und zu gehen soll. Es soll 
solange angesteuert werden bis die endlage erreicht ist. Die endlage 
wird irgendwann erreicht. Warum soll sie nicht erreicht werden. Das 
dauert schätzungsweise ca. 5 bis 7 sekunden.
Wenn die endlage nicht erreicht wird ist irgendwas kaputt. das sehe ich 
dann ja.

Das Programm soll nicht ins tote laufen. Solange der taster nicht 
betätigt wird, passiert auch nichts. Am besten wäre es wenn der taster 
(B32) während der prozedur stillgelegt werden könnte. bis ein Ende 
erreicht ist.

von EAF (Gast)


Lesenswert?

Zum Programm Entwurf:

Bin nur Arduino, könnte mich auf C runter beugen.

Verstehe aber den Plan nicht.
Müsste erstmal wissen/verstehen was der ganze Kram den überhaupt sein 
soll. Welche Klappe welchen Sinn hat.

Das ganze riecht nach einem "Zustandsautomaten"!
Es stinkt geradezu danach.

Also denkt man auch in Zuständen!
Klar benennen! Aufzählungen!
Die Bedingungen für den Wechsel der Zustände klar benennen.

Dort in if Verschachtelungen zu denken, geht fix schief.
1 Ebene mit einer einfachen Bedingung ist leicht zu überblicken
Je mehr Ebenen und je komplexer die Bedingungen, desto  gruseliger der 
Debug Aufwand.

von Darko D. (darlo)


Lesenswert?

Aber ich glaube, dass das Programm von oben nach unten läuft. das 
bedeutet wenn einmal eine if Prüfung stattgefunden hat, dann ist er in 
der Prozedur drinnen. Wenn sich der Status dann ändert spielt es keine 
Rolle. die Bedingung wird dann stumpf abgearbeitet.

von Darko D. (darlo)


Lesenswert?

Kann ich ein Video von der Klappe machen? Vielleicht ist das 
Anschaulicher? Es wäre schade, wenn das zwei Jahre lange Projekt am 
Programm scheitert...

von Darko D. (darlo)


Lesenswert?

> if(PORTB |=(1<<31) == true)

das sollte eig. bedeuten als text:

Wenn PB5 belegt ist, dann soll ....

Wie heist es denn in der Programmiersprache richtig?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Warum machst du dir das Leben so schwer und benennst die Pins nicht? 
Wenn die Klappe an PortB B4 hängt, schreibst du:
1
#define Klappe 4
2
// und als PortB 
3
#define Ausgang PORTB
4
// dann kannst du schreiben
5
Ausgang |= (1 << Klappe);   // Klappe auf
6
Ausgang &= ~(1 << Klappe);   // Klappe zu

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
>> if(PORTB |=(1<<31) == true)
>
> das sollte eig. bedeuten als text:
>
> Wenn PB5 belegt ist, dann soll ....
>
> Wie heist es denn in der Programmiersprache richtig?

Vermutlich:
 if(PORTB | (1<<PB5))

von Darko D. (darlo)


Lesenswert?

Ok. Das sieht optisch schon mal gut aus. Und wie sieht es aus, wenn das 
ganze nicht true sein soll also wenn PB5 False ist dann....

von Dan (Gast)


Lesenswert?

Ich würde zu einer Siemens Logo greifen, nix gebastel…

funktioniert auch in 10 Jahren noch und wenn nicht, gibts Ersatz…

Meine Meinung und eigene Erfahrung

von Darko D. (darlo)


Lesenswert?

Wird bestimmt auch zuverlässig funktionieren. Es ist bei mir schon quasi 
alles fertig, es fehlt nur noch das Programm. Gebastelt ist bei mir 
nichts. Alle elektrischen und pneumatischen Normen wurden eingehalten.

von EAF (Gast)


Lesenswert?

if(!(PORTB | (1<<PB5)))

von Darko D. (darlo)


Lesenswert?

Oha, drei Klammern zu am ende. WAHNSINN! Danke! Ich hoffe ich bekomme 
noch ein Weihnachtsgeschenk von einem aus Bremen und Umgehbung und es 
klingelt an der Türe :-)

von EAF (Gast)


Lesenswert?

if(PORTB & (1<<PB5))

von Darko D. (darlo)


Lesenswert?

Das ist bestimmt eine anders Schreibweise.

von EAF (Gast)


Lesenswert?

| << --das war falsch!
Sorry

Wie gesagt, das mit den Bedingungen nervt fürchterlich.
Ein Scheunentor für Flüchtigkeitsfehler.
Wie ich sie gerade wieder gebaut habe....

Schon gesagt, ich würde es gänzlich anders angehen!

von Darko D. (darlo)


Lesenswert?

Ja ich möchte das gerne durchziehen. Ein anderer Weg ist mir nicht 
bekannt noch habe ich die Möglichkeit jetzt einen ganz anderen Weg 
einzuschlagen. Ich bekomme es zur Not mit Opferung des ganzen 
Winterurlaubes ab morgen auch irgendwie hin. Ich sehe sowas als nichts 
Unmögliches 5 oder 10 Bedingungen aufzustellen.

Es fehlen mir einfach auch die Grundlagen.
Da muss ich mich leider vielleicht selbst einarbeiten...

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Oha, drei Klammern zu am ende. WAHNSINN!

Deswegen kapselt man sich so etwas in Funktionen: mit sprechenden Namen:
1
bool schalter_klappe_gedrueckt()
2
{
3
    return (PORTB && (1<<PB5))==0;
4
}
5
6
7
if (schalter_klappe_gedrueckt()) 
8
{
9
   tue dies;
10
}
11
12
if (!schalter_klappe_gedrueckt())
13
{
14
   tue das;
15
}

Gleiches gilt für die Ansteuerung der Ausgänge

von Rainer V. (a_zip)


Lesenswert?

Darko D. schrieb:
> Also eine Fehlerbehandlung soll da nicht mit eingebaut werden. Das wird
> dann zu kompliziert.

Mal ehrlich...haste in der Firma beim Schrottwichteln den Hauptgewinn 
gezogen???  Als allererstes erwarte ich mal ein irgendwie geartetes 
Flußdiagramm, das zeigt, was alles soll, was nicht soll und was kann und 
was nicht kann usw... wenn du schon daran scheiterst, dann brauchst du 
mit Programm gar nicht erst anfangen! Sorry, aber meine Meinung ...
Gruß Rainer

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Aber ich glaube, dass das Programm von oben nach unten läuft.

Früher oder später wird es komplexer, mit Ereignissen die den normalen 
einfachen Ablauf unterbrechen. Spätestens dann wirst du uns für den Tipp 
mit dem Zustandsautomaten dankbar sein.

Hier ein bisschen Anregung, wie man Zustandsautomaten grafisch und als 
Tabelle darstellen kann. Mein persönlicher Favorit ist die Tabelle.
http://stefanfrings.de/multithreading_arduino/index.html#planung

von Axel R. (axlr)


Lesenswert?

Darko D. schrieb:
> Ok. Das sieht optisch schon mal gut aus. Und wie sieht es aus, wenn das
> ganze nicht true sein soll also wenn PB5 False ist dann....

Beitrag "Re: Einen einzelnen Pin abfragen"
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Eing%C3%A4nge_(Wie_kommen_Signale_in_den_%C2%B5C)
1
/* Fuehre Aktion aus, wenn Bit Nr. 2 (das "dritte" Bit) in PINB geloescht (0) ist */
2
if ( !(PINB & (1<<PINB5)) ) {
3
  /* Aktion */
4
}

von Axel R. (axlr)


Lesenswert?

ach. zu spät ;)

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Also eine Fehlerbehandlung soll da nicht mit eingebaut werden.
> Das wird dann zu kompliziert.

Das ist der Punkt, wo ich den Auftrag ablehnen würde. Außer, du 
unterzeichnest mir einen Freibrief für ein beliebig schlechtes Ergebnis 
mit deinem eigenen Blut, sowie einer Unterlassens-Erklärung, diesen Fall 
jemals öffentlich zu machen.

Ach Käse, dafür ist es schon zu spät. Also ich gebe dir gerne Tipps, 
aber ich werde dir nichts programmieren.

von Axel R. (axlr)


Lesenswert?

Axel R. schrieb:
> Darko D. schrieb:
>> Ok. Das sieht optisch schon mal gut aus. Und wie sieht es aus, wenn das
>> ganze nicht true sein soll also wenn PB5 False ist dann....
>
> Beitrag "Re: Einen einzelnen Pin abfragen"
> 
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Eing%C3%A4nge_(Wie_kommen_Signale_in_den_%C2%B5C)
>
>
1
> /* Fuehre Aktion aus, wenn Bit Nr. 2 (das "dritte" Bit) in PINB 
2
> geloescht (0) ist */
3
> if ( !(PINB & (1<<PINB5)) ) {
4
>   /* Aktion */
5
> }
6
>

Ich hab den Kommentar ausm Tutorial nicht angepasst. Da muss dann 
tatsächlich die korrespondierende Zahl hin -> "5", in deinem Fall. Nicht 
die "ZWEI", sry

von Stefan F. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> bool schalter_klappe_gedrueckt()
> {
>     return (PORTB && (1<<PB5))==0;
> }

Sorry, um Eingänge zu lesen muss man natürlich PINB schreiben und nur 
ein &.

von Xerxes (Gast)


Lesenswert?

Darko D. schrieb:
> Hallo pnp.
> Das kann ich dir sagen.
>
> Weil ich mich verechnet habe. Ich glaube B7 bedeutet das B1 und B2 und
> B3 zusammen angesteuert werden, ist das richtig? Es hätte jeweils 1 mehr
> heißen müssen oder?

DAS IST FALSCH !

B7 ist ein NAME / Label der in io.h definiert ist. Das ist kein Wert mit 
dem man rechnen kann !

Bitte mal hier lesen : 
https://de.wikibooks.org/wiki/C-Programmierung_mit_AVR-GCC/_IO-Ports

Daa sind auch Beispiele für den Mega8 angegeben.

von Lutz (Gast)


Lesenswert?

Wenn ihn diese ganzen Fehler nicht vollends verwirren, wäre ich 
überrascht.

von Christian S. (roehrenvorheizer)


Lesenswert?

> Warum soll sie nicht erreicht werden.

Was soll denn passieren, wenn in der Klappe die Katze oder der Otter 
drin stecken und nicht alleine raus kommen. Läuft das Programm dann zum 
Abort?

mfG

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> Es fehlen mir einfach auch die Grundlagen.
> Da muss ich mich leider vielleicht selbst einarbeiten...

Wenn jetzt schon 2 Jahre ins Land gezogen sind, dann sehe ich da etwas 
schwarz.

Darko D. schrieb:
> noch habe ich die Möglichkeit jetzt einen ganz anderen Weg
> einzuschlagen.
Wenn die Aufgabe einen endlichen Automaten erfordert, dann wird die 
Endlösung auch ein solcher sein.
Egal ob du weißt, was das ist, oder jemals beabsichtigt hast einen 
solchen zu bauen.
Ich halte es für einfacher ihn dann auch so zu nennen und die 
ausgetretenen Pfade zu nutzen.
Tipp: Du bist nicht der erste, der einen solchen Automaten baut.

Grob vereinfacht:
Alle Ablaufsteuerungen sind endliche Automaten (Zustandsmaschinen)

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Ich habe einen at mega 8 und 5 Eingänge digital und 5 Ausgänge digital.
>
> Alles sind wenn / dann Bedingungen und auch Bedingungen so wie:
>
> solange der Eingang 1 nicht betätigt wird, solange soll der ausgang 3
> betätigt sein.

Also wenn ich das richtig verstehe, gibt es auf die 32 möglichen 
Eingangskombinationen auch nur maximal 32 Ausgangskombinationen?

> Es sind aber auch viele Verschachtelungen vorhanden.

Schmeißt das die oberen Aussagen wieder um?

Schmeiß die 5 Eingangsbits in die 5 untersten Bits eines Bytes und hole 
damit eine weitere Zahl aus einem Array, in der sich die Kombination der 
5 Ausgangsbits befindet.

Dafür musst Du vorher eine Tabelle machen, in der das, was Du eigentlich 
möchtest, drin steht. Sprich: Für jede Eingangskombination musst Du für 
jeden Ausgang eine Entscheidung treffen, ob dieser bei der Kombination 
an oder aus sein soll.

Du könntest diese Tabelle prinzipiell auch in ein EPROM oder GAL brennen 
und dann ohne Prozessor arbeiten. EPROM ginge mit viel Geduld und 
Konzentration sogar von Hand.

Gruß
Jobst

von Stefan F. (Gast)


Lesenswert?

Jobst M. schrieb:
> Du könntest diese Tabelle prinzipiell auch in ein EPROM oder GAL brennen
> und dann ohne Prozessor arbeiten

So einfach ist es nicht. Du hast wohl übersehen dass da 
Zeitverzögerungen mit drin sind und bestimmte Teile erst ausgeführt 
werden sollen, nachdem vorher etwas anderes passierte.

Bei einem kommerziellen Auftrag wären jetzt schon Reisekosten und 
mindestens 2 Stunden Meeting angefallen. So viel zu "Ich denke mal ein
Profi brauch für das ganze Programm 20 Minuten".

von Manfred (Gast)


Lesenswert?

Matthias S. schrieb:
> Warum machst du dir das Leben so schwer und benennst die Pins nicht?

An dem Ding ist Mechanik dran, die aus Sicht des µC unendlich langsam 
reagiert. Das schreit danach, einen ATMega328 zu nehmen und das in 
Arduino zu machen, vorne alles schön mit Klarnamen deklariert:
1
digitalWrite (Relais, HIGH);
2
digitalWrite (LEDRed, LOW);
3
if ((digitalRead(StartKey) == LOW) ...

Vor xx-Jahren habe ich ein paar Ablaufsteuerungen auf MC68HC805 in 
Assembler gemacht, die direkte Portklempnerei mit and / or würde ich mir 
heutzutage nicht mehr antun wollen.

Darko D. schrieb:
> Ich bekomme es zur Not mit Opferung des ganzen
> Winterurlaubes ab morgen auch irgendwie hin.

Ah ja, soweit zu "20 Minuten"

Für mich liest sich das so, dass Du in der Firma eine Aufgabe bekommen 
hast, der Du nicht gewachsen bist.

> Ich sehe sowas als nichts
> Unmögliches 5 oder 10 Bedingungen aufzustellen.

Ich auch nicht, aber werde es nicht für Dich machen.

> Da muss ich mich leider vielleicht selbst einarbeiten...

Besser ist das. Wenn das dann fertig ist und an die reale Maschine 
kommt, wird es nicht sauber funktionieren, da sollte man die Software 
selbst in der Hand haben und direkt anpassen können.

von Darko D. (darlo)


Lesenswert?

Hallo. Danke wirklich an die die mir irgendwie geholfen haben. Ich habe 
das mit den 20 Minuten wohl zeitlich total verschätzt. Ich kenne mich 
damit auch gar nicht so aus. Wir werden jetzt so verbleiben, dass ich 
selbst das zum laufen bekomme, den Quellcode hier poste und dann den 
quellcode nur für den feinschliff zum überfliegen sehe.
Es geht schließlich nur darum eine blöde Klappe auf und ab zu fahren. 
Ich möchte kein neues Auto erfinden was weniger Sprit verbraucht.
Ich kann mir auch bei aller liebe nicht erklären, was an dem 
Flussdiagramm nicht zu verstehen ist.

Ich habe mir wirklich viel mühe gegeben und weiß auch nicht wie ich das 
anders schreiben soll. Ich habe ja angeboten ein Video zu posten. Aber 
das wurde leider übersehen.

Nagut dann bis in ca. 2 wochen. LG Darko aus Bremen

von Darko D. (darlo)


Lesenswert?

Interessant, dass das eine Aufgabe aus der Firma sein soll!
Kreativität ist hier ja groß geschrieben!!!

von Hannes (Gast)


Lesenswert?

Darko D. schrieb:
> Ich habe mir wirklich viel mühe gegeben und weiß auch nicht wie ich das
> anders schreiben soll. Ich habe ja angeboten ein Video zu posten. Aber
> das wurde leider übersehen.

Aus dem ganzen Hintergrundrauschen das Gehaltvolle raus zu ziehen ist 
extrem schwierig, für einen Anfänger unmöglich. Leg alles zur Seite und 
fang neu an.

Eine SPS zu verwenden ist sicher kein schlechter Tipp, heißt aber eine 
neue Dose der Pandora aufzumachen. Und heißt auch, SPS lernen.

Falls es unbedingt eine uC-Lösung sein soll, würde ich vielleicht noch 
Richtung Stefan hören, und mir die Geschichte mir dem Zustandsautomaten 
ankucken. Das heißt aber, erst mal Basics lernen.

Als Nächstes lernst du zu abstrahieren, denken auf hohem Niveau. Für 
deinen Basisentwurf vergisst du erst mal so Dinge wie B7 und 
2-hoch-irgendwas, oder auch & und ||. Du brauchst erst einen Plan, der 
funktioniert und keinen Programmcode. Und dann lernst du C oder C++ oder 
was auch immer.

Erst danach kannst Du daran denken, zu coden ...

just my 2ct

von Rainer V. (a_zip)


Lesenswert?

Darko D. schrieb:
> Interessant, dass das eine Aufgabe aus der Firma sein soll!
> Kreativität ist hier ja groß geschrieben!!!

Du mußt das so verstehen, dass es in Firmen immer mal wieder Chefs gibt, 
die eine vermeindlich einfache Aufgabe einfach demjenigen an den Hals 
hängen, der nicht rechtzeitig in Deckung gegangen ist. Wobei der Chef 
ganz diffus im Kopf hat, dass in seiner Truppe prinzipiell jeder alles 
kann! Dass das nicht so ist - sein muß - interessiert den Chef erst mal 
nicht und die Mitarbeiter haben auch kein Interesse daran, an dieser 
Meinung groß was zu ändern. So kann es jemanden aus der Truppe eben ganz 
bös erwischen und dann könnte er z.B. so einen "Hilferuf" wie deinen 
hier ablassen :-)
Gruß Rainer

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> Es geht schließlich nur darum eine blöde Klappe auf und ab zu fahren.
> Ich möchte kein neues Auto erfinden was weniger Sprit verbraucht.
> Ich kann mir auch bei aller liebe nicht erklären, was an dem
> Flussdiagramm nicht zu verstehen ist.

Ein kleines Verständnisproblem kann das ganze bisher geschriebene 
hinfällig machen. Aus dem Grund will ein erfahrener Programmierer immer 
das gesamte vollständig verstanden haben! Ein Bild.
Wenn das Bild im Kopf, auf Papier, klar ist, dann ist programmieren nur 
wie ein malen nach Zahlen.


Und nein, dein Flussdiagram ist ein Anfang, aber sicher nicht komplett 
verständlich, wenn man den Apparat nicht kennt.
Bedenke:
Keiner hier, kennt deine Maschine.
Keiner kann die logischen Fehler erkennen, welche du da evtl eingebaut 
hast.
Ich kann nur sagen, deine Erklärungen sind unzureichend. Bisher.


Darko D. schrieb:
> Ich habe ja angeboten ein Video zu posten. Aber
> das wurde leider übersehen.
Du möchtest, dass ich/wir nach Information betteln?!?!?!
Das kannst du knicken!
Entweder lieferst du die nötige Information, wenn dir geholfen werden 
soll.
Oder du lieferst eben nicht.

von my2ct (Gast)


Lesenswert?

my2ct schrieb:
> Ein Vielfaches der 20 Minuten gehen wahrscheinlich schon alleine dafür
> drauf, ...

Jetzt sind wir schon bei über 7 1/2 Stunden ...

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

my2ct schrieb:
> my2ct schrieb:
>> Ein Vielfaches der 20 Minuten gehen wahrscheinlich schon alleine dafür
>> drauf, ...
>
> Jetzt sind wir schon bei über 7 1/2 Stunden ...

Naja, die ~20 Minuten sind durchaus realistisch wenn der TE in der Lage 
ist seine Anforderung vollständig(!) und fehlerfrei zu formulieren. Das 
bedeutet insbesondere KEIN Video vom Ablauf zu posten, was man nicht mit 
Worten formulieren kann, kann man auch nicht implementieren. Eigentlich 
eine einfache Sache.

Aber Formulierungen wie Ventilklappe auf bis Ende (C7) sind einfach 
nicht präzise genug. Es muss vielmehr ein Aktoren Kommando sein C6 
inaktiv + C7 aktiv und dann eine Prüfung auf B3 aktiv + B7 inaktiv und 
das in einer Schleife mit einer maximalen Wartezeit und einer 
Fehlerbehandlung wenn es zu lange dauert oder unplausible Informationen 
ankommen z.B. B3 und B7 gleichzeitig aktiv. etc, etc.

Wenn man alle Elemente im PAP auf diese Art schon sprachlich formuliert, 
kann man es praktisch direkt in Quelltext gießen.

: Bearbeitet durch User
von Darko D. (darlo)


Lesenswert?

Hallo alle zusammen. Ich habe eingesehen, dass die 20 Minuten nicht 
realistisch sind. Diese Zeit bezog sich allerdings rein auf das 
Programmieren. Ich bin davon ausgegangen, dass das Flussdiagramm 
selbsterklärend ist. Dem ist aber nicht so. Ich bin leider nicht in der 
Lage noch präzisere Informationen zu liefern, weil das Diagramm für mich 
zu 100 Prozent selbsterklärend ist. Wir verbleiben einfach so, dass ich 
das ganze zum Laufen bekomme und Ihr dann vielleicht darüber schaut, ob 
das so in Ordnung ist oder ob man das verbessern kann. Was ich natürlich 
gerne machen könnte wären Fragen beantworten wie zum Beispiel:

Was soll passieren wenn der Endlagenschalter nicht erreicht wird?
Antwort: es soll so lange versucht werden bis der erreicht wird, auch 
wenn es 100 Jahre dauert, denn dann muss was kaputt sein. Und dann muss 
es repariert werden.

Ich hoffe das ich auch nach der schwerwiegenden Niederlage gestern in 
ca. 2 Wochen auf euch zugreifen kann. Und für diese geringen 
Anforderungen muss man sicherlich kein Programmierprofi sein. Ich denke, 
dass ich es selbst schaffen werde nach einiger Zeit.

von Darko D. (darlo)


Lesenswert?

Meine Frau war gestern sauer auf euch, weil Ihr mir nicht so direkt 
geholfen habt. Ich habe das ein wenig anders gesehen. Ich komme 
normalerweise aus einem ganz anderen Forum. Dort heißt es oft: Mein Auto 
springt nicht an, woran liegt es? Darüber rege ich mich auch so auf über 
die unpräzisen Informationen so wie ihr es auch macht. So hart ist das 
Leben einfach :-)

von Jobst M. (jobstens-de)


Lesenswert?

Stefan ⛄ F. schrieb:
> Du hast wohl übersehen dass da
> Zeitverzögerungen mit drin sind und bestimmte Teile erst ausgeführt
> werden sollen, nachdem vorher etwas anderes passierte.

Offensichtlich ist es mir durch die Lappen gegangen. Danke!

Dann muss man eben einfach Rückkopplungen von weiteren Aus- und 
Eingängen auf weitere Eingänge schaffen.
Jede Anforderung Multipliziert den Aufwand dann.

Dennoch hängt alles daran, dass dafür die Anforderungen in einer 
Übersicht aufgelistet werden müssen. Aber da sind sich hier ja alle 
einig.

Gruß
Jobst

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> ich auch nach der schwerwiegenden Niederlage gestern
Eine Enttäuschung?
Das ist ein wahrhaft positives Erlebnis, oder?
Denn eine (selbst)Täuschung ist von dir genommen.
Jetzt kann es, der Wahrhaftigkeit ins Gesicht blickend, weiter gehen!

Darko D. schrieb:
> Ich bin leider nicht in der
> Lage noch präzisere Informationen zu liefern, weil das Diagramm für mich
> zu 100 Prozent selbsterklärend ist.
Du hast die Maschine vor dir!
Wir sehen nichts.

Wenn denn wenigstens die Klötzchen in deinem Flussdiagramm eindeutig 
benannt wären....
Dann könnte man sie einzeln besprechen.
Sind sie aber nicht.

Hinter einigen Klötzchen verbergen sich auch wieder Abläufe, endliche 
Automaten.
Es ist ein Automaten Zoo.


Ich mache mal den Propheten:
Du wirst in deinen Bedingungen und Schachtelungstiefen ersaufen.

Der einzige Ausweg daraus: Klarheit schaffen.
Klarheit in den Gedanken, und auf dem Papier.

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Meine Frau war gestern sauer auf euch, weil Ihr mir nicht so direkt
> geholfen habt.

Tja, das Leben ist kein Schuhgeschäft mit cooler Musik! Schönen Gruß! 
:-D

Gruß
Jobst

von Darko D. (darlo)


Lesenswert?

Ja wahscheinlich habt ihr alle Recht. Ich werde es einfach versuchen und 
daraus lernen müssen. Eventuell auch so, wie man es nicht macht.
So ganz undurchsichtig ist es für mich allerdings nicht. Ihr habt Recht, 
dass ihr weder die Klappe noch die ganze Mechanik dahinter gesehen habt.
Das Ziel des Forums ist es ja nicht irgendwelche Leute zu enttäuschen, 
sondern zu helfen. (Zumindest die meisten) Manchmal ist die Realität 
aber eine andere wie man sie selbst wahrnimmt.

von Karl (Gast)


Lesenswert?

Oder du lässt es gegen Bezahlung
von jemanden machen. Selber machen ist natürlich
am billigsten.

von Darko D. (darlo)


Lesenswert?

Ja das war ja auch mein Gedanke. Deshalb ja auch aus dem Raum Bremen. 
Allerding habe ich mich da zeittechnisch offensichtlich völlig 
verschätzt.
Mit allem drum und dran wären es dann vielleicht 4 oder 5 Stunden 
Arbeitszeit mit Anfahrt und pi pa po. Mehrere hundert Euro für den 
Quellcode kann ich nicht zahlen.

von Darko D. (darlo)


Lesenswert?

Ich bin von einer reinen Schreibzeit von vielleicht 20 bis 30 Minuten 
ausgegangen. Allerdings war mir nicht bewusst, dass die 
Rahmenbedingungen nicht in Ordnung sind.
Ich kenne die Klappe ja nun innen und auswendig, weil ich sie ja selbst 
gebaut / geschweißt und konstruiert habe. Ihr nicht.

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> Das Ziel des Forums ist es ja nicht irgendwelche Leute zu enttäuschen,
> sondern zu helfen.

Falsch!
Täuschungen und Irrtümer beseitigen ist einer der Zwecke des Forums.
Ohne geht es nicht vorwärts.

Für "Täuschungen beseitigen" gibt es ein Wort: Enttäuschen

von Stefan F. (Gast)


Lesenswert?

EAF schrieb:
>> Ich bin leider nicht in der
>> Lage noch präzisere Informationen zu liefern
> Du hast die Maschine vor dir!

Ja, schon aber es hat halt nicht jedermann das Talent, seine 
Anforderungen technisch und logisch sauber zu formulieren. Wir haben in 
unserer Firma genau so viele technische Projektleiter wie 
Softwareentwickler um den Kunden genau dabei zu helfen. Und die haben 
alle immer gut zu tun.

von Roland F. (rhf)


Lesenswert?

Hallo,
Tim T. schrieb:
> Aber Formulierungen wie Ventilklappe auf bis Ende (C7) sind einfach
> nicht präzise genug. Es muss vielmehr ein Aktoren Kommando sein C6
> inaktiv + C7 aktiv und dann eine Prüfung auf B3 aktiv + B7 inaktiv und
> das in einer Schleife mit einer maximalen Wartezeit und einer
> Fehlerbehandlung wenn es zu lange dauert oder unplausible Informationen
> ankommen z.B. B3 und B7 gleichzeitig aktiv. etc, etc.

Nehmen wir mal an vor du würdest als Kunde vor einem Dienstleister 
sitzen und ihm von deinem Problem erzählen und darum bitten dafür eine 
Lösung zu finden und der Dienstleister würde dir sagen du sollst doch 
gefälligst erst mal dein Problem präzisieren, denn "wenn man alle 
Elemente im PAP auf diese Art schon sprachlich formuliert, kann man es 
praktisch direkt in Quelltext gießen".

Was würdest du dann denken?

rhf

von Stefan F. (Gast)


Lesenswert?

EAF schrieb:
> Der einzige Ausweg daraus: Klarheit schaffen.
> Klarheit in den Gedanken, und auf dem Papier.

Jawohl.

Leider kommt die Einsicht oft erst zu spät, nachdem der erste Wurf nicht 
zufrieden stellte. Beim Ausbessern merkt man erst nach vielen Stunden, 
dass das Grundgerüst unzureichend ausbaufähig ist und man quasi nochmal 
mit einem neuen Konzept von vorne anfangen muss. Bis dahin hat man 
bereits das dreifache an Zeit/Geld hinein gesteckt, als nötig gewesen 
wäre.

von Darko D. (darlo)


Lesenswert?

Ich würde antworten, dass ich nicht weiß was PAP ist und was Elemente 
sind. Und auf die Probleme würde ich sagen, dass die Klappe hochfahren 
muss und die Absaugung aus sein soll dabei und das im moment nicht 
funktioniert.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ich werde es einfach versuchen und
> daraus lernen müssen. Eventuell auch so, wie man es nicht macht

Mach mal. Wenn es ein Hobby ist, dann kann man mit dem Aufwand ja auch 
leben.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Allerding habe ich mich da zeittechnisch offensichtlich völlig
> verschätzt.
> Mit allem drum und dran wären es dann vielleicht 4 oder 5 Stunden
> Arbeitszeit mit Anfahrt und pi pa po.

Stop!

Du maßt dir schon wieder an, den Aufwand schätzen zu können obwohl du 
gerade erst bemerkt hast, dass du genau das nicht kannst!

> Mehrere hundert Euro für den Quellcode kann ich nicht zahlen.

Das wird aber so viel kosten, wenn du es machen lässt.

von Stefan F. (Gast)


Lesenswert?

Roland F. schrieb:
> Nehmen wir mal an vor du würdest als Kunde vor einem Dienstleister
> sitzen und ihm von deinem Problem erzählen ...
> Was würdest du dann denken?

Wir sind hier aber Kunde und Dienstleister.

von Darko D. (darlo)


Lesenswert?

Ja also ganz ungern mache ich es nicht. Der Lernfaktor ist bei mir auch 
wichtig. Allerdings habe ich im Moment ein kleines Kind zu Hause (3 
Monate) und die Klappe ist jetzt zu 95 % Fertig (2 Jahre Aufbauzeit) Nur 
die Software fehlt quasi. Es wäre schade wenn das Ganze noch 2 Jahre 
jetzt dauern würde.

von Stefan F. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wir sind hier aber Kunde und Dienstleister.

Das nicht fehlte. Wir sind nicht Kunde und Dienstleister.

Wer hier wie ein Kunde behandelt werden will, der soll einen Auftrag 
erteilen und zahlen.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ja also ganz ungern mache ich es nicht.
> Der Lernfaktor ist bei mir auch wichtig

Versuche den Vorschlag anzunehmen, es als Zustandsautomat zu 
dokumentieren (grafisch und als Tabelle) und dann wie von mir 
vorgeschlagen mit switch/case umzusetzen.

Das ist ein möglicher Ansatz, der Erfahrungsgemäß gut klappt und gut 
ausbaufähig ist.

von MaWin (Gast)


Lesenswert?

Was ist eigentlich mit der Leistungselektronik für die Aktoransteuerung? 
Wer entwickelt die?

von Darko D. (darlo)


Lesenswert?

Die Schalter / Ventile Leistungselektronik ist schon fertig. Sie ist von 
mir selbst gelötet.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Die Schalter / Ventile Leistungselektronik ist schon fertig. Sie ist von
> mir selbst gelötet.

Und vermutlich genau so gut durchdacht, wie der Programmablauf. Also 
ohne Fehlerbehandlung.

von Darko D. (darlo)


Lesenswert?

Löten kann ich ein bisschen. Ich habe eine Lötstation von Ersa mit 
Heißluft. Vario 2 heißt sie glaube ich.

von Darko D. (darlo)


Lesenswert?

Ja ohne Fehlerbehandlung.

von EAF (Gast)


Lesenswert?

MaWin schrieb:
> Was ist eigentlich mit der Leistungselektronik für die Aktoransteuerung?
> Wer entwickelt die?

Warte, ich ahne die Antwort schon!

Schraubklemmen, das sind Schraubklemmen.
Das ist kein Problem.

von pnp (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wer hier wie ein Kunde behandelt werden will, der soll einen Auftrag
> erteilen und zahlen.

Aber auch dann muss man Fragen nach der genauen Funktionsweise 
beantworten. Also genau das, was der TO leider nicht kann...

von Darko D. (darlo)


Lesenswert?

Ja das habe ich verstanden. Ich weiß auch leider nicht was ein 
Zustandsautomat ist. Was ich anbieten kann (als Kunde) ist einen 
deutschen Text niederzuschreiben was alles passieren soll und was 
passieren kann.
Wenn das weiterhelfen könnte würde ich das tun.

von STK500-Besitzer (Gast)


Lesenswert?

Darko D. schrieb:
> Ich weiß auch leider nicht was ein
> Zustandsautomat ist

Sowas und die anderen Fachbegriffe kann man googlen.

von MaWin (Gast)


Lesenswert?

Darko D. schrieb:
> Die Schalter / Ventile Leistungselektronik ist schon fertig. Sie ist von
> mir selbst gelötet.

Ok. Die Frage war allerdings, ob sie bereits entwickelt ist, bzw. wer 
das tun soll. Das hat mit Löten nichts zu tun.
Aber gut, wenn deine Schaltung funktioniert, wird sie möglicherweise 
hinreichend gut entwickelt sein.

von MaWin (Gast)


Lesenswert?

Darko D. schrieb:
> Ich weiß auch leider nicht was ein Zustandsautomat ist.

https://de.wikipedia.org/wiki/Endlicher_Automat

von René F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ich weiß auch leider nicht was ein
> Zustandsautomat ist.

Ein Zustandsautomat (auch State machine genannt) erzeugt vereinfacht 
ausgedrückt auf Basis von Eingangssignalen bestimmte Ausgangssignale.

Du hast also deine 5 Eingangssignale (E0, E1, E2, E3, E4) und deine 5 
Ausgangssignale (A0, A1, A2, A3, A4).

Mit Hilfe dieser 5 Eingangssignale kannst du 2^5 (32) verschiedene 
Zustände erfassen und 2^5 (32) verschiedene Antworten ausgeben.

Diese kannst du in Form einer (Wahrheits-)Tabelle anlegen. Mit 
verschiedenen Methodiken lässt sich daraus ein boolscher Algorithmus 
erzeugen (konjunktive Normalform und disjunktive Normalform). Es wird 
aber auch Zustände geben, in denen dich vielleicht nur 3 der 5 
Eingangssignale interessieren. Dies kann zum optimieren des Algorithmus 
verwendet werden, auch hier gibt es verschiedene Verfahren um aus der 
Normalform eine Optimierung zu erzeugen. (Karnaugh-Veitch-Diagramm, 
Quine und McCluskey Verfahren), eine einfache State machine lässt sich 
so mit dem optimierten Algorithmus mit wenig Aufwand umsetzen.

In deinem Fall halte ich es aber für sinnvoller eine gewöhnliche 
Ablaufsteuerung zu realisieren, lässt sich besser warten und ist 
verständlicher.

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> ich anbieten kann (als Kunde) ist einen
> deutschen Text niederzuschreiben was alles passieren soll und was
> passieren kann.
> Wenn das weiterhelfen könnte würde ich das tun.

Der Esel und die Karotte.....

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ja das habe ich verstanden. Ich weiß auch leider nicht was ein
> Zustandsautomat ist.

Habe ich dir aufgeschrieben und verlinkt:

Stefan ⛄ F. schrieb:
> Hier ein bisschen Anregung, wie man Zustandsautomaten grafisch und als
> Tabelle darstellen kann.
http://stefanfrings.de/multithreading_arduino/index.html#planung

von Joe (Gast)


Lesenswert?

Einfacher Lösungsansatz ohne Flußdiagramm.

Es gibt 32 Eingangszustände und 32 Ausgangszustände.
Nun kann man die Eingangszustände zyklisch abfragen und dann den 
entsprechenden Ausgangszustand setzen.

Eingangszustände    Ausgangszustände (Bsp.)
0 0 0 0 0   =0         0 1 1 0 0    =12
0 0 0 0 1   =1         0 0 1 1 1    =7
0 0 0 1 0   =2         1 0 1 1 0    =11
u.s.w.               u.s.w.

Alles in ein Array schreiben und dann den "Eingangswert" als Index 
verwenden.

Das wars.

von Stefan F. (Gast)


Lesenswert?

Joe schrieb:
> Das wars.

Nein das war's nicht. Dieses Konzept ist unzureichend. Du hast das 
Diagramm von Darko genau so wenig verstanden, wie Jobst.

von Darko D. (darlo)


Lesenswert?

OK. Verstanden. Ich werde es in einer solchen Form niederschreiben. Dann 
werde ich die Form hier schreiben!

von Joe (Gast)


Lesenswert?

Oder mit boolscher Algebra für die Ausgänge jeweils einen Term 
schreiben.
A B C D E als Eingänge
X1 X2 X3 X4 X5 als Ausgänge

Dann

X1=(A = 1) oder (B = 0) und (D = 1)
X2= (B=1) und (C=1) oder (E=1)

u.s.w.

fertig.

von Joe (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Nein das war's nicht. Dieses Konzept ist unzureichend. Du hast das
> Diagramm von Darko genau so wenig verstanden, wie Jobst.

Ich habe mir das Diagramm gar nicht angesehen.

von Stefan F. (Gast)


Lesenswert?

Joe schrieb:
> Oder mit boolscher Algebra

Nein, auch das genügt nicht.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Roland F. schrieb:
> Nehmen wir mal an vor du würdest als Kunde vor einem Dienstleister
> sitzen und ihm von deinem Problem erzählen und darum bitten dafür eine
> Lösung zu finden und der Dienstleister würde dir sagen du sollst doch
> gefälligst erst mal dein Problem präzisieren, denn "wenn man alle
> Elemente im PAP auf diese Art schon sprachlich formuliert, kann man es
> praktisch direkt in Quelltext gießen".
>
> Was würdest du dann denken?

Ich würde denken hmm, komme ich damit klar oder beauftrage ich einen 
anderen Dienstleister, der mich alleine wegen dem zeitlichen 
Mahraufwand, mir alles aus der Nase zu ziehen, eine ganze Menge mehr 
Geld kosten wird. Dazu kommt noch dass solche Dienstleister, die das 
Denken für mich übernehmen, grundsätzlich auch noch einen höheren 
Stundensatz haben.

Bezogen auf den TE kann ich nicht erkennen, dass er gewillt ist diese 
Mehrkosten zu zahlen und darum eben mehr Eigeninitiative zeigen muss.

Darko D. schrieb:
> Ja das habe ich verstanden. Ich weiß auch leider nicht was ein
> Zustandsautomat ist. Was ich anbieten kann (als Kunde) ist einen
> deutschen Text niederzuschreiben was alles passieren soll und was
> passieren kann.
> Wenn das weiterhelfen könnte würde ich das tun.

Das Problem hierbei ist, es müsste vollkommen unmissverständlich 
geschrieben sein und keinerlei implizites Wissen erfordern; also so dass 
man ohne die geringste Ahnung vom mechanischen Aufbau und sonstigen 
Umständen alleine durch den Text alles notwendige für die Steuerung 
erfährt.

Wieder als Beispiel: Du gehst stillschweigend davon aus, dass wenn B3 
aktiv ist B7 inaktiv ist, solche Informationen gehören aber zwingend 
dazu, da niemand hier wissen kann wie die Klappe im Detail angesteuert 
wird.

von Darko D. (darlo)


Lesenswert?

Das habe ich auch verstanden. Ich bedanke mich auf jeden Fall für die 
rege Antwort. Danke!!!!!!!!!!! Ich werde es in den nächsten Stunden / 
Spätestens Weihnachten hinbekommen!

von Stefan F. (Gast)


Lesenswert?

Joe schrieb:
> Ich habe mir das Diagramm gar nicht angesehen.

Aber du meinst, ihm Ratschläge zur Umsetzung geben zu können. Alle 
Achtung, das ist Kreativ. Nur ist hier gerade leider nicht die Muse 
gefragt, sondern eine technische Umsetzung.

von Darko D. (darlo)


Lesenswert?

Ich meine hinbekommen mit den 32 verschiedenen Zuständen.

von Darko D. (darlo)


Lesenswert?

Wartet bitte ab, bis ich die Zustände klar definiert habe.
Vielleicht leutet es dann ja ein.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ich meine hinbekommen mit den 32 verschiedenen Zuständen.

Vermutlich brauchst du gar nicht so viele.

von Darko D. (darlo)


Lesenswert?

Ich bin mir sicher, dass ich nicht 32 Zustände brauche, weil zum 
Beispiel der Endlagenschalter Klappe auf und der Endlagenschalter Klappe 
zu nicht gleichzeitig betätigt sein können. (z.B)

von Stefan F. (Gast)


Lesenswert?

Für die Klappe fallen mir spontan 4 Zustände ein:

Klappe ist offen
Klappe schließt sich
Klappe ist geschlossen
Klappe öffnet sich

Und eventuell zur Fehlerbehandlung:

Klappe ist blockiert

Aber das ist ja nicht alles, da gibt es noch mehr Teile, die Zustände 
haben.

von Darko D. (darlo)


Lesenswert?

Ja vielen Dank! Das erste mal sah ich mich lächeln und ein kleines Licht 
am Ende des Tunnels!! Wir schaffen das!!!!!!!!!

von ek13 (Gast)


Lesenswert?

Die älteren Generationen der „Siemens Logo“ + „Logosoft“ bekommt man 
sehr günstig z.B. bei eBä.
Damit wäre dein Problem ein Kinderspiel.
https://youtu.be/rcX2HI84_NM

Fröhliche Weihnachten 🎄

von Darko D. (darlo)


Lesenswert?

Ja vielen Dank nochmal. Ich werde heute mit Sicherheit besser schlafen 
als gestern!!

von Stefan F. (Gast)


Lesenswert?

Es gibt viele unterschiedliche Erklärungen und Umsetzungen von 
Zustandsautomaten. Ich habe sie auch nicht gleich verstanden. Aber 
nachdem ich mich mit einem nicht durchdachten Plan verzettelt hatte 
wurde mir hier im Forum von gefühlt 20 Leuten nahe gelegt, mich trotzdem 
nochmal damit zu befassen. Ich fand dann in der Bibliothek ein Buch zum 
Thema, dessen erstes Kapitel sorgte für den "es hat Klick" gemacht 
Effekt. Danach habe ich auch die anderen Artikel verstanden, die mir 
vorher nichts sagten.

Der Knackpunkt war bei mir zu verstehen, was ein Zustand (im Sinne des 
Zustandsautomaten) ist und dass eine Maschine oft aus vielen parallel 
laufenden Zustandsautomaten besteht.

Leider weiß ich den Titel des Buches nicht mehr, das ist schon lange 
her.

Ich schreibe dir das, weil ich dich dazu anregen möchte, andere 
Erklärungen zu suchen, wenn dir meine oder die von Wikipedia nicht 
einleuchtet.

By the way: das Konzept wird oft auch "Endlicher Automat" oder "State 
Machine" genannt.

von Peter D. (peda)


Lesenswert?

Du machst Dir das Leben künstlich schwer mit den Portpins. Keiner kann 
sich merken, welche Funktion hinter einer Portnummer steckt.
Definiere Dir daher einen Header, wo alle Ein- und Ausgänge mit lesbaren 
Namen versehen werden und benutze diese sowohl im PAP als auch im Code.
Hier mal das Prinzip:
Beitrag "Re: Port als Variable"
1
#include "sbit.h"
2
#define TASTE     PIN_D2
3
#define ABSAUGUNG PORT_D5
4
//..
5
  if (TASTE)
6
    ABSAUGUNG = 1;
7
//..

von Jobst M. (jobstens-de)


Lesenswert?

Stefan ⛄ F. schrieb:
> Nein das war's nicht. Dieses Konzept ist unzureichend. Du hast das
> Diagramm von Darko genau so wenig verstanden, wie Jobst.

Ganz ehrlich? Bei der mieserablen Informationslage ist es kein Wunder, 
wenn man das nicht versteht. Zumindest habe ich die Lust verloren, mir 
die ganzen Scheibchen hier im Thread zusammen zu popeln. Dass es anderen 
genau so geht, kann ich nachvollziehen.
Du scheinst als einziger hier die Muße zur Erfassung der Infos zu 
besitzen. Aber auch Du verzichtest aus guten Gründen darauf, ihm den 
Kram zu implementieren.

Wenn das Warten auf irgendeinen Vorgang nicht durch einen der 5 Eingänge 
zurückgemeldet wird, dann wird es pro abzuwartender Aktion eine 
Verdopplung der schon vorhandenen 32 Eingangskombinationen geben. Einige 
Kombinationen wird es nicht geben, andere sind irrelevant. Dennoch wird 
man mit 32 Kombinationen vermutlich nicht hinreichen. Das ist auch kein 
Problem, vergrößert aber den Umfang.

Es fehlt ebenfalls ein Schaltplan, in dem die mechanischen 
Abhängigkeiten eingezeichnet sind.
Und es fehlt die Info, auf welche Dinge gewartet werden muss, für die es 
keine elektrischen Signale gibt.

Das Ablaufdiagram beginnt schon mit einem Problem: "Betätigung Schalter 
auf/zu"
Was soll das bedeuten? Auf? Zu? Egal? Beides?

Was ist der Zweck des Dings?

Und Darko: Weniger Entschuldigungen oder Geschichten über 
Schlafstörungen, Kind, Frau, Auto, Zeit, ... Das macht die ganze 
Geschichte hier noch undurchsichtiger.

Gruß
Jobst

von Stefan F. (Gast)


Lesenswert?

Jobst M. schrieb:
> Ganz ehrlich? Bei der mieserablen Informationslage ist es kein Wunder,
> wenn man das nicht versteht.

Ja, ich wollte damit auch nicht sagen dass ich zwei euch dumm anstellt.

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Ja das sehe ich ein. Das soll auch keine Entschuldigung sein! Ich habe 
mir aber die Mühe gemacht folgende 32 Zustände zu definieren.
Allerdings bin ich auch dort gescheitert, weil es abhängig ist WANN der 
Endlagenschalter Klappe zu betätigt ist. Es ist ein Unterschied ob die 
Klappe gerade geschlossen wurde oder ob sie jetzt geöffnet werden soll.

Gerne könnt ihr das mal ansehen.

Bitte macht euch auch nicht zu viel Mühe auch wenn das sehr nett ist!!
Wenns nicht klappt, dann muss ich irgendwie weitersehen oder zur ganz 
großen Not die Blöde Klappe immer von Hand auf und zu machen. So wie 
alle anderen auch.

von nixversteh (Gast)


Lesenswert?

Darko D. schrieb:
> Gerne könnt ihr das mal ansehen.

Oh mannomann .... was soll denn das sein:

Scharnier offen/geschlossen.

Das versteht ja kein Schwein. Ein Scharnier ist ein Gelenk
zwischen zwei Teilen die dadurch gekoppelt sind.

Man kann natürlich auch Luft auf die Fahradkette pumpen.

von Darko D. (darlo)


Lesenswert?

Herr Jobst, der Schalter Klappe auf/zu ist ein Taster.
Wenn die Klappe geöfnet ist und man den Taster dann drückt, soll die 
Klappe zufahren.

Wenn die Klappe zu ist und man den Taster dann drückt soll sie 
auffahren.

Deswegen heist der Taster auf / zu. Ich wüsste nicht wie man das 
gleichzeitig betätigen soll.

von Darko D. (darlo)


Lesenswert?

Nein, das Scharnier ist eine pneumatische Zuziehhilfe, wenn die Klappe 
ganz unten ist. Diese Zuziehhilfe presst die Klappe gegen die 
Gummidichtung.
Beim Öffnen der Klappe muss das Scharnier (Zuziehhilfe geöffnet werden 
und dann im Anschluss kann die Klappe auffahren.

Ich sagte doch ich bin gescheitert!!!!!!

von STK500-Besitzer (Gast)


Lesenswert?

Darko D. schrieb:
> Wenn die Klappe zu ist und man den Taster dann drückt soll sie auffahren.
> Deswegen heist der Taster auf / zu. Ich wüsste nicht wie man das> gleichzeitig 
betätigen soll.

Dann nenn den Taster "Start".

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Gerne könnt ihr das mal ansehen.

Das geht völlig an meinem Vorschlag vorbei. Zerlege die Maschine in 
Teile, die Zustände einnehmen können. Ein Beispiel für die Klappe habe 
ich dir gegeben:

Zustände:

Klappe ist offen
Klappe schließt sich
Klappe ist geschlossen
Klappe öffnet sich

Überlege dir dazu, welche Ereignisse zu Zustandsänderungen führen.

Im Zustand "Klappe ist offen" kann ein Kommando dazu führen, dass die 
Klappe geschlossen werden soll. Die Aktion dazu ist, ihren Motor links 
herum laufen zu lassen. Nächster Zustand ist "Klappe schließt sich".

Im Zustand "Klappe schließt sich" soll die Betätigung des unteren 
Endschalters dazu führen, dass ihr Motor gestoppt wird. Nächster Zustand 
ist "Klappe ist geschlossen".

Im Zustand "Klappe ist geschlossen" kann ein Kommando dazu führen, dass 
die Klappe geöffnet werden soll. Die Aktion dazu ist, ihren Motor rechts 
herum laufen zu lassen. Nächster Zustand ist "Klappe öffnet sich".

Im Zustand "Klappe öffnet sich" soll die Betätigung des oberen 
Endschalters dazu führen, dass ihr Motor gestoppt wird. Nächster Zustand 
ist "Klappe ist offen".

Fehlerbehandlung fehlt da noch. Das wäre die Beschreibung des 
Zustandsautomaten für eine Klappe. Das ganze wird dann noch als Tabelle 
und als Diagramm dargestellt (siehe Muster auf meiner Webseite).

In dieser Art wird jedes Teil der Maschine beschrieben, dass Zustände 
haben kann. Nun interagieren diese miteinander. Oben heißt es "kann ein 
Kommando dazu führen, dass die Klappe geöffnet/geschlossen werden soll". 
Welcher Teil der Maschine oder welches Bedienelement emittiert dieses 
Kommando? Auch das kann man sauber beschreiben.

Wie man Zeitverzögerungen einbaut, habe ich auf meiner Webseite gezeigt.

Am Ende kommen dabei ein Gebilde aus mehreren Zustandsautomaten heraus, 
die sich Gegenseitig Signale/Kommandos senden. Auch dazu sollte wiederum 
ein Diagramm gezeichnet werden das zeigt wer mit wem Kommuniziert, sowie 
ein weiteres Diagramm dass die normalen Signale/Kommandos in zeitlicher 
Folge darstellt.

Wenn das fertig ist kommt erst der Softwareentwickler in Spiel. Er hat 
die Aufgabe, das alles in ein lauffähiges Programm zu gießen. Es ist der 
Softwareentwickler, der sich überlegt, wie man ein Signal in der 
jeweiligen Programmiersprache darstellen kann und wie die einzelnen 
Programmteile Signale senden/empfangen können. Im einfachsten Fall 
können das simple globale boolesche Variablen sein.

Ich denke, mehr kann ich dazu nicht mehr schreiben, sonst artet es in 
ein Buch aus. Und Bücher zum Thema gibt es bereits, sicher bessere als 
ich sie schreiben könnte.

von nixversteh (Gast)


Lesenswert?

Darko D. schrieb:
> Diese Zuziehhilfe presst die Klappe gegen die Gummidichtung.

Dann kann man das nicht als Scharnier bezeichnen.

Darko D. schrieb:
> Ich sagte doch ich bin gescheitert!!!!!!

Wenn du eine Katze als Pferd bezeichnest - dann ja.

von Joe (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Joe schrieb:
>> Oder mit boolscher Algebra
>
> Nein, auch das genügt nicht.

Dann warte ich auf deinen Lösungsvorschlag!    ?????

von Jobst M. (jobstens-de)


Lesenswert?

Stefan ⛄ F. schrieb:
> ich wollte damit auch nicht sagen dass ich zwei euch dumm anstellt.

Alles gut, das habe ich so auch nicht aufgefasst.


Darko D. schrieb:
> Angehängte Dateien:
>           32_Zustaende.txt (1,6 KB)

0/1 ist verwirrend.

Spekulationen:
 1 = gedrückt oder ja
 0 = losgelassen oder nein

> In diesen nachfolgenden 16 Zuständen soll gar nichts passieren,
> weil der Taster Klappe auf / zu nicht gedrückt ist

Dennoch müssen die Ausgänge ja einen Zustand haben!

In Deiner Tabelle passiert folgendes, wenn "gar nichts passiert":
Taster wird gedrückt, Klappe bewegt sich.
Taster wird losgelassen, Klappe bewegt sich immer weiter auch wenn 
Endlageschalter betätigt wird, da "gar nichts passiert"

Weiterhin lese ich aus der Tabelle, dass ein warten auf irgendwelche 
Endpositionen doch durch einen Eingang representiert wird und damit voll 
dadurch abgedeckt ist.

Den Ausgänge A0 und A4 kannst Du Dir sparen, da sie immer 0 sind.

Gruß
Jobst (nicht "Herr Jobst")

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Nein, das Scharnier ist eine pneumatische Zuziehhilfe, wenn die Klappe
> ganz unten ist. Diese Zuziehhilfe presst die Klappe gegen die
> Gummidichtung.
> Beim Öffnen der Klappe muss das Scharnier (Zuziehhilfe geöffnet werden
> und dann im Anschluss kann die Klappe auffahren.

Gibt es dafür auch Endschalter?

Nachtrag: Für Scharnier geschlossen?

Gruß
Jobst

: Bearbeitet durch User
von Jobst M. (jobstens-de)


Lesenswert?

Noch etwas passiert:

Wenn Du den Taster drückst, fährt alles in eine der beiden Endpositionen 
und sobald diese erreicht sind sofort wieder in die andere Richtung.

Ich möchte folgendes vorschlagen:

- Taster drücken alles fährt in Richtung 1 maximal bis Endposition 
erreicht.
- Taster loslassen alles bleibt stehen.
- Taster drücken alles fährt in Richtung 2 maximal bis Endposition 
erreicht.
- Taster loslassen alles bleibt stehen.
... und wieder von oben.

Das bedeutet auch, dass die Klappe bei einem Problem wieder zurück 
gefahren werden kann. (Durch erneutes drücken)

Taster: Schreib das bitte auch! Ein Schalter rastet.

A2 soll takten. Wenn sich die Klappe irgendwo in der Mitte befindet?

Auch über die Zuordnung Klappe oben/unten und auf/zu kann man nur 
spekulieren.

Wenn das Ventilscharnier offen ist, soll sich die Klappe nie bewegen 
...?

Das ist noch alles nicht schlüssig, obwohl ich mittlerweile eine 
Vorstellung von dem habe, was Du vor hast:

Du möchtest den Vorgang mit der Taste starten und diese auch die ganze 
Zeit dabei gedrückt halten.
In einer Richtung soll die Klappe bis zur Endposition zu gefahren werden 
und dann soll das "Scharnier" geschlossen werden. (Endschalter?)
Wenn diese Position erreicht ist, ist der Vorgang beendet.
Umgekehrt soll sich das "Scharnier" öffnen und wenn offen, soll die 
Klappe auf gehen, bis der entsprechende Endschalter geschlossen wird.

Also ähnlich wie bei einem Fahrstuhl: Tür erst öffnen, wenn Stockwerk 
erreicht und Fahrstuhl steht. Und losfahren erst, wenn Tür wieder zu.

Eine einfache, gegenseitige Verriegelung.

Wenn das so ist, warum hast Du das dann nicht so geschrieben?


Gruß
Jobst

von Stefan F. (Gast)


Lesenswert?

Joe schrieb:
> Dann warte ich auf deinen Lösungsvorschlag!

Wenn du meine Beitrage dazu nicht siehst, dann willst du sie nicht 
sehen.

von Rainer V. (a_zip)


Lesenswert?

...langsam verstehe ich, warum der TO bis hierhin schon 2 Jahre 
gebraucht hat! Hier fehlt es irgendwie an grundlegendem Verständnis und 
offensichtlich hat der TO auch keinen Bastler im Bekanntenkreis. So wird 
das also bestimmt nichts...
Gruß Rainer

von René F. (Gast)


Lesenswert?

Rainer V. schrieb:
> ...langsam verstehe ich, warum der TO bis hierhin schon 2 Jahre
> gebraucht hat! Hier fehlt es irgendwie an grundlegendem Verständnis und
> offensichtlich hat der TO auch keinen Bastler im Bekanntenkreis. So wird
> das also bestimmt nichts...
> Gruß Rainer

Was soll denn das für ne Aussage sein? Vielleicht ist er ja ein 
grandioser Mechaniker? Digitaltechnik und Programmierung sind für viele 
Menschen, welche bisher nur wenig Berührungspunkte mit dieser Welt 
hatten eben sehr abstrakt.

Ähnlich geht es mir beispielsweise im HF bzw. Funkbereich. Klar lässt 
sich das erlernen, würde ich hier in das dazugehörige Unterforum gehen, 
würde ich wahrscheinlich in der Hälfte der Threads nur Bahnhof 
verstehen..

von Spess53 (Gast)


Lesenswert?

Hi

>Was soll denn das für ne Aussage sein? Vielleicht ist er ja ein
grandioser Mechaniker?

Darko schrieb:

Was soll denn das für ne Aussage sein? Vielleicht ist er ja ein
grandioser Mechaniker?

 Darko D. schrieb:
...und die Klappe ist jetzt zu 95 % Fertig (2 Jahre Aufbauzeit)

nach "grandioser Mechaniker" hört sich das nicht an. Und die Software 
ist da nicht mit drin:

>Nur die Software fehlt quasi.

Was soll deine Frage nach der Aussage also?

MfG Spess

von nixversteh (Gast)


Lesenswert?

Spess53 schrieb:
> nach "grandioser Mechaniker" hört sich das nicht an.

Das erkennt man schon daran dass er ein Funktionselement
als "Scharnier" bezeichnet das gar keines ist.

Darko D. schrieb:
> Nein, das Scharnier ist eine pneumatische Zuziehhilfe, wenn die Klappe
> ganz unten ist. Diese Zuziehhilfe presst die Klappe gegen die
> Gummidichtung.

von Rainer V. (a_zip)


Lesenswert?

Ehrlich, ich würde vorschlagen, wir warten auf den Samariter, der sich 
nach Bremen traut und auch 3 Fliegen mit 7 Klappen erschlägt!
Rainer

von EAF (Gast)


Lesenswert?

Ich habe nix gegen Zuziehhilfen.

von Darko D. (darlo)


Lesenswert?

Guten Morgen alle zusammen und Frohe Weihnachten!!
Noch einmal ein großes Dankeschön an Jobst und Stefanus und die anderen 
Gäste selbstverständlich auch.
Ich habe durch das Lesen des kompletten Chats gemerkt, dass ihr euch 
alle damit sehr auseinander gesetzt habt. Das hat mich sehr gefreut!
Ich brauche im Moment nur Zeit um mich mit den Zustandsautomaten und 
deren Funktionen auseinanderzusetzen, um zu dem Ziel zu kommen.
Es ist auch richtig, dass ich nicht bereit bin mehrere Hundert Euro an 
eine Fachfirma zu zahlen die mir die Software und das was an Fragen 
dazugehört zu bezahlen. Da ich nicht so viel Geld verdiene.
2 Jahre hat das Projekt bisher gedauert. Allerdings ist nicht täglich 
daran gearbeitet worden. Ich habe auch keine Probleme damit das Teil zu 
beschreiben. Vielleicht kommt da ja noch ein Tipp aus einer ganz anderen 
Richtung dazu.

Ich habe eine 1,9m hohe eine 1m tiefe und eine 1,5m breite 
Sandstrahlkabine konstruiert, geschweißt und entwickelt. Das besondere 
ist eigentlich, dass die Kabine incl. der Schrauben, Nieten und 
sonstigen Befestigungsvarianten komplett aus Edelstahl ist.

Daher ist es auch notwendig bei geschlossener Klappe noch einmal durch 
eine zusätzliche Zuziehhilfe den Anpressdruck an die Gummidichtung zu 
erhöhen.
Ein weiterer Grund warum es diese Zuziehhilfe gibt ist es, dass ca. 80 % 
des Klappengewichtes zum hochdrücken durch 2 Gasdruckdämpfer übernommen 
wird.

Die Funktionsweise des Programms ist ähnlich wie das Jobst beschrieben 
hat. Der Hauptunterschied (welchen ich mir wünsche) ist, dass man den 
Taster nicht gedrückt halten muss die ganze Zeit.
Mein Ziel war es eig. den Taster einmal zu drücken, dann ca. 4 bis 5 
Sekunden abzuwarten bis die Absaugung austrudelt und dann aus der Ferne 
zuzusehen, wie sich mein Glück öffnet.

Es ist auch vollkommen richtig, dass Ihr erkannt habt, dass die 
Zuziehhilfe nur einen Endlagenschalter für den Status offen hat.
Durch eine Federkraft wird sie in genau 2,5 Sekunden geschlossen, wenn 
das Ventil "schließen" betätigt wird. Um den Verdrahtungsaufwand zu 
minimieren soll das Programm einfach nach einer 3 sekündigen Ansteuerung 
des Ventils Zuziehhilfe zu davon ausgehen, dass es geschlossen ist.

Der Zustand offen der Zuziehhilfe muss aber BEVOR die Klappe zufährt 
überprüft werden, denn bei geschlossener Zuziehhilfe knallen die Haken 
der Klappe gegen die Außenscharniere der Zuziehhilfe.

Vielleicht rundet die Beschreibung des Teils ja auch das Puzzle ein 
bisschen ab.
Bisher also nochmal vielen Dank!!!!!!!!!!!!!!!!!!!

von Stefan F. (Gast)


Lesenswert?

Der ganze Text hätte zusammen mit Fotos und einem kurzen (!) Video in 
den Eröffnungsbeitrag gehört. Dann kann man mit deinem Diagramm viel 
mehr anfangen.

von STK500-Besitzer (Gast)


Lesenswert?

Darko D. schrieb:
> Das besondere
> ist eigentlich, dass die Kabine incl. der Schrauben, Nieten und
> sonstigen Befestigungsvarianten komplett aus Edelstahl ist.

Sowas ähnliches haben wir mal an einem Tag zusammengebraten.

Wie sieht das bei deiner mit der elektrostatischen Aufladung aus?
Alles schön geerdet?

Dinge, die sich von alleine bewegen, brauchen immer einen 
Schutzmechanismus, damit sich niemand die Finger oder anderes klemmen 
kann.
Also braucht dein Aufbau entweder einen Taster, den man dauerhaft 
drücken muss, oder einen Sensor, der verhindert, dass sich jemand im 
Schwenkbereich der Klappe befindet.

von Darko D. (darlo)


Lesenswert?

An einem Tag???? WAHNSINN!!!!
Der Kleber der Scheibe hat bei mir schon einen Tag gedauert :-)
Ich schätze dass dort ca. 700 bis 800 Stunden bisher reingegangen sind!
LG

Zwei Tage hat ja schon der Transport und der Zusammenbau im Keller 
gedauert...

von STK500-Besitzer (Gast)


Lesenswert?

Darko D. schrieb:
> Der Kleber der Scheibe hat bei mir schon einen Tag gedauert :-)

Es ging um die Konstruktion und den Zusammenbau.
Das Material musste auch beschaft werden und das Sikaflex musste auch 
trocknen.
Nach einem Wochenende haben wir das Ding dann aber auch gleich benutzt.
Einfach nur eine Klapptür mit Reibriegeln und keinen elektronischen 
Schnickschnack.
Eine Lampe war noch drin.

von Darko D. (darlo)


Lesenswert?

Zum Thema Sicherheit: Die Klappe ist geerdet.
Einen Klemmschutz hat die Klappe nicht. Durch die Gasdruckdämpfer 
reduziert sich die Klappenfahrgeschwindigkeit so sehr, dass ein 
"erschlagen" von der Klappe nicht möglich ist. Des weiteren wiegt die 
Klappe ungefähr 25 kg. 80 % der Hochdrückkraft übernehmen die Dämpfer, 
sodass ein schmerzhaftes Einklemmen sowieso gar nicht möglich ist.

von EAF (Gast)


Angehängte Dateien:

Lesenswert?

Darko D. schrieb:
> Bisher also nochmal vielen Dank!!!!!!!!!!!!!!!!!!!
Bitte weniger !, dafür bitte mehr aufschlussreichen Text.
Tipp: Man kann Tastendrücke sinnvoller einsetzen.

Bisher hast du es nicht für nötig gehalten deine Kästchen, im 
Flussdiagramm, eindeutig zu benennen.

Das habe ich mal für dich übernommen.
Auch wenn es gruslig aussieht, ist es doch funktional.

Fragen:
Was bedeutet das takten in C6?
Ist das wieder ein Automat?

Was ist das für eine Endlage in B4?
Darf sich der Programmierer da eine aussuchen?

Warum steht an C1 ein Schalter, wenn es doch ein Taster ist?
Hat der 2 Funktionen?

Was unterscheidet A8 von D8?
Was unterscheidet D4 von E4?

Warum finde ich die "Freigabe Absaugung" nicht im Flussdiagramm?
Was ist das überhaupt?

von Jobst M. (jobstens-de)


Lesenswert?

Was ist mit:

Jobst M. schrieb:
> Den Ausgänge A0 und A4 kannst Du Dir sparen, da sie immer 0 sind.

Gruß
Jobst

Beitrag #6921431 wurde von einem Moderator gelöscht.
Beitrag #6921460 wurde von einem Moderator gelöscht.
Beitrag #6921704 wurde von einem Moderator gelöscht.
Beitrag #6921726 wurde von einem Moderator gelöscht.
von Stefan F. (Gast)


Lesenswert?

c-hater schrieb im Beitrag #6921704:
> Sowas zu fordern, steht dir schlicht nicht zu. Wer glaubst du zu sein?

Dito. Dir steht demnach nicht zu, mich so anzufahren. Vor allem bei 
Themen die dich nicht betreffen. Wer glaubst du zu sein?

Beitrag #6921759 wurde von einem Moderator gelöscht.
Beitrag #6921770 wurde von einem Moderator gelöscht.
Beitrag #6921777 wurde von einem Moderator gelöscht.
Beitrag #6921778 wurde von einem Moderator gelöscht.
von Darko D. (darlo)


Lesenswert?

Hallo.
Ich kann einige Fragen beantworten.
Takten bedeutet:
Ventil Klappe zu wird für 100ms angesteuert,
dann wird 500ms gewartet
dann wird wieder 100ms angesteuert,
und dann wieder 500 ms gewartet.

Dies wird so lange wiederholt, bis die Klappe den Endlagenschalter 
Klappe zu erreicht. Wenn das dann der Fall ist, wird das Ventil 
Scharnier zu (Zuziehhilfe zuziehen) für 3 Sekunden angesteuert, weil der 
Vorgang ca. 2,5 Sekunden dauert und dort kein Endlagenschalter verbaut 
ist.

Frage von Ihnen:
Was ist das für eine Endlage in B4?

Antwort:
B4 sagt mir gar nichts. Wo soll das sein? Im Flussdiagramm gibt es B3 
und B7...

Frage von Ihnen:
Warum steht an C1 ein Schalter, wenn es doch ein Taster ist?

Antwort:
C1 muss ein Ausgang sein.
Ich erkenne nicht woher sie die Informationen nehmen?


Der Mikrocontroller hat 5 Eingänge (Port B1 bis Port B5)
und 5 Ausgänge Port C0 bis C4

Daher verstehe ich auch nicht die Fragen:

Was unterscheidet A8 von D8?
Was unterscheidet D4 von E4?

Dies Zahlen sagen mir nichts...

Ich werde mich wie von Jobst und den anderen empfohlen erst mal mit den 
Zustandsautomaten auseinandersetzen müssen.

LG Darko

von etreas (Gast)


Lesenswert?

der thread ist leider tl;tr - kam schon einer mit finite state machines 
an?

beste grüße

von Bämbel (Gast)


Lesenswert?

etreas schrieb:
> kam schon einer mit finite state machines an?

Ja.
Ist die Suchfunktion deines Browsers defekt?

von etreas (Gast)


Lesenswert?

dir auch frohe weihnachten bämbel :)

Beitrag #6921796 wurde von einem Moderator gelöscht.
Beitrag #6921800 wurde von einem Moderator gelöscht.
Beitrag #6921814 wurde von einem Moderator gelöscht.
von MaWin (Gast)


Lesenswert?

Darko D. schrieb:
> Ich erkenne nicht woher sie die Informationen nehmen?
> ....
> Dies Zahlen sagen mir nichts...

Würdest du meinen Beitrag aufmerksam lesen, hätte dir auffallen können, 
dass ich ein Ordnungssystem in dein Flussdiagram eingebaut habe, da du 
ja nicht dazu in der Lage bist. Bzw. dir die Ordnung am Arsch vorbei 
geht. Selbst nach mehrmaliger Aufforderung.

Beitrag #6921827 wurde von einem Moderator gelöscht.
Beitrag #6921830 wurde von einem Moderator gelöscht.
von Hannes (Gast)


Lesenswert?

etreas schrieb:
> der thread ist leider tl;tr - kam schon einer mit finite state
> machines an?

Is' schon so lange her - dat is' schon gar nimmer wahr...

Wie soll‘s auch anders sein? Ein guter Teil der Anwesenden sind 
therapiebedürftig - wegen anhaltender, narzisstischer 
Persönlichkeitsstörung. Da ist jede auch nur entfernt brauchbare Idee in 
Nu zerredet.

Beitrag #6921891 wurde von einem Moderator gelöscht.
Beitrag #6921899 wurde von einem Moderator gelöscht.
Beitrag #6921903 wurde von einem Moderator gelöscht.
Beitrag #6921905 wurde von einem Moderator gelöscht.
Beitrag #6921917 wurde von einem Moderator gelöscht.
Beitrag #6921921 wurde von einem Moderator gelöscht.
von etreas (Gast)


Lesenswert?

oh ok - kam dann wohl falsch rüber. war auch lax formuliert sry. ich les 
gerade Modeling Software with Finit State Machines :) waren schon etwas 
aus der digitaltechnik und mikrocumputer technik bekannt - wenn man fsm 
tatsächlich als fsm und nicht als pattern aus gof versteht, sind die das 
beste mittel komplexität in den griff zu bekommen

von etreas (Gast)


Lesenswert?

wer übrigens eine richtig geile fsm sehen möchte, hole sich die wad von 
doom 2 und einen source port - parallel dazu den veröffentlichten 
source: https://github.com/id-Software/DOOM

von EAF (Gast)


Lesenswert?

Ich mache mal die Rechnung auf:

2H Nachfragen im Forum, bis Klärung (90%). Über Tage verteilt
2H Flussdiagramm strukturieren, plus weitere Planung/Vorbereitung
1H Codieren
1H Prototype/Testumgebung bauen und debuggen


Das macht 6H a XX Euronen.
Weitere Änderungen/Anpassungen/Zusatzarbeiten kosten extra.


Das Programm liegt hier fertig getestet.
Flussdiagramm 1:1 übernommen
Programmiert mit der Arduino IDE
Getestet auf einem UNO
Kompiliert fehlerfrei für ATMega8

Ein Umbau auf C, ohne Arduino: Machbar
Ein paar delay() und eine Schleife finden sich dort. Die könnte man 
ersetzen, wenn man dort kleine Sub Automaten einsetzt.

Über Schönheit kann man bekanntlich streiten, aber Schönheit gehört auch 
nicht zur Anforderungsliste.

Übrigens:
Keine if Kaskaden
Kein switch/case Konstrukt
Flache Schachtelungen max 1 Ebene im Funktionsblock

von Jan (Gast)


Lesenswert?

Hey Darko,

Sicherlich hast du selbst schon gemerkt, dass hier im Forum nur die 
wenigsten Fragen zu konstruktiven Ergebnissen führen. Gerade so Fragen 
wie "Kann mir mal jemand bei meinem einfachen Programm helfen" führen 
dann binnen kürzester Zeit zu hunderten Postings von zig verschiedenen 
Menschen und jeder für sich hat eine ganz eigene Lösungsmethode, die 
natürlich als DIE PERFEKTE UND EINZIGE LÖSUNG verkauft wird und alles 
andere ist ja sowieso völlig falsch!!!!!!

Dabei hast du allerdings wohl vergessen, dass du das als Hobby betreibst 
und ein Hobby soll a) Spass machen und b) man macht ein Hobby natürlich 
selber und lässt niemand anders sein Hobby machen.

Das einzige, was du hier in den letzten Tagen gewonnen hast ist, dass 
dein eigenes Hirn sich mit der Sache durchgehend beschäftigt hat und du 
jetzt besser durchblickst als vorher. Und genau so löst man Probleme.

Und jetzt setzt du dich mal in Ruhe hin und überlegst dir, wie man so 
ein Problem am besten angehen würde, schiebst das alte Programm zur 
Seite und machst ein neues. Diesmal ein besseres, was man auch viel 
einfacher lesen kann.

Letztendlich musst DU es verstehen, denn DU musst es warten.

von EAF (Gast)


Lesenswert?

Jan schrieb:
> und jeder für sich hat eine ganz eigene Lösungsmethode,
Natürlich!
Frage 3 Leute und du erhältst 5 Ansagen, welche sich teilweise massiv 
widersprechen, aber doch alle richtig sind.

Jan schrieb:
> die
> natürlich als DIE PERFEKTE UND EINZIGE LÖSUNG verkauft wird und alles
> andere ist ja sowieso völlig falsch!!!!!!
Falsch.

von Stefan F. (Gast)


Lesenswert?

Jan schrieb:
> Letztendlich musst DU es verstehen, denn DU musst es warten.

Macht er ja auch. Alles gut.

von Otto (Gast)


Lesenswert?

Hallo,

was bisher noch nicht geklärt wurde ist, ob es eine funktionierende 
Hardware gibt und ob das bestehende  Programm auf diese geflasht werden 
konnte. Gibt es davon einen Schaltplan? Wie sieht die 
Spannungsversorgung aus, wie sind die Eingänge beschaltet, wie werden 
die Relais und Schütze angesteuert, welche Spannungen müssen geschaltet 
werden?

Viele Grüße
otto

von EAF (Gast)


Angehängte Dateien:

Lesenswert?

Dieses ist das Flussdiagramm, welches ich verwendet habe.
https://www.mikrocontroller.net/attachment/540263/Schaltung_Verlauf.bmp
Dort heraus stammen auch die etwas kryptischen Zustandsnamen.

Es gibt ein paar Dinge, die ich wohlwollend ignoriert habe:
A: freigabeAbsaugung kommt im Flussdiagramm nicht vor, habe auch kA, was 
das sein soll.
B: Die Aktoren kenne Auf und Zu, nur die Klappe kennt oben und unten. 
KA, ob oben wirklich auf bedeutet, habe es mal angenommen
C: Die Frage mit den "Enden" blieb ungeklärt. Jetzt ist ein Ende ein 
Ende und ein Ende.
D: Einige Zustände sind doppelt. KA, wozu das gut ist. Aber da im Plan 
so, ist es auch im Programm so.

PS:
Bitte den Quellcode nicht an den Darko verraten, der muss erst bluten.

von EAF (Gast)


Lesenswert?

Otto schrieb:
> was bisher noch nicht geklärt wurde ist, ob es eine funktionierende
> Hardware gibt und ob das bestehende  Programm auf diese geflasht werden
> konnte.

Damit gibt es ganz sicher keine Probleme!
Siehe: Beitrag "Re: Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort"

von Stefan F. (Gast)


Lesenswert?

EAF schrieb:
> KlappenAutomat.ino

Ich find interessant, wie du die Zustandswechsel implementiert hast. 
Verblüffend simpel - why not?

Allerdings würde ich empfehlen, den Zuständen sprechende Namen zu geben. 
Das müsste man dann natürlich im Diagramm dann auch entsprechend 
kennzeichnen.

von EAF (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Verblüffend simpel
Ich nenne es "naiv", oder "schlicht".
Eine Sammlung von Trivialitäten. Sauber voneinander getrennt, anfassbar 
und wartbar.
Nicht gedankenlos, aber gedankenarm.

Schön, dass es dir gefällt.

Stefan ⛄ F. schrieb:
> Allerdings würde ich empfehlen, den Zuständen sprechende Namen zu geben.
> Das müsste man dann natürlich im Diagramm dann auch entsprechend
> kennzeichnen.
Natürlich!
Diese "Kreativität" gehört allerdings nicht zu den Anforderungen, muss 
darum extra abgegolten werden.

von EAF (Gast)


Lesenswert?

PS:
zB3 hat noch einen Fehler, es muss natürlich nach 
"endschalterKlappeOben" gefragt werden.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Stefan ⛄ F. schrieb:
> EAF schrieb:
>> KlappenAutomat.ino
>
> Ich find interessant, wie du die Zustandswechsel implementiert hast.
> Verblüffend simpel - why not?

Wie willst du das denn bitte sonst machen? Ein Switch und da die 
Funktionen rein und die Zustandsvariable in den Funktionen ändern? Da 
ist ein Funktionspointer doch schon irgendwie der näher liegende 
Ansatz...

von Stefan F. (Gast)


Lesenswert?

Tim T. schrieb:
> Wie willst du das denn bitte sonst machen?

Es gibt mehrere Möglichkeiten. Zwei davon sind im Artikel 
https://www.mikrocontroller.net/articles/Statemachine beschrieben. Ich 
möchte allerdings den Rahmen dieses Threads nicht mit Diskussionen um 
weitere Methoden sprengen. Dem Darko (TO) brummt der Kopf bestimmt schon 
genug.

von oldmax (Gast)


Lesenswert?

Hi
Auch wenn ich mich bei der Lösung des Problems zurück halte möchte ich 
Mal einen allgemeinen Tip loswerden. Macht aus euren Werken kein 
Geheimnis. Ich bin sicher, wäre von Anfang an klar gewesen, das es sich 
um eine Sandstrahlkabine handelt, wären viele unnütze Kommentare 
unterblieben und vielleicht auch schon ein fertiges Programm geliefert 
worden.
Auch zum Aspekt Fehlverhalten und Sicherheit ein kleiner Hinweis. Alles, 
was man sich eventuell vorstellen kann, ist möglich. Vom Einklemmen bis 
Invalidität, auch wenn's übertrieben scheint und auch Bastler sollten im 
Hinterkopf haben, das Versicherer gern die Gelegenheit nutzen, 
Verantwortung auf andere abzuwälzen, wenn sie dadurch aus einer 
Verpflichtung kommen. Auch Gerichte sind dann schon Mal schnell bei 
fahrlässiger Körperverletzung. So, genug geunkt.
Darko, dein Projekt ist jetzt nicht wirklich kompliziert, doch leider 
spreche ich nicht C und mit Assembler würde ich dich vermutlich noch 
mehr stressen.
Es gibt genug, die dir mit C helfen können und auch werden.
Lediglich den Ablauf könnte ich Mal formulieren
Grundstellung:
Gebläse aus, Verriegelung offen (hast du als Scharnier bezeichnet)
Klappe offen
Taster Start
Klappe schließt
Endschalter Klappe geschlossen
Verriegelung presst Klappe an (Zeitfunktion oder Druckschalter)
Gebläse ein (Betriebszustand)

Betriebszustand:
Taster Start
Gebläse aus (Rückmeldung Druckschalter oder Zeitfunktion)
Verriegelung lösen (Endschalter)
Klappe öffnen (Endschalter)
Grundstellung
Wenn du jetzt Mal einfach so schrittweise denkst, dann kommst du zur 
Stagemaschine
Schritt 0: Grundstellung
Taster Start Schritt 1 : Gebläse aus. Rückmeldung löst Schritt 2 aus
Usw.
Gruß oldmax

von EAF (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich
> möchte allerdings den Rahmen dieses Threads nicht mit Diskussionen um
> weitere Methoden sprengen.

Warum nicht!?

Das Thema dieses Threads ist:
> Der endliche Automat im praktischen Einsatz

Oder:
> Wie mach ichs mir?

Stefan ⛄ F. schrieb:
> Dem Darko (TO) brummt der Kopf bestimmt schon
> genug.
Das stört mich nicht.
Lass ihn doch brummen......

Es könnte übrigens die Möglichkeit bestehen, dass irgendeiner was bei 
der Diskussion lernt. Vielleicht ist es ja das, was stört.

--------------

Es gibt sicherlich ein knappes Dutzend Verfahren, wie man eine 
Ablaufsteuerung angehen kann.

In den allermeisten Fällen wird so ein Dingen deterministisch werden 
müssen. Auch ist die Anzahl Zustände, in der Regel, begrenzt/endlich.

Man muss sich die Aufgabe genau anschauen, bevor man sich für eine Linie 
entscheidet.

Stefan ⛄ F. schrieb:
> Zwei davon sind im Artikel
Die switch/case Variante schmeckt mir nicht sonderlich. Eher schon 
"computed goto". Beiden gemein ist, dass dann eine Funktion schnell mal 
eben über 25 Zeilen hat. Das macht es unübersichtlich. Zudem pervertiert 
ein switch/case Konstrukt ab einer gewissen Schwelle von einer 
Sprungtabelle zu einer wenig performanten Entscheidungskaskade.

Anfänger versuchen es häufig erstmal mit einer Kontrollfluss 
orientierten Sichtweise. Verirren sich dann in verschachtelten If 
Blöcken und komplizierten Bedingungen. Selbst wenn es irgendwann mal 
funktioniert, ist es kaum wart-/änderbar. Darko hat ein solches Beispiel 
geliefert.

Gerne gehe ich Ablaufsteuerungen aus der Datenfluss Sicht an. z.B. die 
Koppelpläne aus der SPS Welt ziehen das konsequent durch.

Dann gibt es ja auch noch die Ereignisorientierte Sichtweise. Welche 
durchaus, bei passenden Anforderungen, die beste/eleganteste Möglichkeit 
sein kann.

von Dieter (Gast)


Lesenswert?

Darko D. schrieb:
> Ich werde mich wie von Jobst und den anderen empfohlen erst mal mit den
> Zustandsautomaten auseinandersetzen müssen.

Vielleicht wären Petri-Netze einfacher für Dich. Dein Ablaufdiagramm 
geht schon weitestgehend in diese Richtung.

von EAF (Gast)


Lesenswert?

Dieter schrieb:
> einfacher für Dich

Ihm scheint verschollen zu sein.

von Jobst M. (jobstens-de)


Lesenswert?

Hat sich in seiner Sandstrahlkabine eingeschlossen und kommt nun nicht 
mehr an den Taster.
Er wollte den Taster ja nicht festhalten müssen ...
Alfred Hitchcock hätte seinen Spaß! :-D

Gruß
Jobst

von STK500-Besitzer (Gast)


Lesenswert?

Jobst M. schrieb:
> Hat sich in seiner Sandstrahlkabine eingeschlossen und kommt nun nicht
> mehr an den Taster.
> Er wollte den Taster ja nicht festhalten müssen ...

LOL

von Waidmanns Heil (Gast)


Lesenswert?

EAF schrieb:
> Ihm scheint verschollen zu sein.

Nein. Er ist mit einem Petri-Netz zum Angeln gegangen.

Dieter schrieb:
> Vielleicht wären Petri-Netze einfacher für Dich.

von Darko Dragojevic (Gast)


Lesenswert?

Nein. Ich bin da. Kann mich aber frühestens im neuen Jahr melden. Guten 
Rutsch allen zusammen! Lg Darko

von Darko Dragojevic (Gast)


Lesenswert?

Ich habe übrigens sehr viel gelernt die Tage durch euch. Das ist schon 
viel mehr wert als die Kabine. Bis in ein paar Tagen.

von Martin V. (oldmax)


Angehängte Dateien:

Lesenswert?

Hi
Hab mir mal die Mühe gemacht, es etwas bildlicher mit einer Schrittkette 
darzustellen. Die gelb markierten "Freigabe-Sicherheit"-Eingänge können 
jeweils in den Schritten anders ausfallen. Möglich sind 
Motorschutzschalter vom Gebläse, Bewegungsmelder im Gefahrenbereich oder 
Trittmatten oder einfach auch weggelassen, weil nicht benötigt.
Gruß oldmax

von Darko Dragojevic (Gast)


Lesenswert?

Hallo alle zusammen, die erste volle Woche im Jahre 2022 ist noch nicht 
vorüber, daher darf man noch frohes neues Jahr wünschen.

Um an meinem Projekt wieder ein kleines bisschen weiter zu kommen, habe 
ich mich entschieden einen deutschen,
unmissverständlichen und präzise formulierten Text zu schreiben, was das 
Programm auf dem Atmega8 verwalten muss.
Ich habe mich allerdings auch parallel mit den Automaten und anderen 
Darstellungsweisen von strukturierten Abläufen befasst.


Einleitung:
Das Ziel der ganzen Geschichte ist es, die Bedienerfreundlichkeit meiner 
selbst gebauten Sandstrahlkabine zu erhöhen.
Die Kabine ist 150cm breit und 190cm hoch. Die Kabine ist mit einer 
Frontklappe ausgestattet die ebenfalls 150cm breit ist und ca.110cm hoch 
ist.
Die Unterkante der Klappe ist ca. 80cm über dem Boden.
Die Kabine ist auch mit einer Absaugung verbunden. Diese Absaugung 
brauch insgesamt 2 Freigaben um laufen zu können.
Eine Freigabe erteilt der Bediener über einen Schalter (nicht Taster) am 
Bedienerpult und die andere Freigabe erteilt der ATmega 8.
Es macht keinen Sinn die Absaugung bei geöffneter Klappe anzuhaben.
Es soll aber möglich sein, die Kabine zu anderen Zwecken auch ohne 
Absaugung zu betreiben. Zum Beispiel irgenwas auspusten.
Am Bedienerpult befindet sich ein Taster (nicht Schalter) zum Öffnen und 
zum Schließen der Klappe.


Hauptteil:
Die Klappe wird mit einem an der Seite befindlichen pneumatischen 
Zylinder aufgefahren.
Dieser pneumatische Zylinder hat 2 Ventile. Sobald das Ventil zum 
hochfahren angesteuert wird, befüllt sich der Druckluftzylinder mit Luft 
und bewegt die Klappe
hoch. Sobald das andere Ventil betätigt wird, wird die Druckluft im 
Zylinder abgelassen und die Klappe bewegt sich durch ihr Eigengewicht 
herunter.
Man darf nur ein Ventil zur Zeit ansteuern. Beide Ventile zur gleichen 
Zeit anzusteuern macht keinen Sinn.
Die Klappe ist auch mit zwei Endlagentastern ausgestattet. Die 
Elektronik kann daher die Position der Klappe ermitteln.
Mir fallen dadurch 3 Zustände ein. Klappe oben, Klappe unten, Klappe in 
unbekannter Höhe.

Die Elektronik soll daher wie folgt vorgehen:
Die Elektronik soll nur aktiv werden wenn der Benutzer eine Änderung des 
Status der Klappe haben möchte.
Ist die Klappe ganz oben (Endschalter oben ist betätigt), soll sie 
heruntergefahren werden.
Ist die Klappe ganz unten (Endschalter unten ist betätigt), soll sie 
hochgefahren werden.
Ist die Klappe irgendwo in der Mitte soll sie runtergefahren werden.

Leider ist es notwendig, den Anpressdruck zwischen Klappe und 
Kabinenrahmen mittels einer Zuziehhilfe, die ebenfalls pneumatisch 
funktioniert zu erhöhen.
Diese Zuziehhilfe hat auch zwei Ventile. Eins für zu und eins für auf.
Im Gegensatz zur Klappe hat die Zuziehhilfe nur einen Endlagentaster nur 
für den Status auf.
Das Schließen der Zuziehhilfe dauert exakt 2,5 sekunden.

Das bedeutet das nun jedes Mal bevor die Klappe auf und zu gefahren 
werden soll, gewährleitet sein muss, dass die Zuziehhilfe den Satus 
"offen" hat.
Bei einer geschlossenen Zuziehhilfe kann die Klappe mechanisch weder 
geöffnet noch geschlossen werden.

Noch ein paar Sätze zur Absaugung.
Gedacht ist es so: Ist der Schalter der Absaugung auf ein, soll die 
Absaugung bei geschlossener Klappe auch die Freigabe des ATmega 8 
bekommen.
Ist die Klappe nicht ganz geschlossen oder ganz oben, nimmt der ATmega 8 
die Freigabe als Ausgang weg. Dann spielt es keine Rolle in welcher 
Stellung
der Schalter Absaugung ein/aus ist. Der Status des Schalters wird als 
Eingang in den ATmega 8 gespeist.
Ist die Klappe geschlossen und die Absaugung läuft, dann soll der 
ATmega8 die Freigabe Absaugung wegnehmen und 7 sekunden warten bis diese 
Austrudelt. Erst dann darf
die Klappe geöffnet werden. Ist die Klappe zu und die Absaugung ist aus 
(Schalter Absaugung steht auf aus) brauch der Bediener natürlich keine 7 
sekunden warten bis sich
die Klappe öffnet.

Als allerletztes ist nur noch der Vorgang "Schließen von Klappe ganz 
auf" und der Vorgang "Schließen aus unbekannter Höhe" zu erklären.

Schließen aus ganz oben (Endlage oben ist betätigt):

Das Ventil Klappe zu soll 1,5 sekunden lang angesteuert werden, um einen 
sehr großen Weg in relativ kurzer Zeit zurückzulegen. Nach dieser zeit 
fehlen ungefähr noch 15cm Weg.
In diesen letzten 15 cm soll der AT mega 8 folgende Ausführung machen:

500ms warten,
100ms Ventil Klappe zu ansteuern
500ms warten,
100 ms Ventil Klappe zu ansteuern etc.

solange bis die Endlage Klappe geschlossen erreicht ist.
Immer wenn diese Endlage erreicht ist, soll anschließend das Ventil 
Zuziehhilfe zumachen 3 sekunden lang angesteuert werden.
Dann soll die Freigabe Absaugung erteilt werden.

jetzt Schließen aus irgendwo in der Mitte:

500ms warten,
100ms Ventil Klappe zu ansteuern
500ms warten,
100 ms Ventil Klappe zu ansteuern etc.

solange bis die Endlage Klappe geschlossen erreicht ist.

Ich bin mir nun relativ sicher, dass das ein normal denkender Mensch 
versteht.
Anders kann ich es im Moment nicht darstellen. Wenn auch das nicht 
verstanden wird, dann muss ich nach einer ganz anderen Lösung suchen.
Vielleicht für jeden kram einen separaten Schalter....

Ich danke euch noch einmal.
LG Darko aus Bremen

von Stefan F. (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> Ich habe mich allerdings auch parallel mit den Automaten und anderen
> Darstellungsweisen von strukturierten Abläufen befasst.

Merkt man. Die neue Beschreibung der Aufgabe gefällt mir um Welten 
besser als die erste. Noch ein paar Fotos von der Verriegelung der 
Klappe und dem Bedienfeld wären gut.

von STK500-Besitzer (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Merkt man. Die neue Beschreibung der Aufgabe gefällt mir um Welten
> besser als die erste. Noch ein paar Fotos von der Verriegelung der
> Klappe und dem Bedienfeld wären gut.

Einfach mal ein Schema des ekeltrischen Aufbaus (Ventile, 
Endlagenschalter, Absaugung...) würde mehr aussagen als kubikmeterweise 
Prosa und Bilder von Frontplatten...

von Darko Dragojevic (Gast)


Lesenswert?

Das ist kein Problem. Werde ich die Tage nachreichen.
LG

von Jobst M. (jobstens-de)


Lesenswert?

Sehr schöne Beschreibung, ein paar Feinheiten fehlen mir dennoch.
Sind aber Peanuts:

Darko Dragojevic schrieb:
> Das Schließen der Zuziehhilfe dauert exakt 2,5 sekunden.

Danach soll das Ventil für die Zuziehhilfe wieder geschlossen werden 
oder darf das offen bleiben und so weiter zuziehen?


Darko Dragojevic schrieb:
> Ist die Klappe zu und die Absaugung ist aus
> (Schalter Absaugung steht auf aus) brauch der Bediener natürlich keine 7
> sekunden warten bis sich
> die Klappe öffnet.

Also die Absaugung mit dem Schalter vorher abschalten und danach sofort 
mit dem Taster die Klappe öffnen. Dann braucht man nicht 7s zu warten 
... ;-)


Darko Dragojevic schrieb:
> 500ms warten,
> 100ms Ventil Klappe zu ansteuern
> 500ms warten,
> 100 ms Ventil Klappe zu ansteuern etc.
>
> solange bis die Endlage Klappe geschlossen erreicht ist.

Und danach kann das "Klappe schließen" Ventil geöffnet bleiben?
Oder soll es weiter pulsen? (Verschleiß?)
Sonst arbeitet der Restdruck in der Klappenpneumatik ja gegen die 
Zuziehhilfe.


Gruß
Jobst

von Martin V. (oldmax)


Lesenswert?

Hi
Ja, die letzte Beschreibung war deutlich, doch was will der TO? Du habe 
beschrieben, in Worten und bildlich, wie er zur Lösung kommt. Wenn das 
Verständnis fehlt, diese Anleitung zur Denkweise für den Ablauf, 
sorry,da können wir uns die Finger wund schreiben. Wo st das Problem, 
die Ablaufkette nur zur Bewegung der Klappen zu nutzen und die 
Ventilatoren mit der entsprechenden Verriegelung und Enschaltbedngung 
separat umzusetzen. Wenn er ein fertiges Programm möchte, dann muss auch 
ein Schaltplan her,oder sollen wir solange raten, bis die richtige 
Konfiguration gefunden ist? Mal ehrlich, für diese Aufgabe hätten auch 
max. 20 Beiträge gereicht.
Gruß oldmax

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Das hier ist vom AT Mega 8 die Belegung (wenn das so geht) hoffe ich:

Für Programmierung via ISP solltest Du die Pins 17 bis 19 frei räumen.

Gruß
Jobst

von Darko Dragojevic (Gast)


Lesenswert?

Hallo Jobst. Sehr interessant, dass da dennoch Fragen offen bleiben. 
Gerne beantworte ich die natürlich.

Der Schließvorgang dauert genau 2,5 Sekunden. Nach einer 3 sekündigen 
Ansteuerung kann davon ausgegangen werden, dass der pneumatische 
Zylinder drucklos ist. Danach soll das Ventil "Zuziehhilfe schließen" 
bitte nicht mehr angesteuert werden.

Zum Thema Absaugung.
Ja rein theoretisch hast du Recht, wenn man die Absaugung manuell 
ausschaltet und schnell kurz danach den Taster "Klappe auf" betätigt, 
würde die Klappe aufgehen.
Darin sehe ich 2 Probleme. Erstens ist die Absaugung schon bei 
geschlossener Klappe ohrenbetäubend laut, ich möchte gar nicht wissen 
wie laut es bei geöffneter Klappe ist und das zweite Problem ist, dass 
dann die Pneumatik für die Klappe auf gegen das Vakuum der Absaugung 
kämpft. Man müsste wenn man es industriell nach ECE und DIN und was es 
da alles gibt, einen Timer zählen lassen der dann auch die Zeit nach der 
Betätigung des Schalters zählt. Das brauch ich hier aber nicht. Aber 
danke für die Anregung.
Ich werde das aber nicht so machen, dass ich dann ganz schnell den 
Klappe auf Taster drücke.

Die letzte Frage beantworte ich natürlich auch gerne.
Das Ventil "Klappe zu" brauch nachdem der Entlagenschalter erreicht ist 
nicht mehr angesteuert werden.
Optimalerweise kann man ja dem atmega 8 sagen, dass wenn die Endlage 
unten erreicht ist, dass danach noch eine dauerhafte Ansteuerung des 
Ventils für 0,5 Sekunden durchgeführt werden soll, um auch diesen 
pneumatischen Zylinder drucklos zu machen. Ich bevorzuge es persönlich, 
dass nach diesen ganzen hoch und runter Fahrereien alle Ventile 
geschlossen bleiben.

von Darko Dragojevic (Gast)


Lesenswert?

Das ist sehr schlecht, wenn ich die Pins freiräumen soll. Ich habe mich 
auch beim Löten gewundert, dass diese Ports doppelt belegt sind.
Ich weiß nicht ob via ISP programmiere. Ich habe ein programm das nennt 
sich ich glaube AVR demo. Nach 30 min. schließt es sich und dann muss 
ich das neu öffnen.

Und dann hab ich so ein kleines Tool über usb verbunden. Ich hoffe das 
ist nicht ISP...

von EAF (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> Ich hoffe das
> ist nicht ISP...

Ist es.

von Darko Dragojevic (Gast)


Lesenswert?

Martin du hast Recht mit den 20 Beiträgen. Es war mein Fehler, dass ich 
nicht in der Lage war, deutlich zu machen, was ich möchte. Das ist mir 
nur über Umwege gelungen, die vielleicht auch nicht optimal waren. Nun 
kann man aber bis auf minimale Feinschliff-Arbeiten erkennen was ich 
möchte und was letztenendes das Programm können soll. Das ist ja schon 
mal der erste Schritt, dass mein Gegenüber erst mal weiß was ich möchte.
LG

von Darko D. (darlo)


Lesenswert?

Das ist ja doof, dass ich ISP benutze. Dann muss ich es umlöten.
pin 17 kommt auf pin 14
pin 18 kommt auf pin 10
und pin 19 kommt auf 9

Ich hoffe das geht so.

von Joachim B. (jar)


Lesenswert?

Darko Dragojevic schrieb:
> Es war mein Fehler, dass ich
> nicht in der Lage war, deutlich zu machen, was ich möchte.

aber das macht man sich VORHER schlau und fährt nicht in irgendeine 
Himmelsrichtung los.

Man kann andere µC nutzen, man kann andere Programmieroberflächen 
wählen, z.B. Arduino und m328p oder AVR Studio 6 mit gcc welche beide 
nutzen.

Man kann ISP nehmen oder und dem AVR einen Bootloader aufspielen und 
dann über Rx & Tx programmieren.

Wenn der Weg nicht klar ist, dann lohnt es nicht zu starten!
Ich fahre doch mit den Auto nicht Richtung Norden wenn ich nach Italien 
will.
(vorausgesetzt man startet nicht in der Türkei)

: Bearbeitet durch User
von EAF (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> Das ist ja schon
> mal der erste Schritt, dass mein Gegenüber erst mal weiß was ich möchte.

Dann hätte ich doch auch mal gewusst, was dir an meinem Vorschlag nicht 
gefällt?
Sind es die Kosten?

Darko D. schrieb:
> Das ist ja doof, dass ich ISP benutze.
Ja!
Zudem hältst du geheim, welche Adapter du da nutzt.
Damit ist es nicht ganz klar.
Könnte ja auch ein Bootloader drauf sein, dann brauchst du kein ISP.
Es geht als auch ohne großen Umbau.

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Das ist ja doof, dass ich ISP benutze.

Nö, gar nicht!

Man kann auch etwas an die Pins anschließen, aber sie dürfen dann nicht 
stören.
Du benutzt alle als Eingänge, das wäre okay.
Und wenn alle Schalter einfach nur gegen Masse schließen, kann das 
klappen.
Bei dem Taster für die Klappe ist das noch halbwegs einfach zu lösen: 
Einfach während der programmierung nicht drauf drücken. Aber wie ist das 
bei den Endlageschaltern für "Zuziehhilfe offen" und "Klappe unten"?

Die Klappe dürfte nicht unten sein, die Zuziehhilfe müsste aber 
geschlossen sein, um den passenden Zustand zu haben. Die Kombi ist aber 
ja problematisch zu erreichen, wenn das Ding schon läuft.
Wenn Du den Prozessor zum programmieren abziehst (Steckverbindung etc.) 
kann es aber so bleiben, wie es ist.

Gruß
Jobst

von Jobst M. (jobstens-de)


Lesenswert?

Joachim B. schrieb:
> dem AVR einen Bootloader aufspielen und
> dann über Rx & Tx programmieren.

Sollte man bei dem mega8 ohne Quarz vermeiden!

Gruß
Jobst

von oldmax (Gast)


Angehängte Dateien:

Lesenswert?

Hi
Na klar, wir wissen jetzt genau, wie du deine IO organisiert hast. Also, 
wenn du kein Malprogramm für Schaltungen hast, es geht auch mit Paint. 
Ein Beispiel hab ich mal angehängt, wie so was in etwa aussehen kann.
Der Atmega8 hat 23 Io. Wenn du auf einen Quarz verzichtest und auch 
keine serielle Schnittstelle brauchst, bleibt nach Abzug von Reset, SCK, 
MISO und MOSI noch 19 nutzbare IO-Pins. Für deine Anwendung reicht die 
Genauigkeit der internen Taktquelle und 1MHz ist auch schnell genug, um 
die paar Befehle zu bearbeiten.
Nach der Skizze zur Schaltung kannst du die IO definieren und 
entsprechend im Programm zuweisen. Damit solltest du anfangen, bevor du 
tausendmal den Lötkolben in die Hand nimmst und immer wieder umfrikeln 
mußt.
Dann wird es dir auch wesentlich leichter fallen, ein Programm zu 
fertigen. Und dann noch ein Tip
Trenne Eingabe, Verarbeiten und Ausgabe.(EVA-Prinzip)
Auch für so ein kleines Programm lohnt es sich, eine Struktur zu haben, 
die später bei Fehlersuche oder Programmanpassung die Arbeit 
erleichtert.
So kannst du einen Variablenbereich Befehlstastern zuordnen, einen 
anderen für Rückmeldungen. Einen weiteren für Ausgaben, die du am Schluß 
der Programmschleife den Ausgabeports zuweist.
Ich bin wirklich mal gespannt, wie viele Beiträge noch erforderlich 
sind, bis du deinen Controller erfolgreich zum Laufen bekommst. Ich hab 
da so meine Zweifel.
Gruß oldmax

von EAF (Gast)


Lesenswert?

Jobst M. schrieb:
> Sollte man bei dem mega8 ohne Quarz vermeiden!
50Cent?
Oder 3 Ocken für einen Nano Klon...




oldmax schrieb:
> Ich bin wirklich mal gespannt, wie viele Beiträge noch erforderlich
> sind, bis du deinen Controller erfolgreich zum Laufen bekommst. Ich hab
> da so meine Zweifel.

Deine Zweifel sind unsinnig.
Die 20min sind schon um.

von Otto (Gast)


Lesenswert?

Hallo,
sowohl die Zeichnung der Schrittkette als auch des Schaltplans von 
Oldman solltest du berücksichtigen.
Damit es betriebssicher ist, sollten für die Eingänge (Tasten + 
Endschalter) keine Rechnerpins ungeschützt nach außen geführt werden. 
Zum Einen fangen diese Störungen ein, zum Anderen ist bei Kurzschluss zu 
einer höheren Spannung sofort der Rechner defekt. Hier solltest du 
Optokoppler einsetzen. Auch schon deshalb, damit ein ausreichender Strom 
über die Endschalter fließt.
Der Not-Aus-Taster muss direkt auf die Hardware wirken.

Gruß Otto

von Jobst M. (jobstens-de)


Lesenswert?

EAF schrieb:
> Jobst M. schrieb:
>> Sollte man bei dem mega8 ohne Quarz vermeiden!
> 50Cent?
> Oder 3 Ocken für einen Nano Klon...

Wozu?
Um anstelle der Firmware dort einen Bootloader einzuspielen, damit man 
die Firmware per UART dort rein schieben kann?
Im Zweifelsfall einmalig.
Außerdem ist ja alles was er braucht vorhanden. Wieso sollte er nun noch 
weitere Teile ordern? Egal was es kostet.

> oldmax schrieb:
>> Ich bin wirklich mal gespannt, wie viele Beiträge noch erforderlich
>> sind, bis du deinen Controller erfolgreich zum Laufen bekommst. Ich hab
>> da so meine Zweifel.
>
> Deine Zweifel sind unsinnig.
> Die 20min sind schon um.

Habt Ihr keine Zeit, oder was?
Das ist völlig egal, er hat es eingesehen und sich dafür auch 
entschuldigt.

Gruß
Jobst

von Hannes (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> nicht in der Lage war, deutlich zu machen, was ich möchte. Das ist mir
> nur über Umwege gelungen, die vielleicht auch nicht optimal waren. Nun
> kann man aber bis auf minimale Feinschliff-Arbeiten erkennen was ich
> möchte und was letztenendes das Programm können soll. Das ist ja schon
> mal der erste Schritt, dass mein Gegenüber erst mal weiß was ich möchte.

Drako,

ich finde es absolut bemerkenswert, was Du Dir in den letzten 2 Wochen 
selbst beigebracht hast. Hut ab!!!

Mit Deinen neu erlernten Fähigkeiten steckst Du bestimmt die Hälfte der 
hier Mit-Diskutierenden freiweg in die Hosentasche.

von Darko D. (darlo)


Lesenswert?

Hallo zusammen.
Darko ist mein Name :-)
Ich finde selbst, dass ich gelernt habe in den letzten Wochen.
Das jemand den Hut vor mir zieht, kann ich nicht nachvollziehen.
Ich weiß auch nicht ob das Ironie war.

Ich habe die Situation von Anfang an falsch eingeschätzt und im laufe 
des Chattes hat sich das dann so ergeben. Und das tut mir leid! Heute 
Abend lade ich ein paar Bilder hoch von meinem Equipment hoch. Ich weiß 
nicht wie ich dieses Modul benennen soll.
Übrigens kann ich beim Programmieren einfach die Stecker von den 
Eingängen und Ausgängen abziehen. Das ist bei mir alles gesteckt. Auch 
davon lade ich ein paar Bilder hoch. Und dann kommen wir lansam ins 
Finale. Hurra!

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Das jemand den Hut vor mir zieht, kann ich nicht nachvollziehen.
> Ich weiß auch nicht ob das Ironie war.

Jetzt nimm das Lob doch an! Du bist echt anstrengend.

von oldmax (Gast)


Angehängte Dateien:

Lesenswert?

Hi
Ich denke, die meisten wird es freuen, wenn du hier etwas gelernt hast 
und du dein Projekt erfolgreich zu Ende bringst. Im Anhang hab ich dir 
noch eine kleine Hilfe skizziert. Ein Schaltbild hilft nicht nur die 
Gedanken zu bündeln, sondern zeigt dir auch oft, welche Komponenten du 
einsetzen mußt. Der Hinweis auf Optokoppler ist nicht ganz unbegründet, 
denn es besteht die Möglichkeit einer statischen Aufladung. Nicht nur 
die Maschine, auch der Bediener kann ein Ladungsträger sein, wie wohl 
sicherlich schon jeder einmal zu spüren bekommen hat. Elektronik ist da 
manchmal ein wenig empfindlich und reagiert zimperlich, wie eine kranke 
Mimose.
Wenn dir mein Vorschlag mit dem Ablaufplan zu viel Automatismus bietet, 
nun, es liegt an dir, den Betriebszustand mit einer LED zu signalisieren 
und dann die Freigabe zur manuellen Zuschaltung der Lüfter zu geben. 
Setz dafür einfach ein Relais ein, dessen Schließer die Steuerspannung 
zur Einschaltung der Lüfterschütze durchschaltet.
Da hier immer wieder Erklärungen von Nöten sind, weil ich den Eindruck 
habe, du siehst die Vorschläge als fertige Endlösung und nicht als 
Anstoß zur Umsetzung, bin ich eben nicht davon überzeugt, das du 
verstanden hast, wie man einen Controller dazu bringt, diese Aufgabe 
ganz oder teilweise zu erledigen.
Das beginnt mit der Parametrierung der Ein-und Ausgabe. Der Einrichtung 
eines Timers. Der Entprellung von Kontakten, egal, ob diese von Tastern, 
Endschaltern oder Rückmeldekontakte von Leistungsschützen sind. Auch 
kannst du nicht einfach Ausgabepins mit einem Ventil oder  Relais 
beschalten. Da braucht es Treiber, die Spannung und Strom für diese 
Bauteile liefern können. Ich hab dir mal auf die schnelle mit Paint eine 
Skizze angefertigt, die du nach deinen Vorgaben ändern kannst.
Übrigends, ja, ein Not-Aus schaltet die Leistung weg und damit die 
gesamte Maschine aus. Nicht immer ist das ideal, z.b. wenn weitere 
Energien die Druckluft oder Schwerkraft unkontrolliert gefährlich wird. 
Dann kann mit einem Not-Halt die Maschine in einem gesicherten Zustand 
gehalten werden. Dabei bleibt die Energie weiter zugeschalten, Bewegung 
aber blockiert.
Gruß oldmax

von Stefan F. (Gast)


Lesenswert?

oldmax schrieb:
> Ich hab dir mal auf die schnelle mit Paint eine
> Skizze angefertigt, die du nach deinen Vorgaben ändern kannst.

Ich glaube du hast das falsche Bild angehängt. Dieses Bild hatten wir 
gestern in einem ganz anderen Zusammenhang.

von oldmax (Gast)


Lesenswert?

Jobst M. schrieb:
>> oldmax schrieb:
>>> Ich bin wirklich mal gespannt, wie viele Beiträge noch erforderlich
>>> sind, bis du deinen Controller erfolgreich zum Laufen bekommst. Ich hab
>>> da so meine Zweifel.
>>
>> Deine Zweifel sind unsinnig.
>> Die 20min sind schon um.
>
> Habt Ihr keine Zeit, oder was?
> Das ist völlig egal, er hat es eingesehen und sich dafür auch
> entschuldigt.
>
> Gruß
> Jobst

Hi
Sorry, muß darauf kurz eingehen
Wieso schreibst du da in der Mehrzahl? Mir ist es ziemlich egal, wieviel 
Zeit er noch braucht und wie viele Beiträge noch geschrieben werden 
müssen. Die 20 min. Bemerkung aus dem ersten Post hab ich auch nur 
belächelt. Klar, wenn ein Bauplan existiert und die Funktion der 
Maschine von Anfang an klar gewesen wäre, dann sind die 20 Minuten gar 
nicht mal so abwegig.
Aber um helfen zu können, muß dem TO auch klar sein, mit was er hier zu 
tun hat. Das dieser Baustein eben nicht mal einfach so funktioniert. Und 
ich hab den Eindruck, hier fehlen einfach gewisse Grundkenntnisse. Die 
muß man sich aneignen, eben lernen. Manche brauchen dafür Jahre, andere 
sind etwas schneller, doch niemand wird ohne Grundkenntnisse mit ein 
paar Posts einen Controller programmieren und so beschalten, das eine 
Maschine gesteuert wird. Auch nicht mit so einem banalen Programm. Und 
schon gar nicht, wenn er Probleme hat, eine wie von mir vorgegebene 
Schrittkette für seine Vorgaben abzuändern. Ich würd mich freuen, wenn 
ich mich irre.
Gruß oldmax

von oldmax (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> oldmax schrieb:
>> Ich hab dir mal auf die schnelle mit Paint eine
>> Skizze angefertigt, die du nach deinen Vorgaben ändern kannst.
>
> Ich glaube du hast das falsche Bild angehängt. Dieses Bild hatten wir
> gestern in einem ganz anderen Zusammenhang.

Hi
Ok, nun ja, in der Tat hab ich es gestern schon mal geschickt. Und es 
sollte auch hier landen. Tat es aber nicht und ich dachte, dann ist der 
Beitrag mal wieder im Nirwana verschwunden. Nun weiß ich nicht, in 
welcher Diskussion es gelandet ist. Ein möglicher Grund, ich schreib zur 
Zeit auf einem Ur-Alt-Net_Book und diese sch.. empfindliche Fläche zum 
Positionieren von Textcursor etc. fummelt oft dazwischen. Also, das Bild 
sollte gestern schon hier landen. Da war auch ein Text dazu. Sorry, wenn 
das Verwirrung gestiftet haben sollte.
Gruß oldmax

von Jobst M. (jobstens-de)


Lesenswert?

oldmax schrieb:
> Ich bin wirklich mal gespannt, wie viele Beiträge noch erforderlich
> sind, bis du deinen Controller erfolgreich zum Laufen bekommst.

oldmax schrieb:
> Mir ist es ziemlich egal, wieviel
> Zeit er noch braucht und wie viele Beiträge noch geschrieben werden
> müssen.

oldmax schrieb:
> Sorry, muß darauf kurz eingehen

Überflüssiger Krempel, der Threads nur unnötig in die Länge zieht.

Gruß
Jobst

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Bei dieser OK-Beschaltung habe ich gewisse Bedenken.

von Martin V. (oldmax)


Lesenswert?

Sorry, ja, mein Fehler. Ach und ja Jobst, deine Beiträge sind 
durchgängig nützlich...
Gruß oldmax

von Otto (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mir erlaubt, den Schaltplan von Oldmax zu überarbeiten.
Ein Industrieprojekt unterscheidet sich von einem Bastelprojekt in 
folgenden Punkten:

1. Es sollte stör- und betriebsicher sein
2. Die Inbetriebnahme sollte durch Visualisierung erleichtert werden
3. Es sollte wartungsfreundlich sein
4. Es sollte zuverlässig sein

zu 1) Optokoppler an den Eingängen werden zur Vermeidung von Störungen 
verscheidenster Ursache benötigt:
a) ESD (elektrostatische Entladung)
b) kapazitive und induktive Einkopplungen (z. B. durch das Schalten der 
Ventile und Motoren) in die Steuerleitungen
c) Falschanschluß

Ein zentraler Punkt ist der Not-Aus. Dieser muß über ein 
Sicherheitsschaltgerätund ggf. sogar redundant erfolgen.
Hier gibt es zwingende Vorschriften! Da kannst du im Fall des Falles 
auch nicht herausreden, dass due dies nicht
gewusst hast.....

zu 2) Inbetriebnahmeerleichterung durch Visualisierung:
a) Eingänge
In Reihe zu den Dioden der Optokoppler sollten LED vorgesehen werden, um 
den Zustand aller Schalter zu
visualisieren. Das mag unnötig erscheinen aber in der Praxis ist der 
Zustand der Endschalter wahrscheinlich nicht sichtbar.
b) Ausgänge:
Parallel zu den Spulen der Relais sollten LED vorgesehen werden, um den 
Zustand der Relais zu visualisieren.

zu 3) Die Wartung wird aufgrund der Visualisierung ebenfalls 
vereichfacht:
a) In der Praxis verschleissen zum Beispiel Endschalter - dies kann 
mittels der LED schnell erkannt werden.

zu 4) Für zuverlässigen Betrieb ist ein robuster Aufbau die wichtigste 
Voraussetzung:
a) stabiles wasser- und schmutzdichtes Gehäuse für die Steuerung
b) Geeignete Kabeleinführung (zumindest Kunststoffverschraubungen)
c) Auswahl mechanisch robuster und zuverlässiger Taster und Endschalter

Bisher ist auch noch offen, welche und wie viele Steuerspannungen 
verwendet werden:
a) Wie wird die Controllerversorgung erzeugt?
b) Relais welche Betriebsspannung (5V, 12V, 24V)?
c) Magnetventile: welche Betriebsspannung (12V, 24V, 230V) und sind 
Entstörmaßnahmen vorhanden?
d) Schütze welche Betriebsspannung (24V, 230V) und sind Entstörmaßnahmen 
vorhanden?
Hier gibt es sicher auch noch Baustellen.....

Viele Grüße
Otto

von Darko D. (darlo)



Lesenswert?

Hallo. Ich schreibe eben vom Handy. Die Steuerspannung ist 24volt DC. 
Der atmega 8 wird mit einem 7805 Festspannungsregler bestromt. Hier noch 
die Bilder die offen waren. Lg Darko

von Hugo H. (hugo_hu)


Lesenswert?

Darko D. schrieb:
> und 5 Ausgänge digital.

Ja -sieht man ganz deutlich an Deinen Bildern.

von Darko D. (darlo)


Lesenswert?

Alle 5 Eingänge und alle 5 Ausgänge werden mit LED s sichtbar gemacht. 
Auch die Spannungen 12volt und 24 Volt und 5 Volt per LED sichtbar 
gemacht. Das Symbol auf dem Desktop ist das Programm. Ich werde jetzt 
die Tage mich mit den Grundlagen der Programmierung noch einmal 
auseinander setzen, im Studium hatten wir damals glücklicherweise noch 
ein bisschen gemacht.

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Hier noch
> die Bilder die offen waren.

=8-O

... Äh ... Schaltplan!?

Gruß
Jobst

von Darko D. (darlo)


Lesenswert?

Hallo Jobst. Einen Schaltplan habe ich nicht. Ich habe es so zusammen 
gelötet. Spannungsversorgung am atmega 8 und die Verbindung zum 
Programmieranschluss und die 10 ein und Ausgänge. Mehr nicht.

von EAF (Gast)


Lesenswert?

Abblockkondensatoren?
Die Regler Schaltung entspricht dessen Datenblatt?
Hat der ATMega8 nicht 2 (A)VCC und GND Pins?

von Darko D. (darlo)


Lesenswert?

Ne nur einmal 5 Volt plus und 1 Mal minus links am atmega etwa in der 
Mitte

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> Ne nur einmal 5 Volt plus und 1 Mal minus links am atmega etwa in der
> Mitte

Aua!

http://www.dieelektronikerseite.de/Pics/uC-Ecke/Lections/Der%20ATMega8%20-%20Ein%20intelligenter%20Kaefer%20S01.GIF

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Hallo Jobst. Einen Schaltplan habe ich nicht. Ich habe es so zusammen
> gelötet. Spannungsversorgung am atmega 8 und die Verbindung zum
> Programmieranschluss und die 10 ein und Ausgänge. Mehr nicht.

Schaltplan!
Machen. Irgendwie. Installier Dir z.B. KiCad.
Bei der Programmierung oder bei Problemen suchst Du Dir sonst einen 
Wolf.

Gruß
Jobst

von Hannes (Gast)


Lesenswert?

Darko D. schrieb:
> Darko ist mein Name :-)
> Ich finde selbst, dass ich gelernt habe in den letzten Wochen.
> Das jemand den Hut vor mir zieht, kann ich nicht nachvollziehen.
> Ich weiß auch nicht ob das Ironie war.

Sorry Darko, für den Buchstabendreher.

Ich kann Dir versichern, in meinem Post war nicht die Spur von Irone 
versteckt - und ich finde es absolut bemerkenswert, wie du dich in die 
Sache reingeknient, und was Du dabei gelernt hast.

Man braucht kein KiCAD (obwohl es schön ist, wenn man es kann). Das 
lenkt für den Anfang nur ab. Ich male meine Schaltpläne seit einem 
halben Jahrhundert mit Bleistift auf Papier, oft ohne Lineal und 
Schablone - und das war immer gut genug.

Darko D. schrieb:
> Ich werde jetzt
> die Tage mich mit den Grundlagen der Programmierung noch einmal
> auseinander setzen, im Studium hatten wir damals glücklicherweise noch
> ein bisschen gemacht.

Mein Tipp: Mach nicht den gleichen Fehler wie zu Beginn, verzettle dich 
nicht (wie schon mal) in Bitfummelei sondern lerne zu abstrahieren.

Kein Mensch merkt sich, welcher Schalter, welche LED an welchem Pin 
hängt. Vielmehr musst Du Signale benennen, mit prägnanten Namen belegen 
- ohne einen Roman zu verfassen.

SW1 und SW2 sind unpassende, auch PINB und PINB5 sind keine guten Namen.

"Zuziehhilfe_offen" und "Klappe_unten" sind schon nicht mal ganz 
schlecht - obwohl es immer noch besser geht. Man sollte sich nicht 
überlegen müssen, ob "Klappe_unten" meint, dass die Klappe nun "offen" 
oder "zu" ist.

Wähle diese Namen mit Bedacht, bevor du anfängst mit Programmieren - 
beim Programmieren hast du dazu keinen Nerv mehr. Verwende diese Namen 
durchgängig, in deiner Mechanik (z.B. Endschalter Zuziehhilfe), in 
deiner Beschreibung, im Schaltplan als Signalnamen (s.o.), bei Anzeigen 
und als Variablennamen ebenso.

Ich habs immer so gehalten, dass ich 1=H=wahr=aktiv definiert hatte. 
Wenn ich ein Signal invertieren musste, kam ein N_ davor: Aus 
"Klappe_unten" wurde dann das inverse N_Klappe_unten (steht für 
NICHT_Klappe_unten).


Im Programm-Header schreibt man dann z.B. sowas wie:

  #define Klappe_offen B3
  #define Zuziehhilfe_offen ....

und vergisst danach B3 und ... sofort wieder.

Anm.: Manche verwenden hier andere Sprachkonstrukte und erklären Dir 
sicher auch das Wie und Warum ...

von Jobst M. (jobstens-de)


Lesenswert?

Hannes schrieb:
> Ich male meine Schaltpläne seit einem
> halben Jahrhundert mit Bleistift auf Papier, oft ohne Lineal und
> Schablone - und das war immer gut genug.

Die Vorteile, wenn man es nicht auf Papier macht:

- Es lässt sich anschließend noch was verschieben.
- Copy-Paste!
- Man muss den Plan nicht einscannen, um ihn ins Forum zu bekommen.

Mit einem spezialisiertem Tool wird es außerdem noch einfacher, als z.B. 
mit Pain(t), da man fertige Symbole benutzt und auch das ziehen einer 
Leitung einfacher ist.

Viel wichtiger finde ich allerdings, dass einer gemacht wird. Egal wie.

Gruß
Jobst

von Stefan F. (Gast)


Lesenswert?

Jobst M. schrieb:
> Viel wichtiger finde ich allerdings, dass einer gemacht wird. Egal wie.

Ja, finde ich auch.

Auf der Platine fehlen Kondensatoren, sie wird so wahrscheinlich nicht 
zuverlässig funktionieren. Die Leitungsführung insbesondere von GND 
sollte man auch mal überprüfen.

von Otto (Gast)


Lesenswert?

Hallo Darko,

versorgst du den 7805 mit 24V? Wie hoch ist die Stromaufnahme?

Was schaltest du mit den MJ10012? Die Ventile? Low-Side? Hast du 
Freilaufdioden oder eine Entstörbeschaltung? Das Anlöten am TO3-Gehäuse 
ist unzuverlässig.

Viele Grüße Otto

von Hannes (Gast)


Lesenswert?

Ich zitiere mal nichts, weil ihr habt alle Recht - irgendwie.

Darkos Fotos vermitteln mir den Eindruck, dass das alles mit sehr viel 
Liebe gemacht ist. Sein Verhalten hier ist vorbildlich - hat er doch 
noch nie, auch nicht auf die allerdümmsten Mails, mit Aggressionen 
reagiert. Bitte behandelt ihn daher auch mit Respekt.

Ich wollte mich eigentlich nicht zur Komponentenauswahl äußern (SPS ist 
ja wohl durch - oder?) - machs nun aber trotzdem - indem ich das Unwort 
„Arduino“ in den Ring werfe. Wohl wissentlich, dass jetzt gleich die 
Steine fliegen und ich womöglich einen Shit-Storm auslöse ...

Für mich sind die Dinger einfach nur bequem und nehmen Neulinge eine 
ganze Menge Arbeit ab. Arduinos haben z.B. den Programmieradapter an 
Bord, kommen mit einem brauchbaren Versorgungskonzept (incl. 
Abblock-Cs), haben eine rudimentären Debug-Schnittstelle (Konsole) 
implementiert, jeder Trottel (also auch ich) kann ein LCD anschließen, 
es gibt für‘n schmalen Taler „shields“ (z.B. Relaisplatinen), und und 
und ...

Und noch schlechter ist die IDE auch nicht...

Durch die vielen Beispiel-Programme (sketch) und 100-te von Tutorials, 
sehr gute Dokumentation (auch Schadbilder und Platinen-Layouts) bekommt 
man einen schnellen, fast spielerischen Zugang zur verbauten Technik, 
Arduino ist dabei aber weit entfernt, nur ein Spielzeug zu sein.

Man schaue sich einfach mal auf https://www.arduino.cc um.

Dort kann man auch Hardware kaufen - muss es aber nicht. Arduino wird 
LEGAL nachgebaut und ist dann trotzdem kein China-Schrott ...

Ich mag den Arduino UNO R3 (mit gesockeltem 328p DIL). Preis hat leider 
ziemlich angezogen ...

Egal wie gut oder schlecht die Plattform ist: Macht was draus!
Und ja: Es gibt Besseres, wird es immer geben. Aber ich fahre auch nicht 
mit'm Rolls zum Brötchen-Holen ...

Um Arduino zu verstehen, lohnt ein kurzer Ausflug in die Geschichte der 
Plattform. https://de.wikipedia.org/wiki/Arduino_(Plattform)#Geschichte 
bietet eine kurze Zusammenfassung („Rechtsstreit“ mal außen vor), 
https://arduinohistory.github.io/de.html dann die (eine?) Langform.

von Jobst M. (jobstens-de)


Lesenswert?

Stefan ⛄ F. schrieb:
> Die Leitungsführung insbesondere von GND
> sollte man auch mal überprüfen.

Die Antwort darauf kann uns aber nur ein Bild der Platinenunterseite 
geben.

Gruß
Jobst

von Joachim B. (jar)


Lesenswert?

Jobst M. schrieb:
> Die Antwort darauf kann uns aber nur ein Bild der Platinenunterseite
> geben

Stefan sieht das so!

von Jobst M. (jobstens-de)


Lesenswert?

Hannes schrieb:
> Schadbilder

Ja, das denke ich bei den knuddeligen Arduinos auch immer ....

Das was er dort schon aufgebaut hat, wird er frühestens dann abreißen, 
wenn sicher ist, dass damit auch nach Überarbeitung keine sinnvolle 
Funktion hinzubekommen ist.
Und das würde ich genau so machen.

Ich denke, dass man auf diesem Weg mehr lernt als wenn man fertige 
Shields benutzt. Deshalb befürworte ich ihn auch.


Gruß
Jobst

: Bearbeitet durch User
von Darko D. (darlo)


Lesenswert?

Hallo alle zusammen. Wie hoch die Stromaufnahme ist weiß ich nicht. Ein 
Ventil hat 5 Watt. Ich meine es werden maximal 2 Ventile gleichzeitig 
geschaltet. Das bedeutet 10 Watt und plus der Strom vom Atmega 8. Hannes 
vielen Dank für die lieben Worte. Hier in solchen Foren muss man auch 
mit allem rechnen.
Ich möchte auch anmerken, dass ich in etwa knapp 10 Anwendungen bisher 
vom Atmega 8 hatte. Einer davon auch in meinem Auto. Alles funktioniert 
bis heute tadellos. Auch das hier werde ich irgendwie hinbekommen. In 
der Ruhe liegt die Kraft. Und vielleicht kommt ja doch irgendwann einer 
vorbei und macht mir das vorher fertig.lg

von Darko D. (darlo)


Lesenswert?

Otto, ja die mj10012 Schalten die Ventile. Funktioniert einwandfrei. 
Solange es funktioniert lasse ich es so. Es ist so. Der 7812 wird von 
der 24volt Spannung versorgt und der 7805 wird von der 12 Volt Spannung 
versorgt.

von Darko D. (darlo)


Lesenswert?

Ach noch was habe ich vergessen zu schreiben. Alle Ausgänge werden mit 
einem 10 megaohm Wiederstand mit Masse verbunden.
Ich werde in den nächsten Tagen das umsetzen was ihr mir rät. LG

von Hannes (Gast)


Lesenswert?

Jobst M. schrieb:
> Hannes schrieb:
>> Schadbilder
>
> Ja, das denke ich bei den knuddeligen Arduinos auch immer ....

Ooops - Freud'scher Verschreibsler?
Wäre durchaus möglich, bei meinem angejahrten Bio-Flachrechner ...

Trotzdem stehe ich voll und ganz hinter den aufgezählten Vorteilen. Bei 
solch schmalen Investitionskosten, monetär <10 €, geht Darko annähernd 
kein Risiko ein, wenn er sich so ein Knuddelding mal genauer anschaut.

Sei es, um damit zwanglos rumzuspielen oder sich im hardwarenahen 
Programmieren zu üben - zum Beispiel in einer Testumgebung, bestehend 
aus einem Stück Sperrholz mit Schalterchen und Lämpchen - und Schildchen 
wie "Klappe" oder "Zuziehhilfe" oder so was ...

Und sollte er dann den Entschluss fassen, seine Lochraster-Platine einem 
Redesign zu unterziehen und dort seine Neuerwerbung als Zentralgehirn 
rein zu spaxen - ich denke, da wäre ihm hier niemand wirklich böse. 
<wink>

von Stefan F. (Gast)


Lesenswert?

Jobst M. schrieb:
>> Die Leitungsführung insbesondere von GND
>> sollte man auch mal überprüfen.

> Die Antwort darauf kann uns aber nur ein Bild der Platinenunterseite
> geben.

Ja, deswegen habe ich das geschrieben, anstatt zu überprüfen.

Joachim B. schrieb:
> Stefan sieht das so!

Nein

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> Alle Ausgänge werden mit
> einem 10 megaohm Wiederstand mit Masse verbunden.

Das macht Sinn?

von Darko (Gast)


Lesenswert?

Hallo alle zusammen noch einmal.
Ich bin wieder back.
Mittlerweile stagniert das ganze irgendwie ein bisschen. Die komplette 
Hardware funktioniert einwandfrei! Ich muss nur die ganzen Ausgänge mit 
einem Kabel betätigen (5V), also genau das was das Programm machen soll. 
Über ein neues Design der Platine oder des Aufbaus kann man sich gerne 
streiten. Mit Sicherheit ist es nicht schick, funktioniert aber und hat 
die letzten Anwendungen auch durchgehend funktioniert.
Ich würde vorschlagen ich fange einfach mal mit dem Programm an und ihr 
helft mir dann weiter?
Weil programmtechnisch ist ja jetzt quasi fast gar nichts passiert...
LG Darko

von Stefan F. (Gast)


Lesenswert?

Darko schrieb:
> Ich würde vorschlagen ich fange einfach mal mit dem Programm an und ihr
> helft mir dann weiter?

Sicher, stelle deine Fragen wenn du welche hast. Anfangen musst du 
selbst.

von EAF (Gast)


Lesenswert?

Ich doch auch wirklich mal gerne gewusst, was dir an meinem Vorschlag 
nicht
gefällt?
Sind es die Kosten?

von EAF (Gast)


Lesenswert?

Ich hätte doch auch wirklich mal gerne gewusst, was dir an meinem 
Vorschlag nicht gefällt?


Sind es die Kosten?

von Darko D. (darlo)


Lesenswert?

Hallo Stefan. Danke!
Hallo EAF, geht es um die 6 Stunden Arbeitszeit die weiter oben genannt 
wurden oder um dieses 10 Euro Modul? Ardurino?  Lg aus Bremen

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> Hallo EAF, geht es um die 6 Stunden Arbeitszeit die weiter oben genannt
> wurden


Ja, es geht um die 6 Stunden die ich an Arbeit in dein Problem 
investiert habe.
Hier: Beitrag "Re: Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort"



Welches halt der Preis für das Programm sind/waren/ist welches in diesem 
Beitrag  publiziert habe.
Hier: Beitrag "Re: Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort"

von Darko (Gast)


Lesenswert?

Hallo EAF,
ich muss dein Angebot dankend leider ablehnen, denn ich habe gestern 
Abend selbst den Durchbruch gehabt.
Alle Ausgänge und alle Eingänge konnten per AT mega8 deklariert und auch 
angesteuert werden. Auch der erste Probelauf (im Moment noch nicht ganz 
erfolgreich) konnte durchgeführt werden.
Ich schätze (ganz vorsichtig) dass das Programm schon zu 80 % fertig 
ist.
Ich werde es die Tage nochmal überarbeiten und korrigieren. Dann poste 
ich es euch und ihr könntet mir lediglich bei der Übersichtlichkeit 
helfen, denn im Moment nutze ich immer diese uneindeutigen 
Zahlenbuchstabenkombinationen z.B.

while(!PORTB00x4) ....        // 4 Ist der Endschalter...
Ich weiß nicht wie ich dem Programm sagen soll, dass PORTB 00x16 
irgendein Eingang sein soll.

Das habe ich dann immer als Kommentar daneben geschrieben. (Geht zur Not 
auch)

Also bis die Tage und dann hat es endlich ein Ende!!

von Stefan F. (Gast)


Lesenswert?

Darko schrieb:
> Ich schätze (ganz vorsichtig) dass das Programm schon zu 80 % fertig
> ist.

Für die letzten 20% braucht man 80%, sagt man. Aber mach mal, wenn du 
fertig bist hast du etwas worauf du stolz sein kannst.

von Darko (Gast)


Lesenswert?

Hallo Stefan oder Stefanus?
Ja wie fast immer habt Ihr Recht. Dann sind etwa 80% fertig und 80 % 
sind noch offen. Auf 100% gerechnet ist dann quasi die Hälfte gemacht. 
Das ist schon sehr viel finde ich. Ja ich bin schon stolz auf mich. 
Vielleicht ab und zu auch mal zu stolz. Aber ich weiß ja was ihr meint!
LG

von EAF (Gast)


Lesenswert?

Darko schrieb:
> ich muss dein Angebot dankend leider ablehnen,

Hier sieht man deutlich, dass du meine Frage noch nicht mal im Ansatz 
verstanden hast!
Aber alles ok....

Übrigens:
Darko schrieb:
> while(!PORTB00x4)    // 4 Ist der Endschalter...
Warum so verschwurbelt?

Wäre ein while(!endschalter) nicht viel Aussagekräftiger?

von Darko (Gast)


Lesenswert?

Hallo EAF, danke!

Genau das ist das Problem, ich weiß nicht wie ich das dem Programm sagen 
soll z.B.
while(!Klappe_unten) Ventil_Klappe_runter ansteuern.

Mein Programm kennt die Kabine ja nicht. Ich muss ja irgendwie sagen, 
dass
PORTB0x02 gleich Klappe_unten ist.

Aber wenn ich das genau so schreibe, dann kommt ein Fehler beim 
Kompilieren.

von EAF (Gast)


Lesenswert?

Darko schrieb:
> Mein Programm kennt die Kabine ja nicht. Ich muss ja irgendwie sagen,
> dass
> PORTB0x02 gleich Klappe_unten ist.

Ja, das musst du!
Vorschläge wurden dazu ja schon gemacht.

von Stefan F. (Gast)


Lesenswert?

Unter der Annahme, dass PORTB Pin 4=HIGH ist wenn die Klappe unten ist:
1
#define Klappe_unten (PORTB00x4)

oder klassisch
1
#define Klappe_unten ((PORTB && (1<<PB4))
2
3
while (!Klappe_unten)
4
{
5
    ....
6
}

Ist der Schalter jetzt an Pin 2 oder 4? Pin 16 gibt es nicht. Offenbar 
ist dir die Syntax von diesen Port-Markos im Detail unklar. Dann benutze 
sie besser nicht, sondern die klassische Variante.

Darko schrieb:
> while(!PORTB00x4) ....        // 4 Ist der Endschalter...

> Ich weiß nicht wie ich dem Programm sagen soll,
> dass PORTB 00x16 irgendein Eingang sein soll.

Darko schrieb:
> Ich muss ja irgendwie sagen,
> dass PORTB0x02 gleich Klappe_unten ist.

von EAF (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> #define Klappe_unten ((PORTB && (1<<4))
Doch eher:
 #define Klappe_unten ((PORTB & (1<<4))

von Stefan F. (Gast)


Lesenswert?

EAF schrieb:
> Doch eher:
>  #define Klappe_unten ((PORTB & (1<<4))

Ja nur ein &.

von Otto (Gast)


Lesenswert?

Hallo,

wie bereits oben mehrfach geschrieben wurde, muss für  einen Eingang 
PINB verwendet werden.

Gruß Otto

von Stefan F. (Gast)


Lesenswert?

Otto schrieb:
> wie bereits oben mehrfach geschrieben wurde, muss für  einen Eingang
> PINB verwendet werden.

Ach ja, da war doch was... Facepalm.

von EAF (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ach ja, da war doch was... Facepalm.

Ja!
So ist das manchmal......

von Hannes (Gast)


Lesenswert?

EAF schrieb:
> Übrigens:
> Darko schrieb:
>> while(!PORTB00x4)    // 4 Ist der Endschalter...
> Warum so verschwurbelt?
>
> Wäre ein while(!endschalter) nicht viel Aussagekräftiger?


#define endschalter PORTB00x4

@Darko: Hier kommt Dir der Preprozessor zur Hilfe. In diesem Fall würde 
der PP alle "endschalter" durch "PORTB00x4" ersetzen - und das Ergebnis 
dem Compiler vorwerfen.

Hannes

von EAF (Gast)


Angehängte Dateien:

Lesenswert?

Übrigens, hier mal sowas, wie eine Alternative.
Tuts mit oder ohne Arduino, egal ob C oder C++
Allerdings nur AVR
1
#include "Pin.h" 
2
3
#define istKlappeZu PINDEF(B,4) //  PORTB Bit 4
4
 
5
6
int main() 
7
{
8
  setInput(istKlappeZu);
9
  //setInputPullup(istKlappeZu);
10
  
11
  while(1) 
12
  {
13
    while(!getPin(istKlappeZu))
14
    {
15
      // Zeit verlempern
16
    }
17
  }
18
}

von Martin V. (oldmax)


Lesenswert?

Hi Darko
Bis jetzt ist immer noch nicht klar, ob du ein Schaltbild deiner 
Elektrik/Elektronik angefertigt hast. Kann sein, des du das nicht für 
nötig hälst, aber wenn Mal ein Fehler auftritt, weißt du gar nicht, 
welche Strompfade wo gemessen werden müssen. Und glaub mir, erst wenn du 
dann deine Verdrahtung komplett auseinander gefummelt hast, wirst du den 
Tag verfluchen, an dem du diese Hinweise ignoriert hast. Die Skizze von 
mir war auch nur ein Beispiel, wie es relativ schnell und ohne 
Einarbeitung in ein Schaltplan Programm mit Paint umsetzbar ist. Die 
Zeichnung packst du dann in den Projektordner, wo du auch dein Programm 
ablegen kannst. Wenn dann Mal Änderungen geplant werden, hast du auch 
die Grundlage dafür.
Gruß oldmax

von Darko (Gast)


Lesenswert?

Hallo Oldmax, grüß dich.
Ich gehe so ziemlich jedem Hinweis nach. Ich habe alles auf 3 DIN A4 
Blättern notiert, wo welcher Port zu welchem Eingang / Ausgang hingeht.
Das bedeutet für mich, dass ich innerhalb weniger Minuten nachvollziehen 
kann wo welches Kabel hingeht.
Grob gesagt wird der AT mega 8 mit Spannung versorgt und die 5 Ein und 
Ausgänge. Mehr ist daran ja nicht.
Außerdem gibt es große Neuigkeiten.
Das Programm funktioniert zu meiner vollen Zufriedenheit!!!
Ich habe es selbst entworfen.
Ich werde versuchen es heute Abend hier reinzustellen.
Ich weiß auch, dass ihr mich verbal auseinandernehmen werdet, aber da 
muss ich durch. Für mich ist es eig. gar nicht so undurchsichtig. Ich 
habe IMMER mit Kommentaren dazugeschrieben was das alles bedeutet.
Ihr könntet mir nur bei dem Feinschliff helfen, falls ihr dort überhaupt 
eine Notwendigkeit seht.
LG aus Bremen

von Darko (Gast)


Lesenswert?

Doch eine Kleinigkeit werde ich ändern. Ich muss immer den Stecker 
abziehen für die Eingänge 4 und 5. Diese sind aber glaube ich RX und TX 
zum Programmieren. Ich werde die beiden Eingänge auf 2 andere Plätze 
anlöten. Dann brauch ich das nicht immer abziehen.
Ich glaube Stefanus hat gesagt, dass ich die Plätze räumen muss.

von Darko (Gast)


Lesenswert?

Ich habe übrigens noch was herausgefunden, was ich ehrlich gesagt 
bescheuert finde.

Pin 1 auf dem AT mega 8 ist 0x02
Pin 2 auf dem AT mega 8 ist 0x04
Pin 3 auf dem AT mega 8 ist 0x08
Pin 4 auf dem AT mega 8 ist 0x10    Da muss man erst mal drauf kommen!
Mir hat niemand gesagt, dass das dumme Ding in Hexadezimal rechnet!

Ich habe mich immer gewundert, warum bei 0x16 immer komische Dinge 
passieren!

von Joachim B. (jar)


Lesenswert?

Jobst M. schrieb:
> Es fehlt ebenfalls ein Schaltplan,

Otto schrieb:
> Gibt es davon einen Schaltplan?

Martin V. schrieb:
> dann muss auch
> ein Schaltplan her

Otto schrieb:
> sowohl die Zeichnung der Schrittkette als auch des Schaltplans von
> Oldman solltest du berücksichtigen.

Jobst M. schrieb:
> ... Äh ... Schaltplan!?

Jobst M. schrieb:
> Schaltplan!
> Machen. Irgendwie.

Hannes schrieb:
> Ich male meine Schaltpläne seit einem
> halben Jahrhundert mit Bleistift auf Papier

Martin V. schrieb:
> Schaltplan



Darko schrieb:
> Ich gehe so ziemlich jedem Hinweis nach.
ich denke das sieht mittlerweile nach eine Lüge aus!

Bis jetzt sieht man kein Schaltplan, aber gut getrollt hast die Meute 
gut beschäftigt!

1. Fehler, keinen Plan gezeichnet (kann auch Blei auf Papier
sein) daraus ergibt sich oft Fehler 2
2. Fehler, ohne Plan können die gelegten Leitungen nicht nachgezeichnet
werden in bunt (-> Textmarker)
somit ist man nie sicher wo man Fehler suchen muss, Hardware (bei
Verdrahtungsfehler) oder Software

: Bearbeitet durch User
von EAF (Gast)


Lesenswert?

Es gibt 10 Arten von Menschen.
Und zwar:
Die die Binärcode verstehen und die die ihn nicht verstehen

von EAF (Gast)


Lesenswert?

Nachtrag:

Darko schrieb:
> Mir hat niemand gesagt, dass das dumme Ding in Hexadezimal rechnet!

Warum sollte das auch jemand sagen?
Denn es stimmt nicht. Das wäre sogar gelogen.

Die hexadezimale Schreibweise/Repräsentation ist eigentlich nur für 
Menschen gedacht. Sie soll uns das Lesen/Schreiben von Zahlen 
erleichtern.

von Stefan F. (Gast)


Lesenswert?

Die ganzen Unstimmigkeiten rund um die Pinbelegung hätten schon 
laaaaange geklärt sein können, wenn du einen Schaltplan gezeichnet 
hättest.

Aber ganz ehrlich: Wenn du jetzt einen vorlegst schaue ich ihn mir nicht 
mehr an. Zu spät, meine Geduld ist am Ende.

von EAF (Gast)


Lesenswert?

Joachim B. schrieb:
> ...

Stefan ⛄ F. schrieb:
> ...

Ich finde das voll doof von euch, dass ihr den Kollegen so anmacht.
Ihr zeigt ein unnötiges antisoziales Verhalten.

Denn ich möchte sein Programm schon sehen.
Diesen Wunsch macht ihr mir kaputt, wenn ihr ihn verärgert/erniedrigt.

Und sowieso:
Ihr beide seid nun gerade auch nicht die hellsten Kerzen auf dem Kuchen.

von Jester (Gast)


Lesenswert?

Darko schrieb:
> Ich habe übrigens noch was herausgefunden, was ich ehrlich gesagt
> bescheuert finde.
>
> Pin 1 auf dem AT mega 8 ist 0x02
> Pin 2 auf dem AT mega 8 ist 0x04
> Pin 3 auf dem AT mega 8 ist 0x08
> Pin 4 auf dem AT mega 8 ist 0x10    Da muss man erst mal drauf kommen!
> Mir hat niemand gesagt, dass das dumme Ding in Hexadezimal rechnet!
>
> Ich habe mich immer gewundert, warum bei 0x16 immer komische Dinge
> passieren!

Hättest Dir blos mal eine Kurzbleiche in C/C++ gegönnt, ein paar 
Beispiel-Programme nachvollzogen, ev. wie vorgeschlagen die <10€ für 
einen Arduino ausgegeben und ein Wochenende mit den Beispiel-Sketches 
gespielt - das hätte Dir unendlich viel Zeit und auch Frust erspart.

Ganz sicher wäre Dir dann auch aufgefallen, dass z.B. 0x... eine 
Hexzahl, 0b... eine Binärzahl, 0... eine Oktalzahl darstellt - und Dir 
wäre dann klar geworden, dass:

* 16 = 0x10 = 0b10000 = 020  - oder anders ausgedrückt
* 16(dez) = 10(hex) = 10000(bin) = 20(okt) dasselbe ist

und man jeweils die sinnvollste Darstellung sich frei aussuchen kann...

EOT meinerseits - habe keine Lust, mir unnötig den Mund fusselig zu 
reden.

Kuck selber nach: 
https://www.onlinetutorialspoint.com/c-program/c-number-system-decimal-binary-octal-and-hexadecimal.html

von Jobst M. (jobstens-de)


Lesenswert?

Stefan ⛄ F. schrieb:
> meine Geduld ist am Ende.

Jester schrieb:
> EOT meinerseits

Echt Darko, was denkst Du Dir eigentlich? Das Ganze muss noch durch den 
Freigabeprozess und der Kunde wartet schon! Ist doch keine 
Freizeitveranstaltung hier! Wir brauchen Ergebnisse! Sonst wird das 
Budget gestrichen!

Tssss ... Managertypen ...
Was soll die Hektik? Keine Zeit?
Wenn ich keine Zeit habe, bin ich nicht hier.
Darko offensichtlich auch nicht.

Darko lass Dich nicht stressen, Du machst das schon ganz richtig. In der 
Ruhe liegt die Kraft.


Gruß
Jobst

von Manfred (Gast)


Lesenswert?

Darko schrieb:
> Ich habe übrigens noch was herausgefunden, was ich ehrlich gesagt
> bescheuert finde.
>
> Pin 1 auf dem AT mega 8 ist 0x02
> Pin 2 auf dem AT mega 8 ist 0x04
> Pin 3 auf dem AT mega 8 ist 0x08

Das ist nicht bescheuert, sondern in Digitalsystemen notwendig.
Jedes Signal hat eine Wertigkeit, so dass man diese addieren und damit 
mehrere ansprechen kann:

0x06 (0110) = Pin 1 und Pin 2 gleichzeitig
oder
0x0C (1100) = Pin 2 und Pin 3 gleichzeitig

Für Dich wäre es hilfreicher, das anstatt hex in binär abzubilden:
0x02 = 0010
0x04 = 0100
0x08 = 1000

von Stromer (Gast)


Lesenswert?

Darko D. schrieb:
> Wie hoch die Stromaufnahme ist weiß ich nicht.

Echter Pro.

von Martin V. (oldmax)


Lesenswert?

Hi Darko
Du machst es dir und auch den Lesern hier schwer. Warum so kompliziert? 
Mittlerweile über 200 Posts und immer noch fehlt Schaltbild. Du freust 
dich, das du die "Maschine" am Laufen hast, gut.Dann ist das doch in 
Ordnung, nur wenn dich der Bereich Elektronik, Mikrocontroller, 
Programmierung usw.weiter begleiten soll, dann musst du unbedingt mehr 
über das Dualsystem und binäre Logik lernen. Den meisten hier sind diese 
Dinge schon so selbstverständlich, das sie vergessen, das ein Anfänger 
mit Pin1 Probleme bekommen kann. Ich geh Mal wie die Allgemeinheit davon 
aus, das du nicht den Anschlusspin, sondern den Port-In meinst. Da ist 
es so, das wie in einem Byte die Bits mit der Basis 2 und dem Exponenten 
der Stelle benannt werden,eben 2^0, 2^1,2^2 usw. Auf Pin1 Bezügen wäre 
das 2^(Pin)1.
Wenn dich das Thema interessiert, dann schau dir mal bei 
www.makerconnect.de im Forum unter der Rubrik FAQ. den Beitrag
https://www.makerconnect.de/index.php?threads/ver%C3%B6ffentlichung-pc-und-%C2%B5c-programmieren-in-vb-und-assembler-lehrbuch.4252/
an. Ich hoffe, der Link funktioniert... ich bin da nicht so fit drin.
Auch wenn du nicht an Assembler interessiert bist, da steht viel 
Grundsätzliches drin und wird dir helfen, einiges zu verstehen.
Gruß oldmax

von Martin V. (oldmax)


Lesenswert?

Hi
Link funktioniert😏
Gruß oldmax

von Darko (Gast)


Lesenswert?

Hallo alle zusammen.
Ich möchte es hier niemandem schwer machen.
Ich versuche noch mal aus dem Gedächnis zu kramen was alles geschrieben 
wurde.
Freizeit und Hobbyveranstaltung wurde genannt, dass das hier nicht sein 
soll.
Für mich ist es aber gerade das. Dieses Projekt hat null mit meinem 
Beruf zu tun. Ich mache dieses alles hier zu 100 Prozent Hobby und zu 
100 Prozent Freizeit.
Dann wurde nach der Stromaufnahme gefragt. Ich kenne sie nicht. Ich habe 
Schwierigkeiten damit Fragen zu beantworten, die aus meiner Sicht 
aufwändig zu beantworten sind und aus meiner Sicht zu keinem sinnvollen 
Ergebnis führen.
Warum ist es daher wichtig, ob der Atmega 8 nun 40 mA oder 45mA oder 70 
mA benötigt. Das kann ich nicht nachvollziehen.
Auch das mit dem Schaltplan kann ich nicht zu 100 Prozent 
nachvollziehen. Ich hatte ja geschrieben, dass ich das relativ 
überschaubar gelötet habe.
Ich werde dennoch direkt nachdem ich das hier veröffentliche mit dem 
Schaltplan anfangen und Ihn hier reinstellen. Das wird ja bestimmt 
irgendwie Sinn haben warum ihr danach fragt. Wie gesagt die Hardware 
funktioniert top.
Ich bezahle auch gerne 10 Euro für so Programmbeispiele auch 20 Euro. 
Ich muss mich nur schlau machen wo es sowas zu kaufen gibt.
Bis gleich!

von Joachim B. (jar)


Lesenswert?

Darko schrieb:
> Ich werde dennoch direkt nachdem ich das hier veröffentliche mit dem
> Schaltplan anfangen

ach hör auf! Das glaubt doch keiner mehr!

von EAF (Gast)


Lesenswert?

Darko schrieb:
> Das wird ja bestimmt
> irgendwie Sinn haben warum ihr danach fragt.

Sorry, aber ich habe nicht nach dem Plan gefragt!
Aber dir dennoch 3 Fehler(?) in deinem noch zu zeichnenden Plan 
aufgezeigt.
Wobei von dir leider keine Einsicht kam, noch nicht mal eine Nachfrage, 
sondern:
Das funktioniert so.
Gut, dann will ich davon auch nix mehr wissen.


Aber an deinem Programm habe ich Interesse. Das würde ich gerne sehen.
Allerdings auch eigentlich auch nur aus einem Grund:
Wie oft habe ich dich gefragt, was dir an meinem Programm nicht gefällt?
5 Mal? jetzt das 6te mal..?
Jetzt möchte ich sehen, ob meine Arbeit vollständig für die Tonne war, 
oder ob du wenigstens einen Hauch davon mitnehmen konntest.

Wie auch immer....
Es gibt hier einige, welche dich für deine schnelle Auffassungsgabe 
loben. Ich sehe das nicht ganz so optimistisch. Aber egal, denn das ist 
nur meine Sichtweise, und sollte dich nicht behindern.

von Darko (Gast)


Angehängte Dateien:

Lesenswert?

So, das müsste es in etwa sein.
Die ganzen Kontroll LEDs mit den Vorwiderständen habe ich jetzt 
weggelassen.
Also wie gesagt Spannung drauf, 5 Eingänge und 5 Ausgänge.
Und die Schnittstelle zum Programmieren.

Das freut mich zu hören wenn jemand der Auffassung ist, ich habe eine 
schnelle Auffassungsgabe.

Auch der Witz mit den 10 Leuten weiter oben war lustig. Auch wenn es nur 
2 sind.

Das Programm habe ich leider zu hause noch. Ich bin ja hier jetzt auf 
der Arbeit und hier ist nix los.

von Darko (Gast)


Lesenswert?

Hallo EAF. Schön, dass du noch immer die Kraft findest mich zu 
unterstützen.
Könntest du mir bitte noch ein letztes Mal sagen, was du genau meinst 
mit dem was du 5 oder 6 Mal gesagt hast?
Ist es das bezahlen des Programms? Wenn ja, habe ich mir den ein Tipp 
(ich glaube von Stefanus) zu Herzen genommen, wenn man das selbst macht, 
dann kann man das auch besser warten.
Ich habe hier auch ein paar mal Lösungen gesehen, wo ich gar nichts von 
verstanden habe.
So könnte ich da auch nichts ändern.
Ich habe das Programm selbst entworfen und kann es jetzt auch nach einer 
kleinen Einarbeitungszeit nach vielleicht 1 Jahr selbst verbessern oder 
instand setzen, falls das Teil modernisiert wird oder so.
Ich werde euch allen versprechen, dass ich das Programm noch heute hier 
hochladen werde.
LG

von EAF (Gast)


Lesenswert?

Darko schrieb:
> So, das müsste es in etwa sein.
Also bleibt es bei meinen 3 Kritikpunkten an deiner Schaltung.




Was mich dazu bringt dieses anzuzweifeln:
Darko schrieb:
> ich habe eine schnelle Auffassungsgabe.

von Stefan F. (Gast)


Lesenswert?

Darko schrieb:
> So, das müsste es in etwa sein.

Beschrifte die Pins vom Atmega, denn ich kenne seine Belegung nicht 
auswendig.

Was mir da sofort ins Auge springt ist, dass du den GND Pin und AVCC auf 
der rechten Seite nicht angeschlossen hast. Das muss aber, ist wichtig. 
Bitte mit Kondensator.

Und spendiere den Spannungsreglern Kondensatoren gemäß den Vorgaben im 
jeweiligen Datenblatt. Die sind auch wichtig. Ich denke das wurde 
bereits geschrieben.

Am ISP Stecker fehlen ein par Leitungen.

von Darko (Gast)


Lesenswert?

Ok OK! Ich werde den Aref und den GND Pin auf der rechten Seite mit 
Kondensator anschließen. Ihr seit ja vom Fach und dann mache ich das 
einfach.
Ich denke das wird schon seinen Sinn haben.

Das Thema Auffassungsgabe würde ich auch gerne abschließen.
Ich bin mit Sicherheit nicht doof und auch mit Sicherheit nicht die 
hellste Kerze auf der Torte, allerdings haut so mehr oder weniger alles 
in etwa hin was ich baue und konstruiere. Dabei Spielt die Zeit eig. gar 
nicht so die große Rolle. Es gibt vieles was ich nicht gut kann, zum 
Beispiel programmieren (ich habe Angst das heute Abend hochzuladen) oder 
kochen und es gibt Dinge die ich gut kann, fällt mir aber gerade nichts 
ein. Das Teil dauert jetzt schon 2 Jahre und wenn es noch ein halbes 
Jahr dauert, dann ist es auch so.
Hauptsache wir sind gesund!!

von Darko (Gast)


Lesenswert?

Ja und danke Stefanus noch einmal!

von Stefan F. (Gast)


Lesenswert?

Noch was: Du wirst wohl den Reset-Eingang mit dem ISP Stecker verbinden. 
Das Stückchen Leitung wird dann eine wunderbare Antenne für Radiowellen 
geben. Und der Reset Eingang reagiert besonders empfindlich.

Wenn du keine sporadischen Resets bekommen willst, machst du da einen 
Pull-Up Widerstand und einen Kondensator dran. Kannst du ja von 
irgendeinem Arduino Board abgucken.

von Otto (Gast)


Lesenswert?

Hallo,

die Stromaufnahme ist deshalb wichtig um abschätzen zu können, wie hoch 
die Verlustleistung ist. Abhängig von dieser erwärmen sich die 
Spannungsregler und schalten ggf. auch wegen Übertemperatur ab.

Sowohl der Anschluss des 7812 als auch des 7805 ist wahrscheinlich 
falsch gezeichnet.

Viele Grüße Otto

von Martin V. (oldmax)


Lesenswert?

Hi
Nun, so schnell kann die Notwendigkeit eines Schaltplanes klar werden. 
Ventile haben wie Relais eine Spule. Wenn du eine Spule einschaltest, 
dann baut sich ein Magnetfeld auf und eine Kraft wirkt auf eine 
Mechanik. Soweit unproblematisch aber, jetzt kommt's, wenn du 
abschaltet, dann hast du eine sehr schnelle Magnetfeldänderung und die 
Physik sagt, wenn sich eine Spule in einem Magnetfeld bewegt, wird eine 
Spannung erzeugt. Je schneller die Magnetfeldänderung, desto höher die 
Spannung. Das führt ohne Maßnahme in einer elektronischen Schaltung 
früher oder später zu Schäden. Deshalb gehören an Relais und Ventile 
Dioden, die in Sperrrichtung parallel geschaltet werden. Da die 
Induktionsspannung entgegen der Versorgungsspannung gerichtet ist, wird 
diese einfach kurzgeschlossen und kann keinen Schäden anrichten.
Gruß oldmax

von Darko Dragojevic (Gast)


Angehängte Dateien:

Lesenswert?

Ja Wahnsinn! Die beiden Induktionsmöglichkeiten Magnetfeld ändern und 
Bewegung eines Leiters im Mag. Feld sind mir bekannt. Danke für den 
Hinweis!
Brauche ich denn dann 5 Sperrdioden oder 10 für 5 Ausgänge.
Ich denke das wird bei 12V kein Problem sein, denn ich glaube eine Diode 
klaut 0,7 V. Also kommen nur 11,3V an an der Spule?
Erst einmal den versprochenen Quelltext.
Ich habe diesen einfach kopiert. Daher ist er in keinster weise schön 
ausgerichtet. Im Programm steht jedoch alles an Ort und Stelle.
Bis morgen!

Achso noch was. Ein Ventil zieht ca 500mA. Da immer nur eins zur Zeit 
geschalten wird, bleibt es dabei.
Ich prüfe die Temperatur der Bauteile mit meinem hornhautigem Daumen. 
Wenn es nicht weh tut, geht es so. Ja ich weiß, dass das nicht so zu 
hundert Prozent professionell ist.

von OMG (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> Ja ich weiß, dass das nicht so zu
> hundert Prozent professionell ist.

Ja, nicht hundert Prozent professionell (also eher null Prozent)
ist auch dass du es innerhalb eines Monats nicht geschafft hast
die Kenntisse zu erwerben um Sourcecode als *.c Datei zu posten.

von Jobst M. (jobstens-de)


Angehängte Dateien:

Lesenswert?

Darko schrieb:
> Freizeit und Hobbyveranstaltung wurde genannt, dass das hier nicht sein
> soll.

Ich hoffe, dass die Ironie, bei dem was ich schrieb, bei Dir angekommen 
ist!
Das war nicht gegen Dich! Im Gegenteil!


Otto schrieb:
> Sowohl der Anschluss des 7812 als auch des 7805 ist wahrscheinlich
> falsch gezeichnet.

Ich denke, die Anschlüsse haben keine Zuordnung zur Realität.

10x R1 finde ich witzig.

Brennend würde mich allerdings die Verschaltung der Ventiltreiber 
interessieren.
Dies einmal zu zeichnen würde ja ausreichen.

Ich bin mir fast sicher, dass die oberen 5 R1 wegfallen könnten.
Nun sind sie da. Also egal.

Das Relais hängt wirklich direkt am ATmega?

+24V an Pin 7 (Vcc)?
Pin 8 (GND) an +5V?

Los, komm! Das machen wir ordentlich, ich unterstütze Dich!

Den 7812 könntest Du auch durch eine Z-Diode ersetzen.
12V brauchst Du ja nicht ...
Okay, ist nun auch so, wie es ist.

Es gibt Probleme bei der Ansteuerung der MJ10012:
Die brauchen bis zu 600mA Basisstrom - das schafft der AVR nicht.
Was ziehen denn Deine Ventile?

Gruß
Jobst

von Stefan F. (Gast)


Lesenswert?

Du hast 3 Ventile mit "Ventil 5" beschriftet.

Jeder GND Pin muss angeschlossen werden. In deinem Fall fehlt Pin 8.

Die Basis-Vorwiderstände an den Transistoren sollten wesentlich mehr als 
5 Ohm haben.

von EAF (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> ....
Ich danke dir dafür, dass du den Quellcode gezeigt hast.

von Der Klaus (Gast)


Lesenswert?

Der Code ist - nun ... - wenig professionel.

Als ERSTE Maßname würde ich den Code etwas straffen.

Oft erkennt man Sequenzen wie
1
PORTC=4;  
2
waitMs(500);  
3
PORTC=0;
4
waitMs(200);
Hier soll wohl das Ventil 4 für 500ms betätigt werden.

Wieso schreibts du hier nicht
1
ventil(4, 500);
2
waitMs(200);

und definierst dir eine Funktion
1
void ventil(int ventil_nr, int dauer)
2
{
3
  PORTC = ventil_nr;  
4
  waitMs(dauer);  
5
  PORTC = 0;  
6
}

in deinem Code steht dann
1
ventil(4, 500);
2
waitMs(200);

Der Programmcode reduziert sich damit auf ca. die Hälfte - und wird 
schon mal "etwas" übersichtlicher.

Zu überlegen wäre noch, ob du das anschließende
waitMs(200);
nicht auch noch mit in die Funktion ventil() mit rein packst, entweder 
als 3. Parameter oder ein fixer Wert, z.B. 100

Ich würde die Ventile noch benennen, z.B.
1
#define V_Klappe_zu 4

Damit könnte der Aufruf lauten:
1
ventil(V_Klappe_zu, 500);

von Darko (Gast)


Lesenswert?

Hallo Alle zusammen. Nun hatte ich endlich mal Zeit mir noch mal die 
letzten Beiträge anzusehen.
Also das mit der Frage ob ich 5 oder 10 Sperrdioden brauche hat sich ja 
aufgrund der geilen Zeichnung von Jobst erledigt. Danke Jobst!!!!
Ich würde wenn möglich gegen schmales Geld von Jobst das Programm 
erwerben.
Das sieht so gut aus, dass ich mich richtig zusammennehmen muss um bei 
Paint weiterzumachen, aber ich mache es natürlich.

Los, komm! Das machen wir ordentlich, ich unterstütze Dich!
Danke Jobst, dass du schon von Anfang an für mich da bist!
Auch viele andere wie EAF oder Stefanus etc. !!!

Ich werde erst mal die Bezeichnung der Pins vornehmen, dann Arev und GND 
auf der rechten Seite des ATmega 8 versorgen, 5 Sperrdioden einlöten und 
den 7805 und den 7812 mit Elkos versorgen.

Und dann hoffentlich so ein Programm auch als Demo Version von Jobst 
installieren. Und dann nimmt das ja schon mal alles eine halbwegs 
professionelle Richtung an meiner Meinung nach.

Und zum Thema Temperatur:
Die Ventile nehmen ungefähr 500mA an Strom.
Die Erwärmung der Bauteile messe ich wie gesagt mit dem Finger.
Ich könnte mit meinem Handy CAT S62 Pro mit der gut auflösenden 
Wärmebildcamera auch die Temperatur auf einen Grad genau sehen, bringt 
mir aber auch nichts, weil ich überhaupt nicht weiß wann es 
temperaturtechnisch problematisch wird für diese Bauteile.

Und Jobst zum Thema Relais direkt ansteuern, hab ich mich vertan.
Der BC 546 oder BC547 sitzt vor dem Relais. Der Schaltet das.

Und dann noch eine Frage. Ich dachte der Mj10012 hat eine integrierte 
Darlingtonschaltung. Woher kommen dann 600 mA Ansteuerstrom an der 
Basis?
Bei 600 mA Ansteuerstrom könnte ich ja gleich das Ventil schalten, denn 
das zieht keine 600 mA.
LG aus Bremerhaven

von Stefan F. (Gast)


Lesenswert?

Darko schrieb:
> und den 7805 und den 7812 mit Elkos versorgen.

Bitte keine Elkos, sondern was schnelleres.

Darko schrieb:
> Woher kommen dann 600 mA Ansteuerstrom an der Basis?

Ich glaube er hat sich geirrt.

von EAF (Gast)


Lesenswert?

Der Klaus schrieb:
> und definierst dir eine Funktion

Das kann ich dir sagen.
Unserem Darko ist das prozedurale Programmierparadigma schlicht noch 
nicht geläufig.

Er hängt noch voll in der Kontrollflussorientierung fest. Das bringt die 
Scheu davor mit sich, dass sich der Kontrollfluss zerfasern könnte.

Ich unterteile so: (provisorisch)
- Kontrollfluss orientiert (if/else, switch/case, Schleifen)
- Prozedural orientiert. (Funktionen)
- Daten orientiert ( struct, Array)
- Nebenläufigkeiten/Tasks/Threads
- Objekt orientiert (class, Methoden, Sichtbarkeit)
- Generische Programmierung
- Funktionale Programmierung

Die überzogene Kontrollflussorientierung führt halt zu genau solchen If, 
else und Schleifen Kaskaden.
"Anfänger" neigen dazu es sich auf diesem Hügel bequem einzurichten. 
Denn um den nächsten Hügel auf dem Wege des Erkenntnisgewinns, erreichen 
zu können, muss ein Jammertal durchschritten werden.

von Darko (Gast)


Lesenswert?

Hallo Klaus.
Das wird ja richtig spannend und interessant.
Danke!!!
Ich werde mal versuchen das zu Hause umzusetzen.
um die Hälfte reduzieren klingt sehr gut!
Das ist auch der längste Quellcode den ich je geschrieben hatte.
Auch einen ADC Wandler hatte ich mal irgendwann verwendet (bei meinem 
Drucksensor im Kessel).

Ich habe nicht gewusst, dass das hier im Forum dann doch noch so eine 
tolle Wende nimmt. Wir sind ja nun alles andere als normal gestartet.

Vielleicht darf ich ja in einem oder 2 Jahren ja nochmal was fragen wenn 
ich eine neue Herausforderung suche.

von EAF (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Darko schrieb:
>> Woher kommen dann 600 mA Ansteuerstrom an der Basis?
>
> Ich glaube er hat sich geirrt.

Ja!
500mA werden am Ventil gebraucht und der Darlington hat einen hFE von ca 
300.
also sollten ca 2mA an der Basis ausreichen.

von Darko (Gast)


Lesenswert?

So ungefähr hatte ich da auch gedacht wie EAF.

Ich hatte noch in Erinnerung, dass sich die Verstärkungsfaktoren bei der 
Darlingtonschaltung multiplizieren.

ob es nun ein Verstärkungsfaktor von 300 oder 100 ist weis ich nicht.

Aber ist ja auch überhaupt nicht schlimm wenn sich jemand irrt.
Ich habe mich bestimmt schon 2 mal geirrt hier in dem Forum.
Naja sagen wir eher 200 mal :-)

von EAF (Gast)


Lesenswert?

Darko schrieb:
> So ungefähr hatte ich da auch gedacht

Ist nur die Frage, ob deine Basiswiderstände das auch in ein solches 
Verhältnis setzen.
Da habe ich so meine Zweifel.

von Ansager (Gast)


Lesenswert?

Gibt's in diesem Forum eigentlich nur Arschlöcher? Wenn ich den Thread 
hier lese, hätte ich die Hälfte der Teilnehmenden dauerhaft gebannt.

von EAF (Gast)


Lesenswert?

Ansager schrieb:
> hätte ich die Hälfte der Teilnehmenden dauerhaft gebannt.
Und du wärst der erste.

von Darko (Gast)


Lesenswert?

Also ich als Referent fühle mich hier im Moment gut aufgehoben.
Ich kann aber die Antwort von dem Ansager verstehen.
Ab und zu musste ich mich schon bei Freunden und Familie ausweinen.
Das gehört aber dazu denke ich.

von Darko (Gast)


Lesenswert?

Warum soll der Ansager gesperrt werden?
das halte ich für eine schlechte Idee!

von Stefan F. (Gast)


Lesenswert?

Wir leben in einer Gesellschaft, wo nur noch wenige Menschen vor die 
Türe gehen um ihre Meinung kund zu tun.

Stattdessen versucht man lieber anderen zu verbieten, sich zu äußern.

von Der Klaus (Gast)


Lesenswert?

Mach mal Folgendes:

Im Programmkopf schreibts du rein
1
#define Taster_Klappe_AufZu    (PINB & 0x20)  
2
#define Schalter_Absaugung    (PINB & 0x02)
3
#define Endschalter_Klappe_oben    (PINB & 0x04)
4
#define Endschalter_Klappe_unten  (PINB & 0x08)
5
#define Endschalter_Scharnier    (PINB & 0x10)

In deinem Code steht dann z.B. statt:
- if ((PINB&0x20))
ein lesbares
- if (Taster_Klappe_AufZu)

Analog natürlich bei allen anderen derartigen Schalter-Konstrukten.


Was da passiert ist Folgendes:
Der Compiler (Preprocessor) ersetzt im Quelltext alle 
"Taster_Klappe_AufZu" durch ein "(PINB & 0x20)" - genau wie die 
Suchen/Ersetzen-Funktion im Editor.

Du fragst was das bringt? Nun, mit "Taster_Klappe_AufZu" kann der Leser 
deines Programms spontan etwas anfangen - mit "(PINB & 0x20)" aber 
nicht.

Sollte es dir irgendwann einfallen, dass du z.B. lieber "Eingang 64" 
verwenden willst, kannst du das im #define an einer einzigen Stelle 
(PINB & 0x40) anpassen - und du kommst nicht durcheinander, weil es es 
bisher ja immer "Eingang 32" war - und du dich Übermorgen nicht mehr dan 
erinnerst, ob du die Änderung überall durchgezogen hast.

Genaugenommen ist es eine sehr schlechte und fehleranfällige Methode, 
wenn man im Programm direkt mit numerischen Werten arbeitet.

Das trifft auch auf die in meinem anderen Post verwendeten Zeiten zu. 
Arbeite da besser mit Ersatzwerten wie z.B.
- #define Pause_Lang   500
- #define Pause_Kurz   100
- #define Schaltpause   10

Wichtig: TREFFENDE Namen für die Konstanten benutzen

von EAF (Gast)


Lesenswert?

Darko schrieb:
> Warum soll der Ansager gesperrt werden?
> das halte ich für eine schlechte Idee!

Negative Ausstrahlung, keinen Funken an Fachlichkeit.
Einfach nur provokant.
Ein Terrorvogel.

Klar, habe sich hier ein paar daneben benommen. Aber das wird nicht 
besser wenn ein Ansager daherkommt und da noch eine weitere Dummheit 
drauf setzt.

Zudem fordert er einen Bann!
Das ist ein mehr als anmaßendes Verhalten.
Von daher würde ich es als gerecht empfinden, wenn er erstmal selber die 
Medizin zu schlucken kriegt, die er großmütig zu verteilen gedenkt.

von Martin V. (oldmax)


Angehängte Dateien:

Lesenswert?

Hi
Ja, das Schaltbild von Jobst ist richtig, aber ich habe meine Zweifel, 
ob du die Beschaltung mit den Freilaufdioden verstanden hast. Ich hab 
die mal in deine Zeichnung reinskizziert. Ob das mit dem Relais so 
richtig ist, weiß ich nicht, aber richtig ist, das die Dioden in 
Sperrrichtung geschaltet werden. Bei Betrieb haben sie keinerlei 
Auswirkung auf den Stromkreis, beim Abschalten schließen sie die 
auftretende Induktionsspannung kurz. So schützen sie die Elektronik von 
den (sehr hohen) Induktionsspannungen.
Gruß oldmax

von EAF (Gast)


Lesenswert?

Der Klaus schrieb:
> Genaugenommen ist es eine sehr schlechte und fehleranfällige Methode,
> wenn man im Programm direkt mit numerischen Werten arbeitet.

Stimmt eigentlich!

Der Punkt fehlt hier in meiner Auflistung noch
Beitrag "Re: Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort"

Ich nenne ihn mal
- Symbolische Programmierung

Symbol, meint hier in etwa "Sinnbild"

Also, statt direkter Werte, verwendet man eigens dafür erfundene 
Symbole, z.B. ventilKlappeAuf

von Darko (Gast)


Lesenswert?

Ja achso. Das ist ja nicht so schön, wenn man Ärger macht.
Hm. Ja ich denke ich habe erst mal völlig ausreichend Input bekommen 
mein Projekt zu überarbeiten. Wenn ich der Meinung bin, dass ich alles 
umgesetzt habe was ich verstanden habe, dann würde ich mich gerne noch 
mal zum Abschluss kurz melden. Und dann haben wir es endlich geschafft. 
Naja eig. mehr Ihr als ich. Aber meine Anlage läuft dank euch dann 
wenigstens.
Danke nochmal!! Bis bald!!

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Was mit immer noch nicht klar ist, was stört dich am Programm von EAF 
Beitrag "Re: Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort" ?
Mindestens als Ausgangspukt bist du damit deutlich weiter als jetzt...

von Der Klaus (Gast)


Lesenswert?

Darko schrieb:
> dann würde ich mich gerne noch mal zum Abschluss kurz melden

Darko, freu dich mal nicht zu früh <beg>

Ich denke, du kannst aus dem Projekt viel mehr mitnehmen, als nur eine 
funktionierende Sandstrahlkabine. Du hast Dir den schweren Weg 
ausgesucht; notgedrungen, weil bezahlbare Hilfe nicht zu haben war. 
Stellenweise hast Du dich aber auch angestellt, fast wie ein bockiges 
Kind. Kinder glauben auch erst dann, dass heiß "Aua macht", wenn sie 
sich mal ordentlich die Finger verbrannt haben. Danach sind sie dann 
schlauer...

Aber um beim Thema zu bleiben: Dein Programmierstil ist unter aller 
Kanone - und ich weiß, dass du das viel besser hin bekommst. Man sagt, 
"aus Fehlern wird man klug". Daher wird Kritik fast immer das Schlechte 
aufdecken. Das liegt in der Natur der Sache, hat nichts mit fies oder 
gemein zu tun.

Aber genug der Vorrede...

Was zeichnet nun ein gut geschriebenes Programm aus? Ich habe das für 
mich mal so definiert: Genauso wie gute Literatur, muss auch ein gutes 
Programm lesbar sein. Mit "lesbar" meine ich, für den Menschen lesbar, 
GUT lesbar. Dazu gehört auch, dass das Programm möglichst kurz sein 
sollte, dass man möglichst auf einer Seite den Überblick bekommen 
sollte.

Quasi eine gute Kurzgeschichte, die zu Lesen Spass macht.

Meist sind Programme aber länger. Hier gilt dann "divide et impera"!

Ich kann kein Latein, bleibe lieber beim "Teile und Herrsche"- und meine 
damit: Zerschneide den Kuchen in handliche Stücke und verspeisse Eins 
nach dem Andern!

Oder: Teile ein Problem in kleine, überschaubare Problemchen - und löse 
diese dann getrennt. Manche sagen auch "top-down-Entwurf" dazu - aber 
das ist mehr oder weniger das Gleiche.

Wenn ich mir dein Problem so ansehe, könnte man das ev. so beschreiben:
1
bis in alle Ewigkeit {
2
  wenn (Start gedrückt) {
3
4
    wenn (Klappe zu) {
5
      mach Klappe auf
6
    }
7
    sonst {         // Klappe ist offen oder halb offen
8
      mach Klappe zu
9
    }
10
11
    {
12
      warte           // falls jemand mit dem Fingerle sich
13
                      //  auf der Taste ausruht
14
    } bis (Start losgelassen)
15
16
  }
17
}

Dieses "Warte bis Taste 'Start' losgelassen wurde" - das habe ich dazu 
gedichtet. Weil mir hier schon aufgefallen war, dass sonst eine 
klemmende Start-Taste die komplette Klappe ziemlich schnell zerlegen 
könnte.

Das setzt man nun 1:1 in C um - und nimmt die Beschreibung mit in' 
Kommentar.
1
void main (void)
2
{
3
  while(1) {            // oder for(;;) - jedenfalls forever
4
    if (Start_gedrueckt) {
5
6
      if (Klappe_zu) {
7
        klappe_oeffnen();
8
      }
9
      else {            // Klappe ist offen oder halb offen
10
        klappe_schliessen();
11
      }
12
13
      do {
14
        wait_ms(100);   // falls jemand mit dem Fingerle sich
15
                        //  auf der Taste ausruht
16
      } until (!Start_gedrueckt);
17
    }
18
19
  } // end while(1)
20
} // end main

Das ist mir schon kompliziert genug! Also kommt da auch nicht mehr 
rein!!

Verbleibende Teilprobleme:
* klappe_oeffnen()
* klappe_schliessen()
* Start_gedrückt
* Klappe_zu
* wait_ms()

Trivial - ich weiss. Zieh's Dir trotzdem rein. TIEF, GANZ TIEF rein ...

von EAF (Gast)


Lesenswert?

Tim T. schrieb:
> Was mit immer noch nicht klar ist, was stört dich am Programm von EAF
> Beitrag "Re: Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort" ?
> Mindestens als Ausgangspukt bist du damit deutlich weiter als jetzt...

Das hat er schon gesagt, glaube ich, ihm ist das zu naiv, zu einfach, so 
dass er es nicht verstanden hat.

Ihm hat keine "Übung" in Sachen "Symbolischer Programmierung", was dann 
die Aufteilung/Modularisierung wirksam verhindert.

Ich bin da anders gestrickt!
Ich empfinde ifs in 2 bis 3 Schachtelungstiefen mit komplizierten 
Bedingungen schon als Last. Drum kommen sie bei mir nicht vor, zumindest 
steht das weit oben auf der Liste.

von Der Klaus (Gast)


Lesenswert?

EAF schrieb:
> Ich empfinde ifs in 2 bis 3 Schachtelungstiefen mit komplizierten
> Bedingungen schon als Last.

Schachteltiefe allgemein ist lästig. Drum finde ich das Intro, implizite 
main(), von Arduino gar nicht mal so ganz daneben.
1
void main()
2
{
3
  setup();
4
5
  while(1) {
6
    loop();
7
  }
8
}

Ein
// vi:set ts=4:
in der modeline mildert die Symptome etwas ab ...

von Otto (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

die meisten Fragen zur Hardware können aus dem oben angehangenen Bild 
der Lochrasterplatine entnommen werden:

1. Als Basiswiderstand der MJ10012S ist 3k3-Metallfilm verbaut.
2. Das Schaltbild von Darko zeigt die MJ10012S als High-Side (Plus der 
Ventile geschaltet). Dies ist nicht richtig.
3. Gemäß Lochrasterplatine schalten diese aber die Low-Side was 
bedeutet, dass die Emitter an GND liegen und Kollektoren zum Ventil 
gehen.
4. Die anderen Anschlüsse der Ventile sind an +24V angeschlossen.
5. Die Kathode der Freilaufdioden muss also an +24V liegen und die Anode 
zum Ventil.

Viele Grüße
Otto

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

EAF schrieb:
> Tim T. schrieb:
>> Was mit immer noch nicht klar ist, was stört dich am Programm von EAF
>> Beitrag "Re: Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort" ?
>> Mindestens als Ausgangspukt bist du damit deutlich weiter als jetzt...
>
> Das hat er schon gesagt, glaube ich, ihm ist das zu naiv, zu einfach, so
> dass er es nicht verstanden hat.

Ok, dann ist alles klar.

> Ihm hat keine "Übung" in Sachen "Symbolischer Programmierung", was dann
> die Aufteilung/Modularisierung wirksam verhindert.

Und genau da würde er was wichtiges lernen.

> Ich bin da anders gestrickt!
> Ich empfinde ifs in 2 bis 3 Schachtelungstiefen mit komplizierten
> Bedingungen schon als Last. Drum kommen sie bei mir nicht vor, zumindest
> steht das weit oben auf der Liste.

Klar, ist auch nicht nötig. Ich vermeide mittlerweile auch mehr als eine 
Bedingung in der if-Abfrage, die lager ich dann entsprechend 
hintereinander in Funktionen aus und der Quelltext wird dadurch viel 
übersichtlicher und verständlicher.

von Martin V. (oldmax)


Lesenswert?

Otto schrieb:
> Die Kathode der Freilaufdioden muss also an +24V liegen und die Anode
> zum Ventil.

Hi
Natürlich, aber das hab ich doch im Text geschrieben. Die Zeichnung von 
Darko passt sowieso nicht, doch mir war wichtig, darauf hinzuweisen, daß 
die Dioden parallel zu Ventilen und Relais liegen und nicht etwa in 
Reihe oder sonst wie. Die Zeichnung von Jobst ist deshalb von mir auch 
erwähnt.
Darko, nimm es mir nicht übel, aber du bist schon wirklich 
gewöhnungsbedürftig. Einige Hinweise ignorierst du komplett, andere 
nimmst du auf, setzt sie aber völlig unsinnig um. In meinem ersten 
Beitrag hab ich mit einer kleinen Skizze gezeigt, wie so ein Programm 
definiert werden kann. Deine Maschine hat drei Startbedingungen, mehr 
nicht. Das sind: Grundstellung, Betriebsstellung und weder noch eines 
der beiden, d.h.irgendwo dazwischen. Wenn du nun den Starttaster 
drückst, dann geht es aus der "weder noch"-Stellung entweder Richtung 
Grundstellung oder Betriebsstellung. Das legst du fest. Ansonsten von 
Grundstellung nach Betrieb oder umgekehrt. Die Gebläse gibst du nur in 
Betriebsstellung frei.
Wenn du in Schritten programmierst, kannst du dir die unübersichtlichen 
If-Schachtelungen sparen. Auch die "Wartezeiten".
Da gibt es nur "Wenn Schrittbedingung, dann ausführen." Die 
Schrittbedingung habe ich erklärt und die kannst du auch ganz einfach 
erweitern.
Ganz einfach geht das mit zwei Tastern, Grundstellung und Betrieb. Dann 
ist es völlig egal, welchen Zustand die Klappen haben.
Gruß oldmax

von Jobst M. (jobstens-de)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Du hast 3 Ventile mit "Ventil 5" beschriftet.

Ich habe das von Darko so übernommen :-)

> Jeder GND Pin muss angeschlossen werden. In deinem Fall fehlt Pin 8.

Stimmt, der ist mir untergegangen. Das Relais zieht auf dem Plan auch 
noch nicht an.

> Die Basis-Vorwiderstände an den Transistoren sollten wesentlich mehr als
> 5 Ohm haben.

Dann können keine 600mA in die Basis fließen. Die habe ich mir als 
Sättigungsstrom erstmal ganz frech aus dem DB geklaut.
Das der AVR das nicht schafft, weiß ich. Auch die Spannungsregler würden 
dabei verglühen.
Dennoch war das in dem Moment der Stand der Dinge. Und natürlich sollte 
das ins Auge fallen, nur nicht in Deins.
Wie sieht seine Schaltung denn wirklich aus? Ich will ja keine 
Konstruktion machen, sondern den ist-Zustand aufnehmen.


Darko schrieb:
> Ich würde wenn möglich gegen schmales Geld von Jobst das Programm
> erwerben.

Welches Programm?
Meinst Du den Schaltplan?
Lade Dir KiCad auf Deinen Rechner.
Das ist kostenlos.
Datei hängt neben dem Bild an.
Dafür will ich nichts haben. Ich glaub' ich dreh durch! Ich vergnüge 
mich hier! :-D

Darko schrieb:
> weil ich überhaupt nicht weiß wann es
> temperaturtechnisch problematisch wird für diese Bauteile.

Je kälter, desto besser. Mit der idealen Schaltung könntest Du hier 
unter 1W Verlustleistung bleiben. Für die gesamte Schaltung ohne 
Ventile.
Aber Du hast schon etwas anderes.
Sonst würde ich einen Schaltregler und MOSFETs empfehlen.
Bleib am besten unter 75°C, da kannst Du nichts falsch machen.
Die Transistoren wirst Du mit 500mA auch nicht groß beeindrucken können.

Darko schrieb:
> Der BC 546 oder BC547 sitzt vor dem Relais. Der Schaltet das.

Ah!

Martin V. schrieb:
> aber ich habe meine Zweifel,
> ob du die Beschaltung mit den Freilaufdioden verstanden hast. Ich hab
> die mal in deine Zeichnung reinskizziert.

Ich habe Zweifel an der dortigen Verschaltung der Transistoren. 
High-Side mit einem NPN-Transistor wird schwierig ohne weitere 
Ansteuerung.

Otto hat dies dann so wie in meiner Schaltung geändert.
Aber ich weiß nicht, wie es wirklich aussieht.

Darko, hier ist Info von Dir gefordert!

Gruß
Jobst

von Klaus S. (kseege)


Lesenswert?

Nachdem ich bisher weitgehend die Klappe gehalten habe, weil ich weit 
weg von Bremen war, bin ich jetzt für 3 Wochen nur 30km von Bremen 
entfernt und Darko anscheinend nach Bremerhaven entschwunden ...

Trotzdem ein Vorschlag meinerseits.

Für mich ging es immer am schnellsten vorwärts, wenn ich "Bottom-Up" 
programmiert und aufgebaut habe. Wäre es nicht sinnvoller, man empfähle 
Darko erstmal die Elektronik für ein Ventil aufzubauen und das dann 
testweise ein- und auszuschalten? Da er ein Board von myAVR hat und per 
USB Programme einspielen kann, sollte das doch problemlos gehen. Damit 
kann man mit C die Basic- und Forth-Methode des sukzessiven 
Programmierens simulieren. Zumindest wäre ihm dann gleich zu Anfang 
aufgefallen, daß er die falschen Anschlüsse benutzt hat :-)

Was halten die Experten davon?

Gruß

Klaus

von Stefan F. (Gast)


Lesenswert?

Klaus S. schrieb:
> Wäre es nicht sinnvoller, man empfähle Darko erstmal die
> Elektronik für ein Ventil aufzubauen und das dann testweise
> ein- und auszuschalten?

Das hat er doch schon lange hinter sich.

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen. Vor genau 1 Jahr habe ich dieses Thema erstellt.
Ich hoffe, dass es hier noch den einen oder anderen abschließenden 
Hilferat geben wird.

Vorab möchte ich allerdings noch einmal ausdrücklich danken, dass Ihr 
alle damals die Kraft und Zeit genommen habt, mein Projekt zu dem zu 
machen, was es jetzt ist!
Danke!

Ich habe mir in den letzten 10 Tagen die Mühe gemacht, jeden einzelnen 
Pin sämtlicher elektronischen Bauteile zu überprüfen und das in Form des 
mir hier empfohlenen Programms KiKad zu zeichnen. Das Ergebnis ist 
anbei. Vielleicht schafft es der ein oder andere da nocheinmal 
drüberzuschauen und mir eventuell noch ein fehlendes Bauteil 
mitzuteilen.

Ich hoffe, dass die Pläne so einigermaßen nach Norm sind.
LG Darko

von Stefan F. (Gast)


Lesenswert?

Oha

Gewöhne dir mal an, die Bauteile zu nummerieren, wie Kicad das auch 
automatisch kann. Q1, Q2, Q3, R1, R2, R3, usw. Ich habe jetzt nämlich 
Probleme, in meinem Text anzugeben, welches Bauteil ich meine.

Die 4 Transistoren für die Ventile sind falsch herum (C,E vertauscht).

Wer hat dich dazu gezwungen, diese riesigen sau teuren Transistoren zu 
verwenden? Schau dir meine Vorschläge an: 
http://stefanfrings.de/transistoren/index.html#mosfet

Dein Relais-Kontakt hängt in der Luft, er schaltet nichts. Die 
Freilaufdiode am Relais ist falsch herum.

Dem Mikrocontroller fehlt ein Abblock-Kondensator mit z.B. 100nF.

Ich bin sicher, dass der 33µF Kondensator am Ausgang des 7805 falsch 
ist. Schau ins Datenblatt, was da hin gehört. An seinem Eingang fehlt 
ein Abblock-Kondensator gemäß Datenblatt.

Beim 7812 hast du die gleichen Fehler.

Stefan F. schrieb:
> Und spendiere den Spannungsreglern Kondensatoren gemäß den Vorgaben im
> jeweiligen Datenblatt. Die sind auch wichtig.

Stefan F. schrieb:
> Bitte keine Elkos, sondern was schnelleres.

An den Reset Eingang gehört mindestens ein Pull-Up Widerstand, besser 
auch ein Kondensator mit z.B. 1µF. Sonst empfängt die Leitung zum ISP 
Stecker Radiowellen und resetted den Mikrocontroller sporadisch.

Stefan F. schrieb:
> Das Stückchen Leitung wird dann eine wunderbare Antenne für Radiowellen
> geben. Und der Reset Eingang reagiert besonders empfindlich.
>
> Wenn du keine sporadischen Resets bekommen willst, machst du da einen
> Pull-Up Widerstand und einen Kondensator dran. Kannst du ja von
> irgendeinem Arduino Board abgucken.

Die Sicherung vor dem 12V Spannungsregler ist unnötig, der schützt sich 
schon selbst. Stattdessen vermisse ich eine Absicherung der 24V Schiene.

Die Pins von deinem ISP Stecker sind falsch belegt. Halte die an die 
Standards! https://de.wikipedia.org/wiki/In-System-Programmierung

AGND muss angeschlossen werden.

AREF gehört nicht an 5V sondern an einen kleinen Kondensator (z.B. 
10nF).

von Darko D. (darlo)


Lesenswert?

Oha. Das wirft mich wieder zu Boden, aber ich werde alles abarbeiten und 
dann nochmal alles berichten.

Danke Stafan, dass du wieder für mich da bist!

von Stefan F. (Gast)


Lesenswert?

Welchem Zweck dient der dicke 2200µF Elko an der 24V Schiene? Wenn du 
dafür keinen guten Grund hast, dann lasse ihn weg.

Was stattdessen eher Sinn macht, ist eine Diode in Kombination mit einem 
Elko:
1
24V o---|>|---+----+---[7812]---+---
2
              |    |     |      |
3
             ===  ===    |     ===
4
              |    |     |      |
5
GND o---------+----+-----+------+---
6
            220µ  330n         100n

So bleiben die 12V und die 5V stabil, auch wenn die 24V mal kurz 
einbrechen.

von Glückwünschende (Gast)


Lesenswert?

Hallo Darko,

diesmal möchte ich Dir danken und auch gratulieren.
Du hast meinen Tag gerettet.
Und zwar dadurch, dass Du vor genau einem Jahr diesen Threat eröffnet 
hast.

Das Du es geschafft hast, ohne wirklich sinnvollen Inhalt die Experten 
dieses Forums hinzuhalten und in Deine Geschichte einzubauen. Dafür 
gebührt Dir meine Hochachtung. Eigentlich wird hier so etwas mit dem 
Vermerk auf den Freitag oder einem vermutetem Trollversuch 
abgeschmettert. Bei Dir jedoch nicht.
Ich habe selbst schon nach so einer Geschichte gesucht, aber Deine kann 
ich nicht toppen.

Ich vermute mal, Du bist entweder ein so guter Experte, dass Du genau 
weißt, wie hier im Forum gedacht wird und nutzt das als Werkzeug oder 
aber Du kannst einfach nur gut Geschichten erzählen und nutzt die 
Eitelkeiten der hier Schreibenden.
Meine Vermutung: Ersteres!

Also wirklich, top, ich lehne mich wieder zurück und schaue mal, wie es 
weiter geht.
Vielleicht baust Du neben Klappen, Schanieren und Saugern ja auch noch 
mal einen Scheinwerfer ein.

Schöne Grüße,

Waltraud

von You never can tell (Gast)


Lesenswert?

Stefan F. schrieb:
> Was stattdessen eher Sinn macht, ist eine Diode in Kombination mit einem
> Elko:



http://exit-esens.de/wp-content/uploads/2018/05/sinnmachen-e1530866206916.png

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

You never can tell schrieb:
> Stefan F. schrieb:
>> Was stattdessen eher Sinn macht, ist eine Diode in Kombination mit einem
>> Elko:
>
>
>
> http://exit-esens.de/wp-content/uploads/2018/05/sinnmachen-e1530866206916.png

Womit wir wieder am Punkt wären, dass es hier nicht ums helfen geht 
sondern nur irgendwie seinen Scheiß abzusondern...

von Joachim B. (jar)


Lesenswert?

Tim T. schrieb:
> Womit wir wieder am Punkt wären, dass es hier nicht ums helfen geht
> sondern nur irgendwie seinen Scheiß abzusondern...

an welcher Stelle soll man dem TO noch helfen nach einem Jahr?
Ausserdem ist "macht Sinn" nur eine dümmliche Übersetzung von "make 
sence"
Selbst google kann das zu "Sinn ergeben" übersetzen.
Wenn schon Scheiß abgesondert wird, lest alle Beiträge und versucht zu 
verstehen.

Glückwünschende schrieb:
> Hallo Darko,
>
> diesmal möchte ich Dir danken und auch gratulieren.
> Du hast meinen Tag gerettet.
> Und zwar dadurch, dass Du vor genau einem Jahr diesen Threat eröffnet
> hast.
>
> Das Du es geschafft hast, ohne wirklich sinnvollen Inhalt die Experten
> dieses Forums hinzuhalten und in Deine Geschichte einzubauen. Dafür
> gebührt Dir meine Hochachtung. Eigentlich wird hier so etwas mit dem
> Vermerk auf den Freitag oder einem vermutetem Trollversuch
> abgeschmettert. Bei Dir jedoch nicht.

+1

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

q.e.d.

von Joachim B. (jar)


Lesenswert?

Tim T. schrieb:
> q.e.d.

ich fand deinen Beitrag nicht scheisse, also q.e.d. passt eigentlich 
nicht und niemand kann Sinn machen ausser Sprache zu vergewaltigen!

: Bearbeitet durch User
von Klaus S. (kseege)


Lesenswert?

Joachim B. schrieb:
> niemand kann Sinn machen ausser Sprache zu vergewaltigen!

Das ist so eine Sache. Der Ausdruck kommt von der deutschen 
Synchronisation amerikanischer Filme, da passt "macht Sinn" besser zur 
Lippenbewegung der englischsprachigen Schauspieler.

Wer also ständig amerikanische Serien schaut, verändert im Laufe der 
Zeit den Sprachschatz. Das deutsche "Technologie" ist auch nur eine 
Übernahme aus dem angelsächsischen "technology". Im Deutschen ist 
Technologie die Wissenschaft von der Technik. Trotzdem reden alle 
Wichtigtuer von Technologie, wenn sie Technik meinen. Klingt vielleicht 
eindrucksvoller? Mehr Schein als Seinen?

Gruß Klaus (der soundsovielte)

von Klaus S. (kseege)


Lesenswert?

Klaus S. schrieb:
> Joachim B. schrieb:
>> niemand kann Sinn machen ausser Sprache zu vergewaltigen!

Da hat Joachim wohl ganz schnell seinen Beitrag gelöscht, während ich 
meine Antwort schrieb.

von Joachim B. (jar)


Lesenswert?

steht doch noch alles da

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.