hallo miteinander! das thema stoppuhr wurde hier schon ausgiebig durchgekaut. ich bin blutiger anfänger in punkto mikrocontroller mit arduino. nun will ich eine stoppuhr für ein oldtimerrennen bauen, welche folgend genannte kriterien erfüllen sollte. ich erwarte keine fertige lösungen, aber ich bitte um ein grundsätzliches urteil ob das projekt realisierbar wäre und um ein paar tipps. ;-) beim genannten rennen werden die vorgaben eine viertelstunde vor rennbeginn vom veranstalter festgelegt. das rennen erstreckt sich über vier runden (manchmal auch mehr), wobei folgende vorgaben zu berücksichtigen sind. 1.runde: normale zeitmessung. 2.runde: die gemessene erste runde zählt die uhr im countdown rückwärts (piezo-schallwandler piepst im sekundentakt) 3.runde: wie runde eins, aber minus 2 sekunden 4.runde: wie runde eins, aber plus 2 sekunden das ganze würe ich mit dem arduino uno und 7-segmentanzeigen verwirklichen wollen. meine stoppuhr sollte per einknopfbedienung funktionieren.(skizze im anhang) zusammenfassung: Pushbutton drücken 1.R: t1 Puhsbutton 2.R: t2=t1 (countdown) Pushbutton 3.R: t3=t1 - 2sec Pushbutton 4.R: t4=t1 + 2sec wäre es möglich die vorgaben, die man eine viertel stunde vor rennbeginn erfährt, per parametereingabe in die stoppuhr zu programmieren? bitte um euer urteil.
Natürlich ist es möglich. Warum auch nicht. Was für Tipps hättest du gerne? Als blutiger Anfänger kannst du so ein Projekt nicht realisieren. Daher der Tipp: Werde erst zum fortgeschrittenen Anfänger bevor du an sowas denkst. Ein Projekt mit einer Anfrage im Forum zu beginnen, ist... merkwürdig. Es heißt so viel wie: "Ich kann es nicht, will es aber, also macht ihr mal". Wenn ich falsch liege, besorg dir die Hardware, und fange Schritt für Schritt an. Für Arduino gibt es sicher 7-Segment Shields. Ob man die bis zu deiner Wunschgröße ausbauen kann weiß ich nicht.Wenn nicht wirst du die Anzeige selber aufbauen müssen. Für erste Tests reichen evt. die fertigen Shields aber trotzdem. Dazu ein Taster und du bist ja schon fertig. Dann halt deine gewünschte Funktionalität Schritt für Schritt programmieren. Es gibt genug Infos, Dokus und Tutorials für Arduino im Netz. Anders geht es nicht. gruß cyblord
:
Bearbeitet durch User
Da hast du recht.Ich bin ein wenig in Zeitdruck geraten, weil wir die Stoppuhr bereits im April benötigen würde.Darum hab ich mich gleich mit einer Frage als Projektstart hinreissen lassen.Mein Arduino-Bord nennt sich UNO SMD R3.Ich habe einen Link zu einem Schaltplan, wo jedoch nicht die Anzahl der 7-Segment Anzeigen vorhanden sind.Vielleicht könnte ich diese mit ein paar Bauteilen erweitern.Würde gerne den Link einstellen, wenn es erlaubt ist?!
:
Bearbeitet durch User
Wenn du keinen besonderen Grund hast (wie Sichtbarkeit quer über den Platz) Lass das mit den 4 7-Segment Anzeigen. Benutze ein 4-zeiliges LCD und gut ists. Ist für dich einfacher, gibt es fertig und billiger wirds auch sein. Ganz abgesehen davon, dass du dann auch noch andere Informationen anzeigen kannst. Wie zb Bedienerführung, wenn die Einstellung aktualisiert werden soll, bzw. welche Zeit jetzt gerade angezeigt wird, etc. etc.
:
Bearbeitet durch User
Ich habe bei Ebay eine "Arduino 6 Digit 7 Seg SPI LCD LED Display Module with UNO MEGA2560 example Code" gesichtet.Vielleicht könnte ich das (4 Stück davon)verwenden?! Sind gut leserlich und mit Hintergrundbeleuchtung.Danke für die Antwort!
Was willste denn jetzt hören? Klar kannste die verwenden. Braucht halt jedes Display 3 Datenleitungen. Ob die aber bis April (zwei Wochen) ihren Weg von China zu Dir finden, möchte ich bezweifeln.
Sebastian "M" schrieb: > Ich habe bei Ebay eine "Arduino 6 Digit 7 Seg SPI LCD LED Display Module > with UNO MEGA2560 example Code" gesichtet.Vielleicht könnte ich das (4 > Stück davon)verwenden?! Mal ehrlich, dieses "geht das?", "kann ich das nehmen?". Musst du dir dringend abgewöhnen. Im Prinzip geht alles und du kannst alles nehmen. Das ist lediglich eine Frage der praktikabilität, der Rahmenbedingungen, deinen persönlichen Anforderungen, dem Budget, und deinem Können. An deiner Stelle würde ich das erste verfügbare Display mit 4 Zeilen nehmen und anschließen welches du finden kannst. Dann die Logik und die Anzeige programmieren. Am Ende kann man den Anzeigenteil dann immernoch auf 7-Segment oder sonstige große Anzeige umschreiben. Musst halt schön Modular programmieren. Das bügelt man sich alles leider aber nicht in 2 Wochen bei. Ich würde das Projekt mal auf April 2015 terminieren. Und bis dahin Schritt für Schritt fertigstellen. Danach hast du auch was gelernt.
:
Bearbeitet durch User
Datasheet schrieb: > Was willste denn jetzt hören? Klar kannste die verwenden. Braucht halt > jedes Display 3 Datenleitungen. Und dann kommt die spannende Frage: Gibt es für Arduino eine SPI Klasse, der man die Pins vorgeben kann und kann man davon 4 Objekte in einem Programm verwenden. :-) @TO 'Nur' weil diese Anzeige mit einer Demo geliefert wird, heißt das nicht, dass du davon 4 Stück in einem Programm benutzen kannst (ohne da gröbere Änderungen vornehmen zu müssen) und letzten Endes ist ja deine Applikation deswegen noch nicht geschrieben. Der 'Anzeigeteil' ist ja nur ein Teilaspekt der Anwendung. Gerade bei typischer Arduino Programmierung würde ich mal sagen: weniger als 10% Anteil am Gesamtprojekt. Der Teil hier > meine stoppuhr sollte per einknopfbedienung funktionieren. ist zb zu überdenken. D.h. im Klartext du hast nur einen Eingang. An diesem einen Eingang wickelst du gleichermassen Zeitmessung (Handstoppung?) und Eingabe der Vorgabezeit ab? Das nenn ich mutig. Wenn man nur 1 Eingang hat, ist selbst die Eingabe einer Vorgabezeit, nämlich so dass das ganze dann auch praktikabel ist, gar nicht so einfach.
:
Bearbeitet durch User
Das wird noch ein steiniger Weg :-P .Werde mich an deine Worte zurückerinnern @cyblord, wenn ich hoffentlich bald mehr Ahnung davon habe. ;-) Danke für die Inputs.
Sebastian "M" schrieb: > nun will ich eine stoppuhr für ein oldtimerrennen bauen, welche folgend > genannte kriterien erfüllen sollte. ich erwarte keine fertige lösungen, > aber ich bitte um ein grundsätzliches urteil ob das projekt realisierbar > wäre und um ein paar tipps. ;-) Realisierbar? Grundsätzlich ja... Sebastian "M" schrieb: > ich bin blutiger anfänger in punkto mikrocontroller mit arduino. Irgendwie fängt man immer an... Sebastian "M" schrieb: > Ich bin ein wenig in Zeitdruck geraten, weil wir die > Stoppuhr bereits im April benötigen würde. April 2014? Das wird sportlich... Ich würde Dir raten: mach es mit einem Laptop. Da hast Du erstmal nur die Software in den Griff zu bekommen, Du kannst eine Eingabemaske für Deine "Parametereingabe" machen und für die "Einknopfbedienung" nimmst Du einfach die Leertaste. Falls es ein Publikum gibt, das die Zeiten interessiert, schliesst Du einfach einen großen Monitor/Fernseher/Beamer an und fertig. Die Variante mit Arduino kannst Du ja dann immernoch bis April 2015 machen...
Denn eventuell die Vorgaben im Code ändern und kurz vor Rennbeginn mit dem Programmer auf das Board überspielen.Das ist es. ;-)
Vielleicht schickst Du mir mal per PN einen Preisvorschlag wenn ich Dir bis April so ein Ding auf AVR-Basis bauen soll... Nur eines oder gleich mehrere?
Sebastian "M" schrieb: > Denn eventuell die Vorgaben im Code ändern ? Was ist denn das für ein Müll. Die Vorgabe wird selbstverständlich NICHT im Code direkt geändert, sondern der Bediener gibt sie im Eingabemodus ein! Die Vorgabe wird einerseits dann für die Anzeigen benutzt und andererseits im EEPROM gespeichert, so dass sie beim nächsten Anschalten sofort wieder verfügbar ist. Solange bis sie vom Bediener wieder geändert wird.
Das kommt bei dir alles ziemlich unstrukturiert rüber. Fasse doch mal alle Vorgaben und Eventualitäten zusammen - und strukturiere alles wie ein Menü. Dann überlege dir eine Möglichkeit und spiele sie komplett durch, wie du zwischen den Betriebsmodi Vorgabenänderung und Betrieb wechselst, wie du in den Vorgaben den jeweils nächsten Parameter aufrufst, wie du dann in den Eingabemodus wechselst und den Parameter veränderst, wie du bei Falscheingaben abbrichst oder Eingaben beendest und wie du wieder zurück in den Betriebsmodus wechselst, um deine Bedienung wie im Ursprungspost durchzuführen. Wenn du dabei mit dem Stift auf dem Papier eine Strategie gefunden hast, wirst du wissen, ob ein Knopf reicht oder wie viele mehr du benötigst. Und genau damit hast du dann schon fast einen programmablaufplan an dem du nur noch entlangprogrammieren musst.
Sebastian "M" schrieb: > Also wird das Gerät nicht mit einem einzigen Button auskommen?!.... hm Wieviele Buttons hat der Wecker auf deinem Nachttisch? Man kann mit einem Button auskommen, wenn die Frusttoleranz des Bedieners entsprechend hoch ist. Man muss aber nicht. Ich würde mal sagen, dass 3 Buttons das vernünftige Minimum ist.
1 | Button 1: Umschalten in Eingabemodus |
2 | Weiterschalten der Einstellung: |
3 | Stunden auf Minuten, Minuten auf Sekunden |
4 | Bestätigen der Einstellung |
5 | |
6 | Button 2: Erhöhen des jeweils gerade zu verändernden Wertes |
7 | Button 3: Erniedrigen des jeweils gerade zu verändernden Wertes |
Anstelle von 3 Buttons, kann man auch einen Drehgeber mit Buttonfunktion benutzen. Dann wird die Eingabe richtig komfortabel und auch ein Bediener hat seine Freude daran, weil er intuitiv die Bedienung sofort begreift. Nachteil: Die Bauhöhe. 3 Taster kann man schön flach in ein Gehäuse einbauen, so dass einem bei einem Transport nichts passiert. Ein Drehgeber trägt da schon etwas mehr auf und steht auch aus dem Gehäuse hervor, so dass man ein wenig aufpassen muss, oder sich gehäusetechnisch etwas überlegt damit der eventuell ein wenig versenkt ist. Wo ist das Problem? Ob 1 Button oder 3, ist sowohl hardwaretechnisch als auch softwarertechnisch doch völlig egal. Die 30Cent machen das Ding auch nicht wirklich teuerer.
:
Bearbeitet durch User
ich schrieb: > Das kommt bei dir alles ziemlich unstrukturiert rüber. Vor allen Dingen die Sache mit den Zeiten. Seine Zeit 1 ist soweit klar. Die wird live gestoppt. Dazu muss es noch irgendeinen Start-Stop Mechanismus geben, den er nicht erwähnt hat. Aber gut. Soweit ist das klar. Was ist mit der Zeit 2. Jetzt zählt diese Zeit rückwärts. Soweit gut. Wird diese Rückwärtszählung irgendwie gestoppt? Was passiert, wenn die Uhr auf 0 runtergezählt hat? Was wenn sie nicht auf 0 runtergezählt hat? Interessiert das jemanden? Die Zeiten 3 und 4 sind soweit auch noch unklar. Zur in 1 ermittelten Zeit werden noch +- 2 Sekunden addiert. Gut. Und weiter? Laufen diese Zeiten? Wie laufen sie? Wird das gestoppt? Was ist wenn die Zeiten abgelaufen sind? Interessiert das wen? Was interessiert eigentlich? Die Differenz zu den Vorgabezeiten? Soll man diese Differenzen wo anzeigen? Woher wissen wir eigentlich, welche Zeit gerade die interessante ist. Gibt es da einen Bediener, der in dieser 'Uhr' auswählt, welche der 4 Zeiten gerade die laufende ist, oder laufen diese Modi automatisch ineinander über? Wann erfolgt der Übergang von einem Modus in den nächsten? Ist das, wenn eine der Uhren ihren Endwert erreicht hat oder erfolgt das auf irgendein Signal hin? Was hat es eigentlich mit der vom Veranstalter vorgegebenen Zeit auf sich. Aus der rudimentären 'Beschreibung' im ersten Posting sieht es ja eher so aus, dass im Grunde die erste Runde gestoppt wird und alle 3 weiteren Zeiten richten sich nach genau dieser Zeit (bzw. hängen davon ab). Wo kommt da jetzt die Vorgabezeit ins Spiel? Das ist alles noch sowas von unklar. Ich hätte auch gesagt: mal dir mal die Abläufe und was zu passieren hat auf einem großen Bogen Papier auf. Du kannst dazu eine ähnliche Technik benutzen, wie sie hier im Artikel Statemachine für die Beschreibung der Abläufe an einem Rollo benutzt wurde. Aber ich denke, das ganze wird so ablaufen wie meistens. Am Anfang steht der Wunsch "Ich will das bauen". Dann kommt er drauf, dass das alles nicht so einfach ist. Ein Helfer springt ein und will in Teilbereichen aushelfen und im Endeffekt macht dann der Helfer alles, inklusive dem Design einer vernünftigen Bedienung bzw. des kompletten Ablaufs, über den sich der Kunde nie vorher Gedanken gemacht hat. Dazu muss er erst mal auf den kunden einreden wie auf ein krankes Pferd, damit der einsieht, das das was er bisher hat vielleicht nett, aber nicht brauchbar ist. Von daher 'magic smoke': sei vorsichtig. Das ganze Projekt könnte ausarten. Machbar - zweifellos. Aber stell dich drauf ein, dass du erst mal aus ihm die Vorgänge rauskitzeln musst um dann erst mal einen ersten Ablauf festzulegen. Die Aufzählung der 4 Schlagworte im Eröffnungsposting, die der TO seine Anforderungen nennt, sind noch lange nicht alles und nur die Spitze des Eisbergs. Da fehlt noch einiges, was dem TO wohl klar ist (weil er schon öfter bei so einem Rennen dabei war), was du aber erst mal aus ihm rausholen musst.
:
Bearbeitet durch User
Wichtig wäre,die Stoppfunktion mit einem Knopf abwickeln zu können.Die aktive Zeitnehmung springt von einem Anzeigedisplay zum nächsten, bis man an die "Bedingungen" der vierten Runde (t4=t1 +2sec) angelangt und diese abgeschlossen hat.(Zieleinlauf-> stopp) Das wäre perfekt.Es erfolgt nebenbei sowieso eine offizielle Zeitnehmung.Das Gerät dient als Unterstützung für den Fahrer.Weil es sich hier um soetwas wie eine Präzisionsfahrt handelt, macht es die Uhr leichter an die Vorgaben heranzukommen.Danke kbuchegg für den Link über die Statemachine.Ich werde mir das mal auf der Kleinhirnrinde zergehen lassen.
:
Bearbeitet durch User
Gut, dann halt nicht. Viel Spaß noch beim Basteln, hast ja noch ein paar Tage bis April.
Leider kann ich das erste Bild nicht bearbeiten, dann würde ich es durch das jetztige ersetzten.Hier mein konkreter werdender Entwurf.Links befindet sich der Drehschalter.Damit schalte ich auf das Display 3 (ist automatisch Programmiermodus) und gebe mit den Plus- oder -Minustasten rechts neben dem Start-Stoppbutton die Parameter ein.Weiterschalten auf LED-Display 4 und wieder Parameter eingeben.Drehschalter zurück auf die Ausgansstellung (Programmiermodus aus), damit ist die Parameterprogrammierung beendet.Nun kann die Zeitmessung beginnen. 1.Druck auf Startbutton - Runde 1 wird gemessen. 2.Druck " Runde 1 im Countdown rückwärts. 3.Druck " die eingegeben Daten für Runde 3 werden eingelesen (Zeit der 1.Runde minus 2 Sekunden) und Countdown läuft runter. 4.Druck auf Startbutton....die eingegeben Daten für Runde 4 werden eingelesen (Zeit der 1.Runde plus 2 Sekunden) und Countdown läuft runter. Habe alle Teile bestellt.Hoffe dass die verwendbar sind.Nun muss ich noch am Code experimentieren. :-P
Betreffend Einknopfbedienung: Victorinox Traveller ist ein Taschenmesser mit Wecker drin. Ohne Anleitungsheft werde ich mir die Prozedur für Wecker oder Uhrzeit neu stellen nie merken können. Intuitiv ist sowas definitiv nicht. Am Gesamtkonzept lauern nach meinem Verständnis noch ein paar mehr Fallstricke: Wie unterscheidet die Stopuhr für welches der 4 Fahrzeuge die Zeit gestoppt worden ist? Vermutlich müssen auch die Startzeiten unabhängig voneinander erfasst werden können. Wie lassen sich Bedienfehler/Fehlzuordnungen in gewissen Grenzen nachträglich ausmerzen. Wenn ein Fahrzeug fertig ist, kann auf diesem Kanal ein neues Fahrzeug gestartet werden während die anderen noch unterwegs sind? Müssen evtl. Lichtschranken, Kontaktmatten o.ä. ausgewertet werden? (Die Anzeige deute ich auf 1/100 Sekunde Auflösung.) Können mehrere Fahrzeuge gleichzeitig im Ziel einfahren? Je nachdem kommen da noch Nebenthemen wie Tasterprellen, Grundlagen der EMV wenn plötzlich längere Leitungen zu Messstellen, Anzeige oder Bedienelementen gehen dazukommen. Den Kopf hängen lassen würde ich nicht. Das Ziel ist mit etwas Einsatz durchaus gut zu erreichen. Du tust aber gut daran bevor Du anfängst so genau wie irgend möglich festzulegen was Du von dem Ding an Funktionen und Eigenschaften erwartest. viel Erfolg Hauspapa
Danke für die Anregungen! Die Stoppuhr dient für die Zeiterfassung eines einzigen Fahrzeuges.Das Gerät ist mit an Bord und wird entweder vom Faher oder vom Co-Piloten bedient.Es soll eine Hilfestellung sein, um an die vom Veranstalter festgelegten Vorgaben heranzukommen. Meist erstreckt sich das Rennen über vier Runden, die Vorgaben erfährt man ca, eine viertel Stunde vor Beginn. Das mit dem Prellen hab ich auch schon gelesen.Gibts eventuell Taster oder Schalter, die solch einen Nebeneffekt nicht besitzen? Das wird noch eine harte Nuss.
Einfach einen 10nF Kondi über den Taster. Zusammen mit dem PullUp ergibt das einen schicken Tiefpass und Du brauchst Dich in der Software nicht mehr um das Prellen zu kümmern.
Da ich mich mit Renn-Messungen nicht so auskenne, würde ich aus Neugier aber gerne erfahren, wie das ganze funktioniert. Insbesondere: -warum wird in Runde 2 die Zeit von Runde 1 rückwärts gezählt ? -was hat es mit den +/- 2 Sekunden in Runde 3 und 4 auf sich ? Ich nehme an, man will in der 1. Runde eine Zeitvorgabe für sich selbst aufstellen und in den nächsten Runden immer mit dieser Zeit vergleichen. Warum dann aber die +/- 2 Sekunden ? Also es geht mir jetzt nicht um die technische Sicht auf das Ganze, sondern was nützt es dem Rennfahrer/Begleiter ? Technisch möglich ist vieles, aber dafür muss man das zugrunde liegende Problem erstmal richtig verstehen können.
Es handelt sich um eine Classic Rallye bzw. Oldtimerrennen.Ich hab mir das erklären lassen und so verstanden, dass es sich um Sonderwertungen handelt.Je nachdem wie der Veranstalter die Zeiten vorgibt.Im Beispiel soll die zweite Runde so wie die erste gefahren werden.Coundown bzw. Zeitmessung rückwärts, damit der Fahrer ungefähr weiss, wie er reagieren muss, damit er nahe an der Sollzeit ist.(Mehr Gas oder langsamer fahren). Es geht um präzises Fahren. Beim nächsten Mal kann die Vorgabe zum Beispiel so aussehn: 1.Runde normale Zeitmessung, 2.Runde wie erste. 3.Runde wie erste Runde + 6 Sekunden.4.Runde wie erste aber minus - 4 Sekunden.
Für die, die diese Art Motorsport interessiert: Google nach "Gleichmäßigkeitsrennen"
Kann ich 4 Stück "6 Digit 7 Seg SPI LCD LED Display Module" von ebay an den Arduino Uno anschliessen? Folgende Anschlüsse sind am Display vorhanden:CS,WR,DATA,GND,VCC,LED. Also 5 Pins.
Wieviel ios hat denn dein Arduino Ding? Du brauchst 4 mal Cs, 1mal Wr, 1mal Data, wenn du 4 PWM Ausgänge an die 4 mal Led+ Anschlüsse legst, kannst Du die Helligkeiten der Displays unterschiedlich regeln. Dann brauchts noch 2-4 eingänge für deine Taster. Zusammenzählen kannst Du dann aber alleine?!
Danke!Na dann bin ich mal erleichtert.Das Board hat 14 digitale I/Os, davon können sechs als PWM-Ausgänge verwendet werden und sechs analoge Eingänge.Abschreiben kann ich auch schon. ;-) Langsam fügt sich das Puzzle zusammen.
Ich habe alle Teile erhalten. Vor zwei Tagen trudelten die 4 stück Lcd Display`s ein. Leider habe ich davon keine library. Die brauch ich angeblich, um die Displays im Sketch verwenden zu können.Wenns stimmt, bekomme ich noch per mail den code. Folgende teile sind vorhanden. 1 Arduino Uno Rev.3 4 Stück 6 Digit 7 Seg SPI LCD Display Module Module No.: TB232 (Hotchip HT 1621B ) 3 Mikrotaster (2 für die Eingabe + und - , 1 für Start/Stopp) 1 Stufendrehschalter (um zwischen den displays 3 und 4 zu wechseln = gleichzeitig Eingabemodus) Nächster Schritt, zusammenfummeln der teile. :-P
Hatte bisher Angebote von mehreren "Programmieren".Leider entpuppten sich diese als Mogelpackungen.Bitte nur ernst gemeinte Zuschriften.Danke!
Sebastian "M" schrieb: > Hatte bisher Angebote von mehreren "Programmieren".Leider entpuppten > sich diese als Mogelpackungen.Bitte nur ernst gemeinte > Zuschriften.Danke! Wollten die am Ende noch Geld haben?
Noch nicht! Ich wäre ja bereit was dafür zu zahlen.Aber: "ich schau mir das an", "Kein Problem", "kann man machen" usw, usw.. und dann Funkstille.
Ist es möglich eine Taste mit mehrere Funktionen zu programmieren. Erster Druck auf den Knopf startet die erste Zeit. Zweiter Druck auf den Taster stoppt die erste Zeit und startet die zweite Zeit, und so weiter. Kann mir jemand ein Beispiel nennen, wie der Codeabschnitt aussehen kann, der auf die Anzahl des Tastendrucks und der zugehörigen Funkton verweist?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.