Stoppuhr programmieren

OP #757491
Lesenswert?

Hallo,

bin neu hier nur mal zur info.

Also ich möchte eine sensorgesteuerte Stoppuhr programmieren die auch 
Wasserdicht ist für den Schwimmverein.

Habe leider bisher noch keine Programmierungserfahrung aber mit 
Elektronik kenn ich mich einigermaßen aus.
Zuerst meine Frage: Was für ein Entwicklerboard ist geeignet für meine 
Bedürfnisse und es sollte unter 100 Euro sein!!!

Perfekt wäre natürlich wenn der Start/Stopp geber Wasserdicht wäre und 
ich die Impulse per funk übertragen könnte.

#aber zur Not wäre ich auch mit einer kabelgebundenen Lösung zufrieden.

Die Impulse Start Stopp ist kein Problem ich hab Induktive/Optische 
Sensoren/Ultraschall zur verfügung bzw. kann ich die besorgen oder 
selber bauen.

Möchte nur mal wissen mit was man(n) am besten anfängt.Das ich die 
Programmierung dann selber lernen muss ist mir klar.

Vielen Dank im vorraus,

michael
#757499
Lesenswert?

@ Michael "j" (mj23)

>Also ich möchte eine sensorgesteuerte Stoppuhr programmieren die auch
>Wasserdicht ist für den Schwimmverein.

AVR-Tutorial: Uhr

>Zuerst meine Frage: Was für ein Entwicklerboard ist geeignet für meine
>Bedürfnisse und es sollte unter 100 Euro sein!!!

STK500.

>Perfekt wäre natürlich wenn der Start/Stopp geber Wasserdicht wäre und
>ich die Impulse per funk übertragen könnte.

Überwasser kein Thema. Unter Wasser sehr aufwändig.

MfG
Falk
OP #757523
Lesenswert?

Danke schon mal für den stk500 die Empfehlung hat ich von einem früheren 
Arbeitskollegen auch schon bekommen.Hab ja die Branche gewechselt. Den 
werd ich mir dann wohl mal holen und mich weiter einlesen.

Was für eine Programmiersprache hat der denn?Ist der gut zu erlernen?

Mit der Wasserfestigkeit das sehe ich nicht so als Problem eher die 
Übertragung.Hab ein Sensor nach IP68 der müsste für diese Geschichte 
geeignet sein.

Gruss

MJ
#757663
Lesenswert?

@  Michael "j" (mj23)

>Was für eine Programmiersprache hat der denn?

Wass du willst. C, Assembler, BASIC. Siehe AVR.

>Ist der gut zu erlernen?

Denk schon.

>Mit der Wasserfestigkeit das sehe ich nicht so als Problem eher die
>Übertragung.Hab ein Sensor nach IP68 der müsste für diese Geschichte
>geeignet sein.

Was soll das denn werden? Für welche Sportart?

MfG
Falk
Gast #758033
Lesenswert?

Also wenn ich das richtig kapiert habe geht's um Rundenzeiten.
Ist eine Runde zwei Bahnen, oder eine ?
Wenn zwei ist das einfachste, wenn Du einen Magneten z.B. an Deiner 
Kappe befestigst, dann an der Bande (oder wie heißt der Rand des Beckens 
?) einen REED-Kontakt und den via Kabel zum trocken liegenden Gerät.
Je nachdem wieviele Runden Du speichern willst ist eventuell noch ein 
externes EEPROM sinnvoll.
So sparst Du Dir in jedem Falle schonmal ein wasserdichtes Gehäuse.
Wenn's bei jeder geschwommenen Bahn zählen soll, entweder eine 
IR-Fernbedienung an der anderen Seite mit REED anbringen und dann an der 
Stoppuhr erkennen, oder selbst sowas basteln.
Gast #758279
Lesenswert?

Ich bin zwar jetzt kein Schwimmer,aber ich könnte mir folgende zwei 
Gründe vorstellen:

.) Eine Armbanduhr stört beim Schwimmen
.) Die gewonnenen Werte nach einer Trainingssession kann man eventuell 
aufbereiten oder analysieren.

Das wären meine Vermutungen.

Bernhard
Gast #758445
Lesenswert?

Ich finde zum einstieg reicht das Board von Pollin....

Wenn nach einiger Zeit die Erfahrungen groß genug sind kann man sich 
nach was anderem Umschauen....

Bin mit den Board immer recht gut gefahren.

Bye Rene
Gast #862775
Lesenswert?

Nabend :) !
Also bei mir gehts auch um eine Stoppuhr. Und ich will auch nicht kommen 
mit "Hilfe, wie konfigurier ich den Timer?" und so.
Ich habe im Anhang einen Quellcode angehängt. Der ist noch nicht fertig 
und ich weiß, daß er wohl auch etwas umständlich sein mag. Ich 
programmiere aber noch nicht sooo lange in C.
Zählen tut die Anzeige, um die es gaht auch schon korrekt, nur an den 
genauen Zeiten muß ich noch drehen.
JETZT aber zu meinem Problem (für das ich nicht extra nen neues Thema 
aufmachen wollte): die Anzeigen "ghosten" z.T. sehr stark. Wie, wenn man 
multiplext, beim Umschalten der Adresse aber vergisst den Datenbus leer 
zu machen, versteht ihr?
Könnt ihr vielleicht einmal über den Code gucken und evtl melden, woran 
das mit dem "ge-ghoste" liegen könnte?

