Hi Leute !!!
Ich möchte mit einem ATTiny45 die Umgebungshelligkeit messen und in
Abhängigkeit davon weitere Schaltvorgänge ausführen lassen. Dazu habe
ich mir zunächst einen entsprechenden Spannungsteiler aus LDR + Poti
aufgebaut, der mit Pin 7 (ADC1, PB2) des µC verbunden ist.
1 | Vcc ----------+
|
2 | +3V |
|
3 | -----
|
4 | | L |
|
5 | | D |
|
6 | | R |
|
7 | -----
|
8 | |
|
9 | +------- ADC1 (PB2)
|
10 | |
|
11 | -----
|
12 | | P |
|
13 | | o |
|
14 | | t |
|
15 | | i |
|
16 | -----
|
17 | |
|
18 | GND ----------+
|
Das Ganze ist so kalibriert, daß an PB2 folgende Spannungen meßbar sind
(mit Multimeter überprüft):
1 | > minimale Helligkeit: 0,3 V
|
2 | > mittlere (normale) Helligkeit: 0,9 V
|
3 | > maximale Helligkeit: 1,9 V
|
Mit nachfolgendem Programm (Auszug) lese ich den ADC-Wert aus.
------------------------------------------------------------------
1 | $regfile = "attiny45.dat"
|
2 | $crystal = 4000000
|
3 | $hwstack = 32
|
4 | $swstack = 5
|
5 | $framesize = 20
|
6 |
|
7 | Dim Messungen As Byte
|
8 | Dim Uldr As Long
|
9 | Dim Uldr_temp As Word
|
10 |
|
11 | Config Portb.2 = Input
|
12 | Portb.2 = 1
|
13 |
|
14 | Config Adc = Single , Prescaler = Auto , Reference = Internal_1.1
|
15 |
|
16 | For Messungen = 1 To 255
|
17 | Uldr_temp = Getadc(2)
|
18 | Uldr = Uldr + Uldr_temp
|
19 | Waitms 10
|
20 | Next Messungen
|
21 |
|
22 | Uldr = Uldr / 255
|
------------------------------------------------------------------
Leider ergibt sich für ULDR immer nur einer der 3 Werte 512, 513 bzw.
514, egal welche Umgebungshelligkeit vorherrscht. Ich hatte hier
natürlich entsprechend der nachgemessenen Spannungsunterschiede auch
deutlich unterschiedliche ADC-Werte erwartet. Wo ist hier der Fehler zu
suchen?
Grüße,
The SphereX