hallo leute! nachdem ich mein adc problem unter Hilfe von euch gelöst habe danke hab ich ein neues problem!! aufgabenstellung: ich soll ein digitales poti so ansteuern, dass bei jedem tastendruck (zB mit taster auf stk500) sich der widerstandswert des potis verändert (bei logisch 1 bei poti ändert sich nichts, ist so definiert von hersteller; bei anlegen von 0 erhöht sich der widerstandswert um eine stufe) hat jemand mal schon so ein programm geschrieben, oder eine gute idee wie ich das realisieren kann? danke schon mal im vorraus
Mal ganz davon abgesehen, daß Du in der Lage sein solltest, einen Poetpin von 1 auf 0 wechseln zu lassen, kannst Du uns ja verraten, in welcher Programmiersprache und mit welchem Prozessor das gemacht werden soll?
ich sollte natürlich in der lage sein so etwas simples zu machen. gemacht sollte es werden mit c und einem ATmega16 da ich mit der c-programmiersprache noch nicht so bewandert bin, hab ich noch nicht viel plan von der ganzen sache!! mfg
Da Du bisher nicht darauf eingegangen bist wie das digitale Poti angebunden ist (Seriell, I2C, SPI, Parallel) würde ich allgemein mal sagen, dass Du - eine entprellte Tastaturabfrage benötigst - welche eine Variable/Register incrementiert - und diese Variable/Register dann an den Poti schickt
ich hab mir gedacht, das ich das poti einfach über einen pin zB von port c an den atmega16 anschließe... ich muss ja einfach nur den steuereingang vom poti von 1 auf 0 ziehen und schon erhöht sich der widerstandswert um einen schritt. kann ich das so machen??
Welches Poti meinst du denn??? Wenn das Datenblatt es sagt, kannst du es so machen. Günther
Genau so. Wenn Du jetzt noch weißt, welches DigiPoti Du nehmen willst, könnte man sich noch spezieller dazu äußern. Ich denke nämlich nicht, daß das Poti nur einen einzigen Steuerpin hat, oder?
Digitales Potentiometer: DS 1809Z-010 Der Widerstandsbereich von 10kOhm wird in 100 gleich große Schritte unterteilt, hierbei sind Anfangs und Endpunkt bereits inkludiert. Die Schrittweise des Potentiometers liegt also bei 100Ohm. Die Steuereingänge UC und DC verändern die „Schleiferposition“. UC erhöht die Position in Richtung Maximalwert (RH), DC verringert die Position in Richtung Minimalwert (RL). Die beiden Eingänge sind intern mit einem 100kOhm Widerstand zur Versorgung geschaltet. Soll nun die Schleiferposition verändert werden muss der der dazu vorgesehene Eingang gegen Masse geschaltet werden. Eine HIGH-LOW Folge wird als Beginn der Eingangsaktivität gewertet. Ein Einzelpuls wird im Bereich von 1ms bis 500ms gewertet, der Minimalabstand aufeinander folgender einzelner Pulse beträgt 1ms. Sollte der Eingang länger als 500ms getastet bleiben wird das Signal als kontinuierlicher Puls wahrgenommen (push and hold).
Na das sagt doch alles. Du mußt also 2 Pins an den Controller schalten und hast auch noch eine Sonderfunktion, außerdem mußt Du die Steuereingänge gegeneinander verriegeln. Einen Timer solltest Du benutzen, um die Intervallspezifikationen erfüllen zu können. Dann die oben erwähnte Tasterentprellung und dann ist´s gut. Andere Frage: was soll denn das Poti steuern? Vielleicht könnte der Controller ja dabei noch Regelaufgaben lösen (mit seinem A/D zum Beispiel)?
Die Potis steuern zB die Offsetspannung an einem Sensor-Messverstärker Fortlaufend ist gefordert, dass die Kennlinie am Ausgang des Verstärkers in eine Spannung umgewandelt wird (mit Lastwiderstand) und das diese Spannung in den ADC geschickt wird. Abhängig vom Spannungs-Wert sollen dann verschieden die LEDs lechten zB. wenn Eingangsspannung zwischen 0-0.5 Volt --> 1des LED leuchten; wenn Eingangsspannung zwischen 0.5-1 Volt --> 2des LED leuchten;... Zu oben: Für was brauch ich einen Timer, ich kann doch so oft auf die Taste drücken, bis der Wert erreicht ist?! (Mehr braucht es nicht zu können) mfg
>>Für was brauch ich einen Timer, ich kann doch so oft auf die
Taste drücken, bis der Wert erreicht ist?! (Mehr braucht es nicht zu
können)
Dann kannste die Tasten ja gleich an´s Poti benzeln und mußt den
Controller damit nicht nerven....
Nein, es ging darum, ein sauberes Programm zu entwerfen, welches die
Spezis des Potis eben genau erfüllt, dazu (und zum Entprellen der
Tasten) böte sich ein Timer an, da man damit recht komfortabel mehrere
Aufgaben lösen kann.
hi leute, schaut euch bitte mal mein werk an... kann das funktionieren?? lg helli
Das, was du als Funktion beschreibst, ist keine. Sie wird doch garnicht aufgerufen. Außerdem: Da fehlt eine main () Funktion
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.