Hallo, Bin neu hier und hoffe hier einen Gedankenanstoß zu bekommen, Mein Vorhaben. Auf eine Modellbahn fahren Autos einen Magnetband entlang ( Carsystem) Jedes Auto hat einen Akku an Board. Diese Autos werden über eine PC Software angesteuert und somit über die Anlage gelenkt. soweit dazu. Da das ganze ja automatisch läuft sollen die Autos nun auch je nach Ladeszustand des Akkus in einen Bereich gebracht werden zu Aufladen. Ich würde dazu gerne eine Strecke auf der Anlage mit einer festen länge zB. 50 cm definieren.Am Anfang und ende der Stecke ist jeweils ein Hallsensor verbaut. Bei auslösen des ersten Sensores sollte die Zeitmessung beginnen und bei Auslösen des Zweiten Stoppen. Die gemessene Zeit muss dann mit einer Zeit verglichen werden welche ich vorher ermitteln muss und diese dann fest in der Programmierung eingtragen ist. Wenn die gemessene Zeit kürzer ist als die eingetragene sollte ein Ausgang zuschalten. Dieser gibt dann meine Software den Befehl zum Ladepause für das Auto. Ich würde mich freuen wenn jemand so eine Ähnliche Programmierung kennt; hat oder mir auch nur einen Gedankenanstoß geben könnte. lg marcel
Gast
#3237213
Bei t = ∞ ist der Akku jedenfalls leer ;) Wäre es nicht sinvoller die Spannung des Akkus zu messen und dann zu entscheiden ob geladen werden soll?
Marcel Pieroth schrieb: > Auf eine Modellbahn fahren Autos einen Magnetband entlang ( Carsystem) > Jedes Auto hat einen Akku an Board. > Diese Autos werden über eine PC Software angesteuert und somit über die > Anlage gelenkt. Das heißt, jedes Auto hat auch einen kleinen µC mit an Bord? (Ist soweit auch logisch, denn wie käme sonst BASCOM da mit ins Spiel) > Da das ganze ja automatisch läuft sollen die Autos nun auch je nach > Ladeszustand des Akkus in einen Bereich gebracht werden zu Aufladen. Soweit klar. > Ich würde dazu gerne eine Strecke auf der Anlage mit einer festen länge > zB. 50 cm definieren.Am Anfang und ende der Stecke ist jeweils ein > Hallsensor verbaut. > Bei auslösen des ersten Sensores sollte die Zeitmessung beginnen und bei > Auslösen des Zweiten Stoppen. Das ist grundsätzlich nicht so schwer, wenn du mit Timern umgehen kannst. Allerdings: wäre es nicht einfacher, die Akkuspannung ganz einfach direkt zu messen und wenn die unter einen Grenzwert fällt, dann merkt das Auto auch so, dass es zum Laden drann ist? Einziges Problem, wie kriegt der PC mit, dass das Fahrzeug zum Laden fährt. Ist natürlich ein Argument, das allerdings lösbar wäre, wenn man den Autos mehr Autonomie zugesteht. Der PC könnte das Auto zb in eine spezielle Strecke steuern lassen, in der das Auto mittels Infrarot-Übertragung seine Kennung samt aktuellen Akku-Spannungszustand an den PC übermittelt, der es dann in die Ladestrasse einplant. > Die gemessene Zeit muss dann mit einer Zeit verglichen werden welche ich > vorher ermitteln muss und diese dann fest in der Programmierung > eingtragen ist. > Wenn die gemessene Zeit kürzer ist als die eingetragene sollte ein > Ausgang zuschalten. Und was passiert dann, wenn ein Ausgang zuschaltet? > Dieser gibt dann meine Software den Befehl zum Ladepause für das Auto. Wer genau macht das? Das Auto selber, oder die PC-Software. Denn das ist jetzt nicht ganz unerheblich. Wer muss die Fahrzeit auf der Teststrecke deiner Meinung nach messen? Überhaupt hängt in dem ganzen Szenario jetzt sehr viel daran, wie die Aufgabenteilung zwischen PC und Auto zur Zeit aussieht, bzw. wie sie weiter aussehen soll.
Gast
#3237235
Falls die Autos keine µC an Board haben sollten, könnte man aller x Runden trotzdem in die "Box" fahren und dann dort die Spannung messen. Die Ladekontakte sind ja wohl 1:1 mit dem Akku verbunden, dann könnte man auch dort messen. Blos irgendwie muss der Motor ja gesteuert werden, sonst fährt das Auto ja wieder aus der Box raus..
Hi, danke für die Schnelle Antwort. Der µc sollte nicht im Auto sitzen sodern in einer kleinen Elektrnik unter der Straße welch nur die Sensoren abfragt. Deswegen kann ich die Akuspannung nicht dirket abfragen. Da ich auch die Autos nicht umbauen möchte fällt der µc an Board auch flach. Der Ausgang welcher geschaltet werden soll hat ein kleines Relais angeschlossen.Im Bereich Modellbahn gibt es Rückmeldedecoder. An denen wird an einem Eingang + angelegt und der Rückmeldeeingang Schaltet auf ein wenn dort Masse anliegt. Das wird dann weiter an die Steuerungssoftware geleitet. Die Software schaltet dann eine Weiche in der Straße und das Auto Fährt in ein Parkhaus.Dort kann es dann von hand zum Laden angesteckt werden. Dies soll auch von hand passieren und nicht automatisch da man so das Auto dirket vom Dreck befreien kann. Mit Timern kann ich noch nicht wirklich umgehen da ich erst am anfang meine Bascom Laufbahn stehe ;-) Ich hoffe das erklät auch die Aufgabenteilung PC /Auto. Man muss das ganze in 2 Systeme unterteilen welche eingentlich nicht miteinander zu tun haben. System 1 PC Software Steuert das Auto über die Strecke. Schaltet Weichen für Straßenkreuzungen etc. Das Messen soll das zweite System darstellen das so arbeitet we oben beschrieben. Das Auto löst dann die Sensoren mittel eines kleinen Magneten aus. Der Ausgang welcher das Relais schaltet verbindet die zwei Systeme in sweit das der PC eine Weiche schaltet und das Auto abbiegt. Ich hoffe das erklärt die Fragen lg marcel
Marcel Pieroth schrieb: > Der µc sollte nicht im Auto sitzen sodern in einer kleinen Elektrnik > unter der Straße welch nur die Sensoren abfragt. > Deswegen kann ich die Akuspannung nicht dirket abfragen. > Da ich auch die Autos nicht umbauen möchte fällt der µc an Board auch > flach. ok. wichtige Information. > Der Ausgang welcher geschaltet werden soll hat ein kleines Relais > angeschlossen.Im Bereich Modellbahn gibt es Rückmeldedecoder. > An denen wird an einem Eingang + angelegt und der Rückmeldeeingang > Schaltet auf ein wenn dort Masse anliegt. > Das wird dann weiter an die Steuerungssoftware geleitet. Ah. ok. Dieses 'Ausgang schalten' ist die Rückmeldung an den PC. Ebenfalls eine wichtige Information. > Die Software schaltet dann eine Weiche in der Straße und das Auto Fährt > in ein Parkhaus. Alles klar. Ab jetzt zeichnet sich da auch ein Bild ab, wie du dir das vorstellst. > Mit Timern kann ich noch nicht wirklich umgehen da ich erst am anfang > meine Bascom Laufbahn stehe ;-) Dann musst du das eben lernen. So schwer ist das nicht. Moment. Ist sicher gestellt, dass immer nur 1 Auto in der Messstrecke ist, oder können das auch mehrere sein. Wenn es nur eines ist, dann kann man auch eine Lösung, die auf Wartezeiten beruht, von einem Neuling akzeptieren. Denn wenn man nach dem überfahren des Startsensors alle 10 Millisekunden nachsieht, ob der Endesemsor überfahren wurde, und dabei mitzählt wie oft man nachsehen musste, bis das der Sensor überfahren wurde, dann kann man daraus natürlich auch die zeit berechnen. Wurde die Schleife 3000 mal wiederholt, ehe das Ausfahrtssignal kam, dann lagen zwischen Einfahrt und Ausfahrt 3000 mal 0.01 Sekunden oder eben 30 Sekunden. Und die 10 Millisekunden kannst du ja (schauder) mit einem WAITMS leicht erreichen.
Hi, Es befindet sich immer nur ein Auto im Messbereich.
Karl Heinz Buchegger schrieb: > Wenn es nur eines ist, dann kann man auch eine Lösung, die auf > Wartezeiten beruht, von einem Neuling akzeptieren. Denn wenn man nach > dem überfahren des Startsensors alle 10 Millisekunden nachsieht, ob der > Endesemsor überfahren wurde, und dabei mitzählt wie oft man nachsehen > musste, bis das der Sensor überfahren wurde, dann kann man daraus > natürlich auch die zeit berechnen. Wurde die Schleife 3000 mal > wiederholt, ehe das Ausfahrtssignal kam, dann lagen zwischen Einfahrt > und Ausfahrt 3000 mal 0.01 Sekunden oder eben 30 Sekunden. Und die 10 > Millisekunden kannst du ja (schauder) mit einem WAITMS leicht erreichen.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
ist zwar nicht ganz die feine englische Art, aber wenn der µC ausser dieser Messung sowieso nichts zu tun hat, ist es vertretbar, das so zu machen.
Hi, super danke! das ist mal ein Anfang für mich. Ich versuche das mal so in Bascom zu schreiben wie es ,hoffe ich, richtig ist. lg marcel
Interessant wäre noch das Ausgangssignal der Hallsensoren und welcher AVR es werden soll.
Ungetestet während der Werbepause hingeschmiert:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
Hi, danke für die Zeilen !! Sollte ein tiny 13 werden ! das ist schon super so. Die Hallsensoren die TLE4905 und schalten nur einen kurzen Impuls. Beim Sensor wird GND durchgeschaltet. Das Progrsamm muss ich mir mal auseinanderpfücken da ich mich noch nicht so gut in Bascom auskenne. Vielen dank
Marcel Pieroth schrieb: > Beim Sensor wird GND durchgeschaltet. Dann sollte schon alles passen. Der kurze Impuls wird im Beispiel auf eine Sekunde verlängert.
Hi @ Peter, so nun hatte ich mal Zeit zum testen. ich habe mal deine Zeilen aud nen Tiny13 aufgespielt. Über das STK 500 angeschlossen mit Taster und LED als Ausgang zum testen. aber leider passiert nichts . Mein ablauf wie ich getestet habe. Den tasten für die Zeit zu Programmieren ca 1 sec gedrückt. Dann den Tasten Halleinfahrt gedrückt ca 2 sek gewartet Dann den Hallausfahrt gedrückt. Nun solllte die LED Leuchten aber leider ohne erfolg. Woran könnte es liegen konnte an der Verdrahtung keinen Fehler feststellen und im Programm habe ich mit meinen Kentnissen auch nichts finden können. Kannst Du mir auf die Sprünge helfen?! lg marcel
Gast
#3265742
Marcel Pieroth schrieb: > Wenn die gemessene Zeit kürzer ist als die eingetragene sollte ein > Ausgang zuschalten. > > Dieser gibt dann meine Software den Befehl zum Ladepause für das Auto. Das ist m.E. falsch. Es sollte wohl heissen: Wenn die gemessene Zeit laenger ist als die eingetragene sollte... wendelsberg
Hi, Stimmt !
Eben mal auf dem Pollinboard mit einem M32 getestet, da ich keinen anderen da habe.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
Jetzt brauch man den Programmiertaster nur kurz drücken, dann wird die Zeit automatisch genommen. Anschließend der Wert gespeichert. Die Ports musst du dir wieder anpassen. Die Konstante Ohnepullups muss bei dir auf 0. Die LED signalisiert den Programmiermodus. Hast Du keine, dann das auskommentieren.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.