Danke und bis später!
Henni_D
Angehängte Dateien:
Persönliche Seite #862790
Lesenswert?

Knackpunkt ist vermutlich (da du den Schaltplan nicht angegeben hast) 
diese Stelle:
1
  while(1)
2
  {
3

4
    for(a=0; a<=5; a++)
5
      { 
6
        // Stromzufuhr an ein Display 0..5 EIN
7
        PORTA = adresse[a];
8
        
9
        // Stromabfuhr an Segmente 1..7 des Display 0..5 auswählen
10
        PORTD = anzwert[zeiger[a]];
11

12
        // Stromzufuhr alle Displays 0..5 AUS
13
        PORTA = 0xFF;
14
      }
15
  }

Sinnvoll wäre das Umgekehrte:
1
  while(1)
2
  {
3

4
    for(a=0; a<=5; a++)
5
      { 
6
        // Stromzufuhr alle Displays 0..5 AUS
7
        PORTA = 0xFF;
8

9
        // Stromabfuhr an Segmente 1..7 des Display 0..5 auswählen
10
        PORTD = anzwert[zeiger[a]];
11

12
        // Stromzufuhr an ein Display 0..5 EIN
13
        PORTA = adresse[a];      
14
      }
15
  }
Gast #862796
Lesenswert?

Hey, cool, die Antwort kam ja superschnell!

Deinen Vorschlag habe ich umgesetzt. Aber es brachte leider nichts. Wär 
auch zu einfach gewesen ;).

Die Schaltung ist eigentlich einfach: an PORTA hängen sechs 
PNP-Transistoren, die also bei logisch-0 5V durchsteuern und die dann 
über die jeweiligen LED-Elemente nach PORTD abfließen (mit 
Vorwiderstand). Ich denke mal das Multipleexn selbst brauch ich nicht zu 
erklären oder? Hab mir auch über die Schaltung gedanken gemacht. Aber 
sooo derbe kapazitive Kopplung kann da gar nicht drin sein.

Habs auch schon probiert einfach beider Ports aus zu machen (0xFF) aber 
das brachte auch nichts. Komisch...

Henni_D
#862807
Lesenswert?

Henni_D wrote:
> Ah, ich seh grad ist ist ziehmlich genau diese Schaltung :)


Ja, diese Schaltung geistert, da Emitterschaltung.

Du gibst außerdem den Digits keine Zeit zum leuchten.
Du brauchst unbedingt nen Timerinterrupt, damit die LEDs ne zeitlang 
leuchten können und um die Pause zum Entladen der Transistoren zu haben 
(100..400Hz * Digitzahl ist optimal).


Peter
Gast #862828
Lesenswert?

Um mal auf die Hardware für's Schwimmbad zurückzukommen:

ein Rafi-Notaustaster (Wasserdicht) auf einen Vakuum-Glasheber (diese 
Saugnapf-Teile) montiert, mitsamt der wasserdichten Elektronik am Ende/ 
Anfang der Bahn 'festgesaugt', ist vom Schwimmer selbst per Anschlag 
leicht zu bedienen. Ein zweiter Taster auf dem Startblock könnte zum 
Starten ausreichen.
Ich denke nicht, dass der Bademeister was dagegen hat, wenn du mit ihm 
redest.
Gast #862853
Lesenswert?

Ok, dann nurnoch eine kleine Sache in eigener... ähm... Sache. Dann lass 
ich euch hier in Ruhe Bademeistern ;)

@Peter:
Daß die LEDs kaum Zeit haben zum leuchten weiß ich. Sie sind auch noch 
nicht ganz so hell. Aber der Code ist auch noch (lange) nicht fertig. 
Trotzdem danke für den Hinweis.
Kannst du mir denn vielleicht nochmal folgendess näher erläutern oder 
entsprechende Links schicken?

1. WARUM ist das in Emitterschaltung so mit dem Entladen der 
Transistoren?
2. Würde es helfen, wenn ich die Schaltung für npn-Transistoren umbaue 
und dann nicht-invertierte Werte nehme? Und dann lieber emitter- oder 
Kollektorschaltung?
3. Wie kommst du auf die Formel?
4. Liegt im AVR-Studio nen Fehler vor? Bei mir werden für manche 
Timer0-Register nicht alle Bits wie im Datenblatt angezeigt o_O ...

Danke nochmal an Peter und Stefan für die Antworten,
Henni_D

oh, ich seh grad, daß ich keine Basis-Widerstände hab :) ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren