-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Max. Frequenz zum Messen meherer analoger Spannungen?

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von squelver
    Registriert seit
    20.07.2006
    Ort
    Hoykenkamp
    Alter
    37
    Beiträge
    2.474

    Max. Frequenz zum Messen meherer analoger Spannungen?

    Anzeige

    Ich hab da sone Idee...

    Auswertung meherer analoger Signale bzw. Spannungen an einem ADC-Kanal.

    ... und folgende Frage:

    Bis zu welcher Frequenz ist es möglich, analoge Signale bzw. Spannungsauswertungen nacheinander an einem AVR z.B. Mega168 zu messen?
    * Da geht noch was *

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Hi,

    bei den AVRs läuft der A/D-Wandler üblicherweise mit 50-200 kHz; eine 10 Bit-Wandlung benötigt 13 dieser Zyklen, also mindestens 65 μs. Wenn Du nur einen Kanal abfragst und (fälschlicherweise!) davon ausgehst, dass der AVR sonst gar nichts zu tun hat, entspricht das einer Abtastfrequenz von etwa 15kHz. Nach dem Nyquist-Shannon-Theorem kannst Du damit ein Signal von bis zu 7,5 kHz sinnvoll abtasten. Wie gesagt. das gilt für einen Kanal; wenn Du > 1 Kanal A/D-wandeln möchtest, reduziert sich die Bandbreite entsprechend. Wenn Du mit 8 Bits zufrieden bist, geht's etwas schneller.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von squelver
    Registriert seit
    20.07.2006
    Ort
    Hoykenkamp
    Alter
    37
    Beiträge
    2.474
    Naja, ich bin jetzt ja wieder am Lernen, was AVR angeht und denke, dass ich das auch schnell verstehe

    Im Grunde hab ich mir gedacht:

    - man nehme einen ATmega168 (Beispiel)
    - hat 8 Potis
    - da wäre noch 1x CD4017
    - 10 Transistoren (Beispiel)

    ...das würde wie folgt aussehen:

    - der Takt (Clock) für den CD4017 (Lauflicht-IC) kommt vom AVR
    - der CD4017 sagt dem AVR, wann er durchgezählt hat (Pin12)
    - 10 Ausgänge vom CD4017 schalten 10 Transistoren nacheinander durch und das mit einer sehr hohen Geschwindigkeit, diese geben jeweils die Spannung vom jeweiligen Poti zu dem einen ADC-PIN
    - durch einen vorherigen Testdurchlauf, weiss der AVR, von welchem Poti bei welchem Takt die Spannung anliegt

    Ist das verständlich?
    Wäre das machbar?
    * Da geht noch was *

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Hallo,

    klingt wie viel Hardware: alternativ könntest Du einen ATtiny26/261/461/861 nehmen (die haben 10 [wenn man den Reset-Pin umfunktioniert sogar 11 !] A/D-Kanäle) -- oder einen ATmega1280 (16 A/D-Kanäle!). Ich würde mit heutzutage lieber eine Lösung mit 2-3μC ausdenken als diskrete Logik... Hängt alles davon ab, wie Du die Informationen weiterverabeiten möchtest. Mit dem CD4017 könntest Du Dir die Transistoren vielleicht sogar sparen.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von squelver
    Registriert seit
    20.07.2006
    Ort
    Hoykenkamp
    Alter
    37
    Beiträge
    2.474
    Was das angeht, habe ich noch keine wirkliche Richtung, letzter Stand ist, dass ich nen ATmega168 für ein Skorpion-Bein mit 4 Potis verwende. Da ich aber gern noch Berührungssensoren und / oder Thermofühler dran hätte, würde das sehr knapp werden
    * Da geht noch was *

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    OK, bei der Mehrprozessor-Methode muss man sich eine Lösung für die Kommunikation zwischen den μCs überlegen; bei kurzen Abständen kann man den UART nehmen oder SPI oder I2C.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von squelver
    Registriert seit
    20.07.2006
    Ort
    Hoykenkamp
    Alter
    37
    Beiträge
    2.474
    Zitat Zitat von fhs
    OK, bei der Mehrprozessor-Methode muss man sich eine Lösung für die Kommunikation zwischen den μCs überlegen; bei kurzen Abständen kann man den UART nehmen oder SPI oder I2C.

    Gruß

    Fred
    Daran habe ich tatsächlich mal gedacht und versucht Infos zu bekommen, aber das zu programmieren ist noch etwas hoch (Pakete senden und so)
    * Da geht noch was *

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Der 4017 und Transistoren dazu ist relativ umständlich. Wenn man schon einen externen Multiplexer haben will, dann besser ein 4051 oder so. Für mechanisch betreiben Potis sollte das nicht Geschwindigkeitskritisch werden. Aber wenn doch, dann kann ein 2ter Controller schon etwas weiterhelfen.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von squelver
    Registriert seit
    20.07.2006
    Ort
    Hoykenkamp
    Alter
    37
    Beiträge
    2.474
    Zitat Zitat von Besserwessi
    Der 4017 und Transistoren dazu ist relativ umständlich. Wenn man schon einen externen Multiplexer haben will, dann besser ein 4051 oder so. Für mechanisch betreiben Potis sollte das nicht Geschwindigkeitskritisch werden. Aber wenn doch, dann kann ein 2ter Controller schon etwas weiterhelfen.
    Ok, danke für die Infos, dann bleibe ich lieber bei der Variante mit den meheren Controllern
    * Da geht noch was *

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Hi,

    ist gar nicht so wild; z.B. könntest Du den 9-Bit-USART-Übertragungsmodus folgendermaßen verwenden: Wenn das höchstwertige Bit gesetzt ist, enthalten die übrigen Bits die Kanalnummer; auf ein Wort mit Kanalnummer folgen ein (für 8-Bit Werte) oder zwei Datenworte (für 9-16-Bit Werte) (höchstwertiges Bit=0), die den zugehörigen Messwert enthalten. So lassen sich die Daten empfängerseitig leicht wieder zusammensetzen, zuordnen und ein ein Array ablegen. Das wäre ein sehr einfaches aber effektives Protokoll, das man natürlich noch mehr vereinfachen könnte: Beim Übertragen des ersten Messwerts ist das höchstwertige Bit (von 9 Bits) gesetzt, alle anderen Werte folgen in einer festen Reihenfolge, und der Empfänger synchronisiert sich anhand des Wortes, bei dem das Bit 8 gesetzt ist.

    Viele Grüße

    Fred
    Only entropy comes easy. - Anton Checkhov

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •