Ich sollte das Board vll. zum Standart für Picaxe machen - es läßt keine Wünsche offen und gibt eine sehr einfache Handhabung, zum anderen kann man 3 in 1 Chips nutzen ;-)
Die Fragestellung war lediglich wie man das mit den vorgegebenen Mitteln machen kann - OB das jetzt so sinnvoll oder "sicher" ist .... das gehörte nicht zu beurteilen . Da muß sich Kabelratte selber fragen ob ihm das so reicht , alle etwaigen (Not) Fälle berückdichtigt sind .... nach der Fragestellung wäre das zumindest mein Vorschlag .
Ich bin ja kein Modelleisenbahnbastler , nur Programierer
Das ist son bisken Euer Problem ... das logische Denken :-(
Wenn der Zug von links komnmt , also vorwärts .... den Kontakt passiert , gehen die Lampen an - ok.
Wenn der Zug stehen bleibt , aus welchen Gründen auch immer , dann blinkt es .... blinkt es ....blinkt es ..... bis die Welt untergeht ODER der Zug endlich den 2. Kontakt erreicht ! Das Programm steckt ja inne Do Loop fest und kann nicht weiter ! Soooo lange nicht wieder kontakt ausgelöst wird.
ok, eigentlich ne ganz simple Sache .... Naubaddi , ......... wie ich schon erwähnte , neigst Du gern zu zeilenintensiven , ausgeschmückten Codes , ich hab das mal auf das wesentliche belassen.
Man kann ja immer noch das ausschmücken a la Naubaddi wie : .... wenn Sonne scheint , .... wenn Gras hoch steht , ......12 Uhr mittach ist , ......wenn Tante Emma Milch brauch , .......
symbol Kontakt_Vorwaerts = pin1 symbol Kontakt_Rueckwaerts = pin0
symbol AN = 1 symbol AUS = 0
symbol Check_Vorwaerts=b3 symbol Check_Rueckwaerts =b4
Do
if Kontakt_Vorwaerts = AN then ' wenn der Zug vorwärts fährt if Check_Vorwaerts=AUS then Check_Vorwaerts=AN pause 500 do loop until Kontakt_Vorwaerts = AUS do loop until Kontakt_Vorwaerts = AN pause 500 Check_Vorwaerts=AUS endif endif
if Kontakt_Rueckwaerts = AN then ' wenn der Zug vorwärts fährt if Check_Rueckwaerts=AUS then Check_Rueckwaerts=AN pause 500 do loop until Kontakt_Rueckwaerts = AUS do loop until Kontakt_Rueckwaerts = AN pause 500 Check_Rueckwaerts=AUS endif endif
loop end
start1:
if Check_Rueckwaerts=AN or Check_Vorwaerts=AN then pulsout c.2,500:pause 300 pulsout c.4,500:pause 300 else LED1=AUS LED2=AUS endif
Da Du ja jeweils 2 Kontakte zu einem zusammen geführt hast , brauchst du nur AUSSCHLIESSLICH EINEN Kontakt nach Deinem Prinzip !
Wenn der über den 1. Kontakt fährt passiert ja wie Du sagst NIX ! Is der also überflüssig !
Wenn der über den 2. Kontakt fährt , machst nen Wechselblinker a la 0-8-15 ........ fährt er noch mal drüber ( oder an dem paralell angeschlossenene Kontakt ) eben wieder aus !
Du hast nur 2 Eingänge in Benutzung an der Picaxe wo von Du lt. Aussage nur einen benutzt ?!
Erstens Mal habe ich mal fix Dein Layout in einen Schaltplan umgesetzt , damit man mitreden kann.
1. Der 10K an Serout macht wenig Sinn , der gehört an SerIn
2. Deine Wahl der Widerstände ist ...... sehr phantasievoll Wenn das Pulldowns an den Reedkontakten sein soll , dann nehm 10K ! An den Transistoren reichen auch 1K
3. Wie soll der Ablauf jetzt sein, bzw. was soll passieren ?
Reedkontakt EIN ... und 2 LED leuchten ... Reedkontakt AUS ... und die einen 2 gehen aus und die anderen dann an ? Wenn ja , müssen die 2. zwei ja auch irgendwann aus , spätestens nach ner Zeit 'x'
Genauso war es gedacht das man bis zu 3 Picaxe parallel fahren kann und schnell programmieren. Auch die kurzen Wege vereinfachen jetzt auch die Kommunikation zwischen den Picaxen. Ich denke auch , da ist mir nen "guter Schuss" gelungen.
Neee Du , leider nicht , da kocht so jeder sein eigenes Süppchen :-(
Da ich von ausgehe , das die meisten das 027-Axe-Kabel nutrzen ( dieses mit dem Klinkenstecker am Ende ) , dacht ich das sich jeder so nen Buchsenkabel strickt , wo es dann quasi Wurscht is wie die Anschlüsse liegen
wenn auf der Platine(Anschluss) OUT steht , heißt das , das dieser Anschluss zu den Picaxe-Out geht und demzufolge der IN (Anschluss) nach den Picaxe-In führt .
Der Anschluss OUT an der Platine muß an den IN des PC Der Anschluss IN an der Platine muß an den OUT des PC
Ja , .... Du programmierst schon erst mal recht programmcodeintensiv , das hab ich schon gemerkt
REM Zeilen kosten glücklicherweise garnix , da der Compiler sie völlig 100% ignoriert.
Ist das nicht doch ne Überlegung wert vll. doch mal die Vollversion zu nehmen ? Ich mein , der Code an sich ist schon schwer , wenn man sich dann noch auf möglichst wenig Code beschränken muss , macht das die Sache nicht einfacher
Ne du , vor den Tastern und Potis gehören Stiftleisten. Mache später mal Foddo ;-)
Pulldown ? Weiß man doch ..... Pulldown immer 10K und Pullup immer 4K7 ;-) ( hoffentlich kommt jetzt kein Neunmalkluger und behauptet hier was anderes ... )
Ich denk mal erst recht wenn man nur mit Binärdaten rumtesten muss. Also so als "Bild" vor einem spart doch gewaltig an Zeit :-) Gerade der Gesichtsausdruck an sich , kann ziemlich kompliziert werden :-(
Ich würde ja fast sagen , .... das 4 Matrix für den Mund ein wenig viel sind .... Ich denke 2 Stk (höchstens 3 Stk ) würde da auch völlig reichen ?! Der Mensch grinst ja auch nicht im Kreis ....
Allein an den Zahlen kann man das ja überhaupt nicht abschätzen , aber so ..... wenn man das mal 1:1 simuliert .... Vll. kann man sogar 2 Stk 5mm LED als Nase dem Gesicht spenden , man hat den Eindruck - da fehlt was ?
Für mich is das ne Sache von ein paar Sekunden. Wenn grafisch dir das so hin ge-klickt hast wie es sein soll , kannst das in die Zwischenablage packen und schon fertig als : Data 1,4,7,9,14,38,45 wieder mit Copy&Paste in den Code packen.
Gut , nen paar Programmierkenntnisse in Windows VB mussu halt haben , aber recht easy .
Sowas hatte ich ja mal für die Picaxe gemacht , wo man lediglich entscheidet welche Pins man für das Display nutzen will und der fertige Code kann per [einfügen] im Picaxe Editor genutzt werden.