Hallo,
erstmal im Vorraus danke das Sie versuchen mir zu helfen.
Nun zu meinem Problem: Ich habe einen Taster über den Port PA7/ADC7 an
den Atmega32L angeschlossen. Nun möchte ich, auf meiner Platine eine Led
zu testzwecken laufenlassen. Das Problem ist allerdings die Umsetzung in
Bascom.
Ich möchte z.b. wenn ich den Taster drücke, das danach die Led an Pin
PC6 angeht. Es ist nur ein Taster an den ADC angeschlossen.
Hier einmal das Programm:
$regfile = "m32def.dat"
Config Adc = Single , Prescaler = Auto
Start Adc
Dim Sensor As Word
Sensor = Getadc(1)
Config Portc.6 = Output
Do
If Sensor > 500 Then
Portc.6 = 1
Else
Portc.6 = 0
End If
Loop
End
--------------------------------------------------------------
Vielen Dank für Ihre Hilfe.
Ps: Wenn sie noch weitere Informationen brauchen fragen sie ruhig.
Mit freundlichen Grüßen
Jannis
Do
Sensor = Getadc(1)
If Sensor > 500 Then
Portc.6 = 1
Else
Portc.6 = 0
End If
Loop
End
Hallo, vielen Dank ersteinmal für Ihre hilfe. Leider funktioniert es noch nicht. Da die gewünschte Led immer noch nicht eingeschaltet wird. Nur wenn der Atmega32l einmal an den Strom angeschlossen wird leuchtet sie kurz auf. Ist eventuell der Wert 500 falsch? Der Stromverlauf ist ja so: Eine Leitung vom ADC zum Taster und eine 5Volt Spannung die mit einem 10 Kilo-Ohm Widerstand nahezu neutralisiert wird. Wenn der Taster gedrückt wird, dann ist er mit dem Ground verbunden.
Jannis P. schrieb: > falsch? Der Stromverlauf ist ja so: Eine Leitung vom ADC zum Taster und > eine 5Volt Spannung die mit einem 10 Kilo-Ohm Widerstand nahezu > neutralisiert wird. Wenn der Taster gedrückt wird, dann ist er mit dem > Ground verbunden. neutralisiert????? Schaltplan!!! als Bild!
Ja, beim Reset Taster hat es so funktioniert. Leider bin ich nicht so bewandert in diesem Bereich. Warscheinlich hätte man sich die 5 Volt Leitung sparen können. Einfach ADC -> Taster -> Ground oder?
Hab das obige Problem jetzt gelöst.
Habe aber noch ein anderes.
Ich würde jetzt gerne mit dem Atmega32l und 7 an ADC0 angeschlossenen
Tastern die Led-Matrix steuren.
Ersteinmal der Code:
x ist der Wert den ich noch ausrechnen muss.
$regfile = "m32def.dat"
Config Portc = Output
Config Portd = Output
Config Portb = Output
Disable Jtag
Config Adc = Single , Prescaler = Auto
Start Adc
Dim Sensor As Word
Do
Sensor = Getadc(0)
If Sensor < X Then 'Taster 7
Portc.5 = 1
Portd.0 = 1
Elseif Sensor < X Then 'Taster 6
Portc.5 = 1
Portd.1 = 1
Elseif Sensor < X Then 'Taster 5
Portc.5 = 1
Portd.2 = 1
Elseif Sensor < X Then 'Taster 4
Portc.5 = 1
Portd.3 = 1
Elseif Sensor < X Then 'Taster 3
Portc.5 = 1
Portd.4 = 1
Elseif Sensor < X Then 'Taster 2
Portc.5 = 1
Portd.5 = 1
Elseif Sensor < X Then 'Taster 1
Portc.5 = 1
Portd.6 = 1
Else
Portc = 0
Portd = 0
End If
Loop
End
------------------------------------------------
Das Problem ist jetzt X auszurechnen.
Mein Netzteil hat 9V und 400mA
Spannungsregler: µA 7805 :: Spannungsregler 1,5A positiv, TO-220 bei
Ausgangsspannung: 4,8…5,2 VDC
Reichelt.de
Muss ich jetzt um X auszurechnen die am ADC Pin anliegende Spannung mal
die Versorgungsspannung (4,8 - 5,2) rechnen und das dann durch 1024
teilen?
Vielen Dank für eine Antwort.
Hab die Werte jetzt, aber es leuchtet immer nur die Led für Taster 7, wenn ich die anderen Taster drücke. Was ist im Code falsch?
1 | |
2 | $regfile = "m32def.dat" |
3 | Config Portc = Output |
4 | Config Portd = Output |
5 | Config Portb = Output |
6 | |
7 | Disable Jtag |
8 | |
9 | Config Adc = Single , Prescaler = Auto |
10 | |
11 | Start Adc |
12 | |
13 | Dim Sensor As Word |
14 | |
15 | |
16 | |
17 | |
18 | Do |
19 | |
20 | Sensor = Getadc(0) |
21 | |
22 | If Sensor < 900 Then 'Taster 7 |
23 | Portc.5 = 1 |
24 | Portd.0 = 1 |
25 | |
26 | Elseif Sensor < 750 Then 'Taster 6 |
27 | Portc.5 = 1 |
28 | Portd.1 = 1 |
29 | |
30 | Elseif Sensor < 600 Then 'Taster 5 |
31 | Portc.5 = 1 |
32 | Portd.2 = 1 |
33 | |
34 | Elseif Sensor < 450 Then 'Taster 4 |
35 | Portc.5 = 1 |
36 | Portd.3 = 1 |
37 | |
38 | Elseif Sensor < 325 Then 'Taster 3 |
39 | Portc.5 = 1 |
40 | Portd.4 = 1 |
41 | |
42 | Elseif Sensor < 175 Then 'Taster 2 |
43 | Portc.5 = 1 |
44 | Portd.5 = 1 |
45 | |
46 | Elseif Sensor < 25 Then 'Taster 1 |
47 | Portc.5 = 1 |
48 | Portd.6 = 1 |
49 | |
50 | |
51 | Else |
52 | Portc = 0 |
53 | Portd = 0 |
54 | |
55 | End If |
56 | Loop |
57 | |
58 | End |
Taster Testlauf:
1 | ' ADC 7 Taster Testlauf |
2 | |
3 | $regfile = "m32def.dat" |
4 | Config Portc = Output |
5 | Config Portd = Output |
6 | Config Portb = Output |
7 | Disable Jtag |
8 | Config Adc = Single , Prescaler = Auto |
9 | Start Adc |
10 | Dim Sensor As Integer |
11 | |
12 | Do |
13 | Portc.7 = 1 |
14 | Sensor = Getadc(0) |
15 | |
16 | If Sensor > 0 Then |
17 | |
18 | Select Case Sensor |
19 | |
20 | Case Is < 25 'Taster 1 |
21 | Portc.5 = 1 |
22 | Portd.6 = 1 |
23 | |
24 | Case Is < 175 'Taster 2 |
25 | Portc.5 = 1 |
26 | Portd.5 = 1 |
27 | |
28 | Case Is < 325 'Taster 3 |
29 | Portc.5 = 1 |
30 | Portd.4 = 1 |
31 | |
32 | Case Is < 450 'Taster 4 |
33 | Portc.5 = 1 |
34 | Portd.3 = 1 |
35 | |
36 | Case Is < 600 'Taster 5 |
37 | Portc.5 = 1 |
38 | Portd.2 = 1 |
39 | |
40 | Case Is < 750 'Taster 6 |
41 | Portc.5 = 1 |
42 | Portd.1 = 1 |
43 | |
44 | Case Is < 900 'Taster 7 |
45 | Portc.5 = 1 |
46 | Portd.0 = 1 |
47 | |
48 | End Select |
49 | End If |
50 | |
51 | Loop |
52 | End |
------------------------------------------------------------------------ Starttaster Testlauf:
1 | ' Spieleanzeige Testlauf |
2 | |
3 | $regfile = "m32def.dat" |
4 | |
5 | |
6 | Config Adc = Single , Prescaler = Auto |
7 | |
8 | Start Adc |
9 | |
10 | Dim Sensor As Integer |
11 | |
12 | |
13 | Config Portc.6 = Output |
14 | |
15 | |
16 | Do |
17 | Sensor = Getadc(7) |
18 | If Sensor < 500 Then |
19 | Portc.6 = 1 |
20 | Else |
21 | Portc.6 = 0 |
22 | End If |
23 | |
24 | Loop |
25 | |
26 | End |
------------------------------------------------------------------
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.


