Ja die Werte haben sich in der aktuellen Software etwas geändert [cool].
Früher wurde der Werte vom Poti mal 10 multipliziert, jetzt ist x12 und im Regenmodus Stufe 1 / x6 bzw. Regenmodus Stufe 2 / x3.
Also es wird nicht einfach einen Wannenstecker auf der Platine unter zu bringen. Massen habe ich ja schon eingespart, wie du auf folgenden Foto erkennen wirst.
Die Extra Masse für die Cockpit LEDs ist entfallen und die Schalteroption wurde auch gestrichen. Die Tastermasse ist geblieben damt weiter hin der Einbau im Gehäuse möglich ist und die Reedkontakt Masse allein würde jetzt auch nicht groß Platz sparen.
Aber das Programmierkabel hätte ja auf der einen Seite einen Standartanschluß für den Wannenstecker auf den Programmer und nur auf der Platinenseite ist es etwas Spezieler.
Aber ich sage mal wer in der Lage ist 7er Platine zu verlöten, der hat auch kein Problem damit die Stiftleiste an das Flachbandkabel anzulöten und im Falle des Falles gibt es ja immer hilfsbereite Leute [rolling_eyes]
Für die 7er Prototypen Platine habe ich gestern mal was in Basom getestet, was mir Bernd in der C Programmierung gezeigt hat. Ist leider oft so das man die einfachsten Dinge völlig übersieht.
Zitat Casemerker = 0
If Ptaster = 0 Then
If Dip11 = 0 Then 'DIP Schalter 1 erhöht den Casewert um Dezimal +1 Casemerker.0 = 1 End If
If Dip12 = 0 Then 'DIP Schalter 2 erhöht den Casewert +2 Casemerker.1 = 1 End If
If Dip13 = 0 Then 'DIP Schalter 3 erhöht den Casewert um Dezimal +4 Casemerker.2 = 1 End If
If Dip14 = 0 Then 'DIP Schalter 4 erhöht den Casewert um Dezimal +8 Casemerker.3 = 1 End If
End If
Als erstes wird der Wert vom Casemerker auf 0 gesetzt und wird abgefragt ob der Platinen Taster betätigt wurde. Ist dieses geschehen werden die vier DIP-Schalter nach einander Abgefragt und der Casewert ermittelt. DIP Schalter 1(+1) + 2(+2) ergeben z.b. Caswert 3 oder DIP Schalter 2(+2) + 4(+8) ergeben 10.
Somit lassen sich also 15 Unterprogramme aufrufen.
Zitat Select Case Casemerker
Case 1: Gosub Case1 'Zeitmodus aktivien Case 2: Gosub Case2 'xx Case 3: Gosub Case3 'xx Case 4: Gosub Case4 'xx Case 5: Gosub Case5 'xx Case 6: Gosub Case6 'xx Case 7: Gosub Case7 'xx Case 8: Gosub Case8 'xx Case 9: Gosub Case9 'xx Case 10: Gosub Case10 'xx Case 11: Gosub Case11 'xx Case 12: Gosub Case12 'xx Case 13: Gosub Case13 'xx Case 14: Gosub Case14 'xx Case 15: Gosub Case15 'xx Case Else
End Select
In Case 1 würde ich jetzt in diesen Beispiel das Unterprogramm zum Zeitmodus aktivieren/deaktivieren aufrufen.
ZitatCase1:
While Ptaster = 0 Waitms 10 Wend
X = Zeitmodus
Toggle X.0
If X.0 = 1 Then Print "Zeitmodus aktiviert" Zeitmodus = 1 Else Print "Zeitmodus deaktivert" Zeitmodus = 0 End If
Return[/quote]
Durch das drücken des Platinentaster und Auswerten des Casewertes bin ich in das Unterprogramm gekommen, dieser muss nun los gelassen werden damit das Programm aus der "While / Wend" Schleife heraus kommt.
Zitat While Ptaster = 0 Waitms 10 Wend
Anschließend wird aus den Speicher in den Merker X übertragen ob der Zeitmodus aktiviert (Wert = 1) oder deaktiviert ist (Wert = 0). Dann tut die Software den Zustand von ersten Bit in X (X.0) umkehren (Toggle), den hier steht der Wert jetzt drin. Also aus 1 würde 0 werden und umgekehrt 0 würde 1 werden.
Zitat X = Zeitmodus
Toggle X.0
Ist X.0 nun 1 war der Zeitmodus voher also 0 und nicht aktiviert, deswegen stimmt folgende IF Bedingung (den der ursprüngliche Wert wurde ja umgedreht).
Zitat If X.0 = 1 Then
Und dann würde in diesen Beispiel der Text "Zeitmodus aktiviert" an die Serielle Schnittstelle ausgegeben und der Zeitmodus auf 1 gesetzt (aktiv).
Zitat Print "Zeitmodus aktiviert" Zeitmodus = 1
Sollte die die If Bedingung nicht stimmen, also der Zeitmodus aktiv gewesen sein und X nun 0 sein kommt das "Else zum tragen
Der Zeitmodus wird deaktiert (0) und dieses auch wieder über die Serielle Schnittstelle gemeldet. Am Ende muss noch die If Bedingung geschlossen werden und zurück ins Hauptprogramm gesprungen werden.
End If
Return[quote]
So das war mal ein kleiner Einblick in das Bascom Programm, für die 15 möglichen Unterprogramme habe ich aktuell folgendes auf den Plan.
1 Strecke (Abstand zwischen zwei Ölvorgängen) 2 Reedkontakt Überwachungszeit (Einstellen bzw. deaktivieren der Reedüberwachung) 3 Led Anzeigezeit (Zeit wie lange die LED nach einen Pumpvorang leuchtet) 4 Impulse (Anlernen der Impulse pro Radumdrehung) 5 Tankinhalt (Anlernen eines anderen Tankinhalt) 6 Zeitmodus (Aktivieren den Zeitmodus) 7 Impulsanzeige mit der Gelben Board-LED bei ein Impuls
8 Wahlweise Automatisches aktivieren eines Notlaufprogramm 9 Datenausgabe der eingestellten Werte an die Serielle Schnittstelle 10 Datenempfang der einzustellenden Werte über Serielle Schnittstelle 11 ?? 12 ?? 13 ?? 14 ?? 15 ??
Der nächste Schritt auf dem 7er Prototypen ist erfolgt, zumindest in der Bascom programmierung [cool].
Nach dem ich mich immer wieder verwurschtelt habe, ist heute der Durchbruch erfolgt. Die Serielle Komunikation läuft endlich so wie ich das möchte.
Ich habe im Case15 jetzt den Datenmodus rein programmiert, als erstes werden die eingestellten Werte ausgegeben und an schließend abgefragt ob Werte geändert werden sollen.
Soll diesen nicht geschehen, wird der Datenmodus automatisch verlassen. Sollen Werte verändert werden, dann werden der Reihe nach abgefragt und die Eingabe auf zulässige Werte überprüft.
Der erste test ummfasst zwar noch nicht die gesamten Daten, aber das ist jetzt nur noch eine Kleinigkeit.
Die Daten Ein/Ausgabe erfolgt übrigends mit Hyperterminal, das ist auf jeden Windowsrechner vorhanden und macht das Nutzen des Datenmodus auch ohne Bascom oder C Kenntnisse möglich.
Alles was ich hier aktuell vorgestellt habe ist mit Bascom programmiert, nebenbei Versuche ich das gleiche immer mit Arduino umzusetzen.
Zu Arduino steht folgendes bei Wiki:
ZitatDie Arduino-IDE bringt einen Code-Editor mit und bindet gcc als Compiler ein. Zusätzlich werden die avr-gcc-Library und weitere Arduino-Librarys eingebunden, die die Programmierung in C und C++ stark vereinfachen.
Mein Problem ist halt das ich mit Bascom schneller klar komme und bei Arduino (C++) oft noch externe Hilfe benötige. Kann aber auch sein das wegen Basic Grundkenntnissen aus der PC Anfangszeit (Sinclar ZX81, C64) und Beruflich bedingter S5/S7 Ausbildung der Schritt zu Bascom einfacher war für mich.
Gerade was die Prozessoreinstellung betrifft und das beschreiben selbigen, ist Bascom doch deutlich einfacher. Bis ich Arduino soweit hatte, ist schon ein wenig Zeit ins Land gegangen und oft war ich kurz vorm verzweifeln.
So habe mal die 5.8 Software für die 7er Platine angepasst und noch ein kleine Bonus dazu geschrieben.
Für dieses Datenausgabe müsste man nicht mal Programmieren können, lediglich ein UART-USB Adapter (kostet 8 Euro) anschließen und WIndows Hyperterminal starten.
Die möglichkeiten sind einfach Klasse, bin gerade am überlegen ob ich den Rehoiler mal als 3 Stufen Heizgriffregler umprogrammiere .
Zitat von Dete... Die möglichkeiten sind einfach Klasse, bin gerade am überlegen ob ich den Rehoiler mal als 3 Stufen Heizgriffregler umprogrammiere .
Gehen würde es auf jeden Fall .
Wenn schon, dann stufenlos und außentemperaturgesteuert! Oder wahlweise mit drahtlosen Funk-Temperatursensoren in jedem Handschuh ...
Und bitte mit Peltier-Elementen, zum Kühlen im Sommer!
Aber mal eine andere Frage zu diesem Thema:
Wie ich hier gelesen habe, gibt es diverse Open-Source- oder Freeware, um das Programmieren zu unterstützen.
Gibt es auch entsprechende Software, die das Verhalten der Prozessoren und der angesteuerten Schaltung simulieren kann?
Ganz früher habe ich mal in Basic programmiert und mich damals am Anfang mit einem Arbeitsspeicher von 7 kB und Tonbandkassetten als Massenspeicher herumgeschlagen. Das war zuweilen sehr spannend und würde mich mit einer moderneren Programmiersprache auch wieder reizen. Nur bin ich nicht so sehr mit der Elektronik bewandert - da würde mir ein Simulationsprogramm bestimmt viele gehimmelte Bauteile ersparen ...
Also in Basom gibt es eine Prozessor Simulation, aber die ist so relativ langsam und eine komplette Schaltung kannst du damit auch nicht simulieren Zum spielen und Testen sind einfache Entwickler Boards deutlich besser geeignet, 99% Prozent aller Ideen teste ich auch als erstes auf so ein Board.