Bascom auslesen und zum PC übertragen

Gast #1543762
Lesenswert?

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.
Gast #1543897
Lesenswert?

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
#1543919
Lesenswert?

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
Gast #1544124
Lesenswert?

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.
#1544130
Lesenswert?

@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
#1545495
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren