Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: ports.adc Kategorie: Programmierung (von ChristianK - 8.11.2004 10:12)
Als Antwort auf Re: ports.adc von krassos - 8.11.2004 6:43
Ich nutze:
C-Control II Unit, CC2-StarterBoard, OSOPT V3.0
> > ok, fangen wir noch mal von vorn an.
> >
> > man nehme:
> >
> > 1. einen Thread, welcher Dir ständig so im etwa 250ms Takt den Wert vom
> > AD Eingang einliest und am Display ausgibt.
> >
> > 2. einen Widerstand ( etwa 220k ) zwischen AD und +5V.
> > Damit ziehen wir den AD im Ruhezustand hoch.
> >
> > 3. an der Masse abgreifen und zu deinem Doppeltaster gehen.
> >
> > 4. nach deinem Doppeltaster einmal Widerstand ( etwa 3k ) und am anderen Ausgang
> > so etwa ( 5k ) anlegen. Beide Widerstände zum AD Eingang.
> >
> > probiers mal und poste das Ergebniss.
> > Du kannst auch den 220k gegen Masse ziehen, und die Spannung der Tasterwiderstände
> > holst Du dir von den +5V. Sollte auch gehen.
> >
> > Rene
> >
>
> Moin,
>
> fürs erste würde ich mal direkt, über  10k- schutzwiderstand an die Bezugspotentiale gehen und
> mir die Me�werte ansehen, die da wären 0 für Masse und 1023 für +5V.
> Wenn die stabil sind, wovon ich ausgehe, würde ich an Deinem Spannungsteiler die Taster mal durch
> Drahtbrücken ersetzen. Deine Tasten sind möglicherweise nicht sehr Kontaktsicher.
>
> mfg
> krassos

Hallo Rene und krassos

ich habe jetzt mal folgendes ausprobiert:

  for i=1...4
    {
    for n=0...12 step 6
       {
       hdt.OkTaste1 = ports.adc(2);
       rblcd.goto(i,n);
       rblcd.zahl5(hdt.OkTaste1);
      sleep 10;
      }
  }

Dann bekomme ich z. B. folgende Anzeige bei der Stop-Taste:
(der erste Wert schwankt von 400 bis 800)

476   901   902
903   902   902
903   902   902
903   451   451

Die Anzahl der Werte mit dem Sollwert für die entsprechende Taste hängen natürlich
davon ab, wie lange die entsprechende Taste gedrückt wurde. Bei extrem kurzen
Antippen der Taste erhalte ich nur 3mal den Sollwert.
Ich habe verschiedene Tasten ausprobiert,  bei der schlechtesten erhalte ich nur 1mal
den Sollwert. (Hinweis von krassos ist richtig)
Das Beste wären Tasten, die eine definierte Ein-Zeit hätten, also nicht schleifende Kontakte,
sondern mit einer "Schapp"-Charakteristik, wie man sie bei MIcro-Switches hat.
Weder bei Reichelt noch bei Conrad finde ich ausreichende Spezifikationen um zu
erkennen, welche Charakteristik die Tasten haben.

Es sieht also so aus, das ich wohl mit meiner Abfrage zu schnell bin und so  bei einer
einzigen Abfrage des AD-Portes zu einem Zeitpunkt abfrage, wo sich der Wert noch nicht stabilisiert
hat. Ob es mit einem definierten sleep funktioniert oder ob ich doch eine math.max...-Schleife
benutze, die ich bei sinkendem Wert verlasse, werde ich ausprobieren,
es sei denn, jemand hat eine bessere Idee

Danke für die Tipps.

MfG
ChristianK.




    Antwort schreiben


Antworten:

Re: ports.adc (von ChristianK - 8.11.2004 11:11)