Hy Jungs, ich bin noch ziemlich neu in der geschichte vom Atmel. Zur Zeit besitze ich einen Atmel8 und habe bis jetzt eine led zum blinken gebracht :P Nicht so Weltbewegend aber i.O. Nun wollte ich über den AD Port eine Spannung messen und auslesen. Die Spannung messen ist wohl nicht so das Problem, aber das auswerten. Ich habe mir in meinem Jugendlichen Leichtsinn gedacht, das ich diesen wert der Spannung über die ISP Schnittstelle wieder übertrage und mit dem PC auslese. Nur stellt sich mir die Frage wie ich das genau anstelle. Kann mir da jemand vll. ne Anleitung oder irgendwas zum lesen (Deutsch) bereitstellen. Bin wie gesagt am Anfang.
Hi, wieso über die ISP Schnittstelle? Die ist eigentlch nur zum Programmieren gedacht. Einfacher wäre es über die integrierte USART. Dann kannst du in Bascom, ich glaube mit Print, Ausgaben zum PC senden. Gruß Benedikt
genau... du musst mit
1 | var = get adc(1) 'für kanal 1 |
einer variable den adc wert zuweisen und dann
1 | print var |
den weert zum pc übertragen, vorrausgesettz du hast einen compurt am pc (ein USB2RS-232 wandler reicht auch) du kannst aber auch den adc wert drekt ohne umweg über die variable ausgeben.
1 | print get adc(1) |
Es wird aber immer nur ein wert zwischen 0 und 1023 übertagen (wenn du ihn mit 10bit initialisiert hast). also keine tatsächliche spannung. Die spannung die anliegt kannst du dir aber mit einger gebenen referenz spannung ausrechnen. Bsp.: spannung pro bit = aref / 1024 tatsächliche spannung = spannung pro bit * adc gruß Tobi
über ISP auslesen kannst Du nur, wenn Du die werte im internen EEPROM speicherst und dieses dann ausliest. Kann man so machen, ist aber eher "unüblich" Über UART wie schon bescchrieben in Bascom dann Print geht komfortabler.
du kannst auch ziemlich einfach unter Bascom ein LCD-Panel anschließen und auf diesem die werte ausgeben. dann kannst du rechnerunabhängig messen. ausserdem ist so ein LCD-teil äußerst praktisch beim programmieren, weil man darauf auch variablen usw. anzeigen lassen kann. so kann man überprüfen, was das programm grade macht.
@olli: ist auch ne möglichkeit. Doch wenn man nicht mehr soviele I/Os frei hat ist blöd. Zum debuggen ist die UART besser geeignet. Aber da hat jeder glaubich so sein eigen. @m. Müller: Wenn du willst kann ich hier mal ein bsp-code posten oder wenn du willst auch per mail schicken. Gruß Tobi
bsp. Code wäre nett :) muss ich mich gleich mal über den uart durchlesen.. wusste gar nicht wo ich überhaupt anfangen soll mit lesen etc :P danke schonmal..
Hallo, Ich habe mal einen kleinen Code zusammen gebastelt. Müsste eigentlich so laufen.
1 | '###### Hier Muss Die Init Sequenz Für Den Controller Hin ###### |
2 | |
3 | 'Baud auf 9600 setzen (standardeinstellung bei den meisten programmen) |
4 | $baud = 9600 |
5 | |
6 | 'ADC konfigurieren |
7 | 'Den prescaler ggf. selbst anpassen! imho legt der Compiler den Wert fest(optimalwert) |
8 | 'Reference auch ggf. anpassen! Jetzt ist es auf AVCC also die spannungsversorgung des ADC eingestellt. AREF wäre für eine Varaible Spannung |
9 | 'im Datenblatt steht wie hoch sie maximal und minimal sein muss |
10 | Config Adc = Sigle , Prescale = Auto , Reference = Avcc |
11 | |
12 | 'Variable für den ADC-Wert definieren |
13 | Dim Adc_wert As Integer |
14 | 'Hilfsvariable für die ausgabe |
15 | Dim I As Byte |
16 | |
17 | 'Hier beginnt das Hauptprogramm! |
18 | 'Die Ausgabe erfolgt im Sekundentakt für alle 6 Kanäle. |
19 | |
20 | Do |
21 | For I = 0 To 5 'hier beginnt die For-Next-Schleife; Sie zählt von 0-5 hoch |
22 | Adc_wert = Getadc(i) 'Der Variable wird wird der aktuelle Wert des Kanals i zugewiesen |
23 | Print "Kanal " ; I ; ": " ; Adc_wert 'Ausgabe des ADC-Wertes über die UART |
24 | Print "+++" |
25 | Next I |
26 | Wait 1 'eine Sekunde warten |
27 | Loop |
28 | |
29 | |
30 | End 'Ende vom Programm |
bei fragen einfach melden gruß Tobi
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.