- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 8 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 79

Thema: A/D Wandler mit mehr als 10 Bit gesucht mit 10bis16 Ports

  1. #21
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    17.04.2006
    Beiträge
    2.193
    Anzeige

    Praxistest und DIY Projekte
    2^n-faches Oversampling reicht nicht, damit gewinnst Du nur ein halbes Bit. Da Du durch Überabtastung die Energie des Quantisierungsrauschens und nicht seine Amplitude verringerst, musst Du 2^2n-mal überabtasten!
    Ob Du mit dem genannten Board was erreichst kann ich Dir nicht sagen, wenn kein systematischer Fehler eine Tendenz in die Messwerte bringt, so dass Du die Stoachastik nicht für Dich arbeiten lassen kannst, sollte es gehen.
    Ich meinte die Schaltungsauslegung für einen externen ADU-Chip.
    Der genannte Controller mit allem drum und drin kostet als komplettes Eval-Kit um die 80 Euro netto, für 300 bekommt man ein Devkit mit Echtzeitsimulator oder sowas.

  2. #22
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.04.2005
    Beiträge
    146
    Hallo Steffen,

    dein Code ist etwas unübersichtlich und nicht sehr effektiv.

    Ich würde es etwa so machen: (bitte nicht auf die Syntax achten)

    For i = 0 To 7 (Schleife für 8 ADC-Eingänge)

    Summe(i) = 0 (löschen)

    For n = 0 to 15 (Schleife für 16faches oversampling)

    Summe(i) =Summe(i)+ GetADC(i)

    next n

    Zwölfbitwert(i)=Summe(i)/4 (oder "shift right 2")

    next (I)


    Im Feld "Zwölfbitwert(i)" hast du dann die Ergebnisse aller Eingänge mit 12bit Auflösung, also 4096 Schritten,

    alles weiter hängt davon ab, was du damit machen willst.

    Gruß, Rene

  3. #23
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    44
    Beiträge
    237
    danke rene,

    ich muß sagen trotz deiner enormen anstrengen mir zu helfen fehlen mir einfach zu viele Kenntnisse um es hinzubekommen. Ich habe es jetzt mal versucht in eine Programm umzusetzen dieses wurde auch fehlerfrei kompiliert aber es kommt irgendwie nur mist dabei raus. Ich habe den Eindruck das er den analogport nun irgendwie gar nicht mehr berücksichtigt.

    Auf der RS232 spuckt er mir nun periodisch dies aus :

    565
    65
    65
    65
    65
    65
    65
    6565


    Hier ist der Code den ich versucht habe
    Code:
        ' ------------- Hier die üblichen RN-Control Anweisungen --------------
    $regfile = "m32def.dat"
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 38400
    
    
    Config Adc = Single , Prescaler = Auto
    
    Config Porta = Input                                        '
                                           ' Port A als Anlogeingang konfigurieren
    
    
    Start Adc
    
    Dim Summe(64) As Byte
    Dim I As Single
    Dim N As Single
    Dim Zwoelfbitwert(64) As Byte
    
    
    For I = 0 To 7                                              'Schleife für 8 ADC-Eingänge
    Summe(i) = 0                                                ' löschen
    For N = 0 To 15                                             ' Schleife für 16faches oversampling
    Summe(i) = Summe(i) + Getadc(i)
    Next N
    Print Zwoelfbitwert(i) = Summe(i) / 4
    
    Waitms 500
    Next I

    Vermutlich sind die Datentypen oder die Array Zuweisungen falsch.

    Gruß
    Steffen

  4. #24
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.04.2005
    Beiträge
    146
    Sowohl Summe als auch Zwölfbitwert müssen(!!!) schon Integertypen oder Word sein, Byte geht nur bis 256 Werte. Du brauchst aber min 16000!
    Dafür kannst du für N und I aber Byte nehmen.

    Lasse zum Testen die äußere Schleife weg, aslo nehme nur ein einzigen ADC Eingang.
    Gruß, Rene

  5. #25
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.04.2005
    Beiträge
    146
    Ich nochmal,

    wenn ich mich recht entsinne geht bei Bascom das hier nicht:

    Print Zwoelfbitwert(i) = Summe(i) / 4

    Du musst erst
    "Zwoelfbitwert(i) = Summe(i) / 4 " rechnen lassen dann erst:
    "print Zwoelfbitwert(i)"

    Aber lasse erstmal die (i) weg, und arbeite nur mit einem ADC,
    Gruß, Rene

  6. #26
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    44
    Beiträge
    237
    so ich habe es nochmal mit deinen Verbesserungsvorschlägen probiert aber es liefert leider keine Anzeige auf der RS232.

    Ich habe nun selber mal versucht ein Programm zu schreiben welches aus 16 Messwerten die Summe errechnet und dann durch 16 dividiert aber ob das was bringt ist mir ein Rätsel.

    Jedenfalls sieht es jetzt so aus :

    Code:
        ' ------------- Hier die üblichen RN-Control Anweisungen --------------
    $regfile = "m32def.dat"
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 38400
    
    
    Config Adc = Single , Prescaler = Auto
    
    Config Porta = Input                                        '
                                           ' Port A als Anlogeingang konfigurieren
    
    
    Start Adc
    
    Dim Summe As Word
    Dim I As Word
    Dim N As Word
    Dim Summegeteilt As Word
    Dim A As Word
    
    
    
    
    
    
    A = Getadc(0)
    Summe = 0
    
    
    For I = 0 To 15
    
    Summe = Summe + A
    
    If I = 15 Then
    
    Summegeteilt = Summe / 16
    Print "Die Summe wäre: " ; Summegeteilt
    
    
    End If
    Waitms 100
    'Print Summe
    
    
    Next I

    Ist das vom Prinzip her richtig ?

    Gruß
    Steffen

  7. #27
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.04.2005
    Beiträge
    146
    Hallo, das hier ist getestet und funktioniert einwandfrei:

    Dim I As Byte
    Dim Summe As Word
    Dim Zwoelfbit As Word
    Dim Zehnbit As Word

    Config Adc = Single , Prescaler = Auto , Reference = Avcc

    Start Adc

    Do
    Summe = 0

    For I = 0 To 15
    Zehnbit = Getadc(0)
    Summe = Summe + Zehnbit
    Next

    Zwoelfbit = Summe / 4


    Print Zwoelfbit

    Loop

  8. #28
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    44
    Beiträge
    237
    Hallo Mosi,

    danke dir für die enorme Hilfe. Nun habe ich noch eine Verständnisfrage zur Summe die du durch 4 teilst.

    Wenn ich nur den reinen Mittelwert haben möchte dann teile ich wieder durch 16 das ist klar und wenn man dann durch 4 teilt dann habe ich wohl die 4096 Werte die 12 Bit entsprechen ?

    So ganz mit dem Teilungsfaktor habe ich das noch nicht verstanden.

    Bis jetzt läuft das Programm einwandfrei. Mit den Arrays bin ich zwar nicht klar gekommen aber es geht auch ohne Arrays ganz gut.

    Gruß
    Steffen

  9. #29
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    17.04.2006
    Beiträge
    2.193
    Nein, dann hast Du einen mit vier multiplizierten 10bit-Wert, die letzten beiden bits sind Augenwischerei, selbst bei vorausgesetztem stochastischen Eingangssignal wirst Du nie 12bit-Monotonie hinbekommen.

  10. #30
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    44
    Beiträge
    237
    @shaun

    meinst du ich hätte mir die Arbeit sparen können ?

    Das ich eine Mittelwertbildung habe die mir zumindest ein paar Schwankungen kompensiert sehe ich ja ein. Ich denke das hilft zumindest nur ein klein wenig.

    Wo es gar kein Sinn machen würde ist wenn ich einen Meßwert habe der nicht schwankt da hab ich so oder so 10 Bit.

    Ich hätte ja noch die option 2 Analogeingänge gleichzeitig zu beschalten und daraus den Mittelwert zu bilden aber letztendlich vermute ich das das nur Augenwischerei ist und nichts bringt.

    Nun ja momentan habe ich das ganze Prinzip des hier vorgestellten Codes selber noch nicht 100% verstanden.

    Vieleicht kennt ja doch jemand eine eindeutige Antwort ... den Sinn und Nutzen hätte ich nun schon noch irgendwie feststellen wollen.


    Gruß
    Steffen

Seite 3 von 8 ErsteErste 12345 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen