PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein Homecontrolling Projekt: erste Probleme(AD-Wandler M16)



ejbs
30.01.2006, 16:36
Hallo,

Ich versuche mich langsam aber sicher in die Elektronik einzuführen, dafür habe ich mir vorerstmal vorgenommen kleinere Dinge zu basteln.

Jedenfalls will ich gerade:

Spannung wird am AD Wandler des ATMEGA16 eingelesen, und je nach wert, leuchten so und soviele LEDs auf... Naja ich scheitere leider schon am einlesen :(

Hab leider keine Ahnung wie ich das Schalten soll.

Ich benutze das ATMEL Evaluation Board, und hier mal mein Programmcode der bisher zustande gekommen ist:



$regfile = "m16def.dat"
$framesize = 16
$swstack = 16
$hwstack = 32
$crystal = 8000000 'Quarzfrequenz
$baud = 9600

Config Pind.5 = Output
Portd.5 = 1
Config Pind.6 = Output
Portd.6 = 0
Config Adc = Single , Prescaler = Auto
Config Pina.7 = Input
Dim Ws As Word
Start Adc
Do

Ws = Getadc(7)
If Ws < 500 Then
Select Case Ws
Case 0 To 1024
Portd.6 = 1

End Select

End If
Loop
End

So, ich weiss jetzt leider auch gar nicht wie ich das schalten soll ? Was muss ich mit AREF und AVCC machen ? Ich habe bisher eig nur versucht einen Widerstand zwischen VCC und PortA7 zu schalten, aber es hat sich nichts getan :(

Vielen Dank

Mfg

x-ryder
30.01.2006, 17:07
also du musst AVCC an VCC machen, und AREF an AVCC (dann hast du im bereich 0-5V 1024 schritte) und du musst zumindest nen spannungsteiler basteln, damit du da was messen kannst, am besten nimmste nen potentiometer, klemmst die eine seite an 5V, die andere an GND, und den abgriff an PortA.7, dann kannste was messen

Martin

ejbs
30.01.2006, 17:25
also du musst AVCC an VCC machen, und AREF an AVCC (dann hast du im bereich 0-5V 1024 schritte) und du musst zumindest nen spannungsteiler basteln, damit du da was messen kannst, am besten nimmste nen potentiometer, klemmst die eine seite an 5V, die andere an GND, und den abgriff an PortA.7, dann kannste was messen

Martin

Danke erstmal für die kurze und informative hilfe, also:

Gesagt getan, brücke zwischen AREF und AVCC gebastelt, an die brücke dann VCC angeschlossen, widerstand zwischen VCC und GND geschalten, abgriff an PortA7 geknallt, nix getan, und dann bin ich wohl irgendwie ausversehen auf folgende verbindung gekommen: GND - Widerstand - PORTa7, und dann hat es mir die LED angeknallt, was eig ja passieren sollte... aber wieso passiert das wenn ich das alles an GND anschliese ? :-s

x-ryder
30.01.2006, 17:36
hast du erst wirklich nen potentiometer genommen? war das auch wirklich gnd?

ejbs
30.01.2006, 17:49
hast du erst wirklich nen potentiometer genommen? war das auch wirklich gnd?
ob das wirklich gnd is hab ich mich au gefragt, hmm sag ma muss ich denn wenn ich auf Porta7 messen will den auf 1 stellen ? oder ist das net nötig ?

Ne hab kein Potentiometer genommen *g* Der letzte is mir durchgebrannt hab keinen mehr rumliegen.

Noch ne weitere Frage, ich wollte das eig als Musik visualisierung laufen lassen, und da das ganze ja unter 5V bleiben sollte dachte ich benutze ich nen Transistor, der dementsprechend wirkt. Was könnte ich da verwenden `?

x-ryder
30.01.2006, 17:51
nein, weniger, der sollte auf input und 0

ejbs
30.01.2006, 19:44
nein, weniger, der sollte auf input und 0 ok das mit der 1 hab ich irgendwo ma gelesen 8-[ ih glaube es funktioniert jetzt allerdings naja *g* komm ich nicht so ganz dahinter, also wenn ich nur an den PORTa7 pin fasse dann leuchtet die LED auch auf *g* und ich verühre nichts anderes und bin eig gut isoliert *g*

x-ryder
30.01.2006, 19:49
tja, die sind eben etwas sehr empfindlich die pins, daher sind ja chips und schaltungen ja immer in einem gehäuse ^^ also jetzt funktioniert es ganz?
wäre ja ne schöne sache

Martin

Vitis
31.01.2006, 07:27
ähm ... bei deinem case im listing
wird der outputpin nie null, der zahlenbereich
für die adc ist insgesamt 0-1024

edit: sorry, hab das if ws<500 übersehen ...

aber. ... wo wird denn der pin auf 0 gesetzt? bei ws>501?
der select case macht keinen sinn in deinem Programm.

ejbs
31.01.2006, 18:05
ähm ... bei deinem case im listing
wird der outputpin nie null, der zahlenbereich
für die adc ist insgesamt 0-1024

edit: sorry, hab das if ws<500 übersehen ...

aber. ... wo wird denn der pin auf 0 gesetzt? bei ws>501?
der select case macht keinen sinn in deinem Programm. *g* joa der Case war übelst blöde von mir *g* hab das aber mittlerweile alles abgeändert... wenn man halt nen fehler sucht und net weiss wo, dann wurstelt man rum dann kommt sowas zustande :X

ich werd nacher mal versuchen das mit der LEd ansteuerung zu machen.... :) mfg