Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega 32 an LM3915 anschließen
Mit einem LM3915 kann man ja Musikfrequenzen auswerten auswerten und dann z.B. Leds zum Takt aufleuchten lassen. Jetzt wollte ich fragen ob man einen LM3915 auch an einen ATMega32 anschließen kann und dann mit dem ATMega32 die Daten auswerten.
Versucht hab ichs nur war bei mir dass problem, dass der LM3915 nach Masse die Leds schaltet und nicht nach +. Jetzt müsste ich meinen ATMega so programmieren, dass er erkennt, wenn der LM3915 auf Masse schaltet.
Geht dass überhaupt? Und wenn ja wie?
Achja. Ich programmiere übrigens mit Bascom.
Nett währe eine Hilfe ( als Code) wo der ATMega 32 erkennt, dass der LM3915 nach Masse geschalten hat.
Vielen Dank
021aet04
17.10.2010, 15:04
Wie hast du ihn angeschlossen? Ob es funktioniert weiß ich nicht, da der LM3915 eigentlich zum Ansteuern von Leds gedacht ist. Hast du die Pullupwiderstände eingeschalten?
MfG Hannes
Wenn der Baustein LED's nach GND treibt musst Du nur die Internen Pull up einschalten Port(Dein Port) = 1 Und dann die Eingänge auf 0 abfragen.. If eingang = 0 Then......
Oder Du spendierst Dem Baustein externe Pull Up. dann schaltest Du mit Port(dein Port) = 0 die internen ab und fragst dann iF Eingang = 1 Then....
Gruß Richard
Ich hab den LM3915 vor die Pins des ATMega32 angeschlossen.
Also so. Hab alle anderen Leitungen mal weggelassen. Diese irritieren nur.
http://www.bilder-upload.eu/show.php?file=b5uzc22FZ8R6uFu.png
Hab mal en einfachen Code geschrieben. Die Taster sind nur die Ports wo mit dem LM3915 verbunden werden. Da diese Ports des LM3915 nach Masse ziehen.
$regfile = "m32def.dat"
$crystal = 1000000
Led1 Alias Portb.0
Led2 Alias Portb.1
Led3 Alias Portb.2
Led4 Alias Portb.3
Led5 Alias Portb.4
Taster1 Alias Portc.0
Taster2 Alias Portc.1
Taster3 Alias Portc.2
Taster4 Alias Portc.3
Taster5 Alias Portc.4
Config Portc = Input
Config Portb = Output
Portc = 1
Do
If Taster1 = 0 Then
Led1 = 1
Else
Led1 = 0
End If
If Taster2 = 0 Then
Led2 = 1
Else
Led2 = 0
End If
If Taster3 = 0 Then
Led3 = 1
Else
Led3 = 0
End If
If Taster4 = 0 Then
Led4 = 1
Else
Led4 = 0
End If
If Taster5 = 0 Then
Led5 = 1
Else
Led5 = 0
End If
Loop
End
Würde dass so funktionieren? Währe echt nett wenn ein kurze nachricht kommen würde.
hier:
Taster1 Alias Portc.0
Taster2 Alias Portc.1
Taster3 Alias Portc.2
Taster4 Alias Portc.3
Taster5 Alias Portc.4
muss es
Taster1 Alias Pinc.0
heißen
Warum muss ich die als Pins und nicht als Ports angeben? Hab leider noch nicht soo viel Erfahrung mit AVR controllern.
Pin = Input
Port = Output.
Wenn du mit Portx.y liest, liest du den Status vom internen Pullup.
Pinx.y liest den tatsächlichen Pegel zurück.
Das mag ich an diesem Forum. Kurze, knappe und infomative antworten.
Danke.
Eventuell (nicht getestet) kann man in Bascom dieses Konstrukt
If Taster1 = 0 Then
Led1 = 1
Else
Led1 = 0
End If
noch etwas kürzen: Led1 = NOT Taster1.
Gleiches auch für LEDs/Taster 2-5.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.