| |
 |
Verfasst am: 17.02.2010, 15:34 |
|
|
| Shorty |
|
|
 |
| Anmeldungsdatum: 16.02.2010 |
| Beiträge: 4 |
|
|
|
 |
 |
 |
|
Hallo an alle
Ich habe ein paar fragen bezüglicher des ADC s.
Kann man mit dem ADC 3 Messungen gleichzeitig/nacheinander durchführen(ohne Wertverlust)?
Kann man mit dem ADC Strom (1 A) messen?
Ich möchte dann auch alle werte am LCD anzeigen.
z.B. Spannung (mV), Strom (A), Temp. (°C) und Widerstand (mOhm)
Wie kann man den Widerstand berechnen lassen?
Ich verwende SiSyAVR und mit WorkPad geht auch. Alles in ASM
Vielen Dank im vorraus |
|
|
|
|
 | |  |
Verfasst am: 18.02.2010, 9:01 |
|
|
|
Hallo Shorty,
das was du schreibst sollte jede Zeile für sich genommen ein eigener Thread hier im Forum sein. Kein Mensch bekommt das Kompendium von Messschaltungen auf einmal hier rein gepostet. Geh die sache langsam an und step by step!!!
3 Messungen kannst du nur nacheinander mit dem AVR machen. Das zu beschäftige dich im Lehrbuch einem Tutorial oder im Datenblatt mit dem ADC. Du kannst beim MK2 Board zwischen sechs ADC-Kanälen umschalten (siehe dazu ADMUX). Wichtig ist dass du nach jedem Umschalten am besten drei Samples durchführst und erst den dritten oder vierten Wert nimmst. Einen Strom kannst du natürlich messen. Dazu schaltet man einen Messwiderstand (z.B. 1 Ohm) in Reihe und misst mit dem ADC den Spannungsabfall über diesem Widerstand. Achtung hier musst du auch Schutzbeschaltung achten da evtl. die Spannungen am Messpunkt nicht auf 5V Level liegen. Den Strom berschnen und anzeigen ist dann ne Rechenaufgabe siehe dazu Spannungteilerregel und Ohmsches Gesetz ... R=U/I usw. Die Werte kannst du dann natürlich am LCD ausgeben. Hier nimmst du am besten C dort kannst du mit sprintf zum Beispiel die Ausgabe schick formatiert aufs Dislpay bringen. In SiSy hast du natürlich richtig schicke Bibliotheken mit Stringklassen und ADC-Klassen... musst nur aufpassen das dein C++ Code noch in den m8 passt
cu BT
PS: doppel-posts sind nicht ganz so üblich  |
|
|
|
|
 | |  |
Verfasst am: 02.03.2010, 16:37 |
|
|
|
Das geht auch in ASM nur mit widerstand messen denke ich kommt problemm.ADC wie ich kenne bearbeitet bis 10 bit wert 1023 ich denke das ist grob.sonst ich mache das so:[/code];--------------------------------------------------------------------
; onADC - Interrupt bei ADC Wandlung komplett
; PE: ...
; PA: ...
;--------------------------------------------------------------------
onADC:
cli
ldi r17,0
push r16
ldi r16,0b01100000 ; Port, Referenzspannung und Auflösung
out ADMUX,r16
; ADC initialisieren
ldi r16,0b11100001 ; Modus, Interrupt und Start
out ADCSRA,r16
;--- Interrupts erlauben ---
; sei
pop r16
; Beginn der Ereignisbehandlung
aulesen_1:
in r15,ADCH ; Einlesen des Analogwertes
inc r17
cpi r17,30
breq ADC_2
rjmp aulesen_1
ADC_2:
push r16
ldi r17,0
ldi r16,0b01100001 ; Port, Referenzspannung und Auflösung
out ADMUX,r16
sei
pop r16
; Beginn der Ereignisbehandlung
aulesen_2:
in r14,ADCH ; Einlesen des Analogwertes
inc r17
cpi r17,30
breq ADC_3
rjmp aulesen_2
pop r16
ADC_3:
push r16
ldi r17,0
ldi r16,0b01100010 ; Port, Referenzspannung und Auflösung
out ADMUX,r16
pop r16
sei
; Beginn der Ereignisbehandlung
aulesen_3:
in r13,ADCH ; Einlesen des Analogwertes
inc r17
cpi r17,30
breq ende
rjmp aulesen_3
pop r16
ende:
sei
ret ;Rücksprung |
|
|
|
|
 | |  |
| myAVR.de Foren-Übersicht » myAVR Workpad |
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1
|
|
|
|
|
|