Modul Menü

Wer ist online?

Insgesamt sind 3 Besucher online: 1 registrierter, 0 unsichtbare und 2 Gäste
Der Besucherrekord liegt bei 282 Besuchern, die am 16. Nov 2013, 19:03 gleichzeitig online waren.

Mitglieder: Google [Bot]

basierend auf den aktiven Besuchern der letzten 5 Minuten

Statistik

3 Beiträge


Neuestes öffentliches Bild

  • Bild Titel: Yeti_c't-Bot
    Autor: V2
    Verfasst am: 19. Okt 2012, 16:51
    Betrachtet: 270
    Bewertung: Nicht bewertet

Geburtstage

Heute hat kein Mitglied Geburtstag kein Mitglied hat in den nächsten 3 Tagen Geburtstag

Kalender

<< Dezember 2014 >>
Mo Di Mi Do Fr Sa So
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

Fest u. Feiertage Kalender-Ereignisse
06.12. - Nikolaus
07.12. - 2. Advent
14.12. - 3. Advent
21.12. - 4. Advent
22.12. - Winteranfang
24.12. - Heiligabend
25.12. - 1. Weihnachtstag
26.12. - 2. Weihnachtstag
31.12. - Silvester

Anstehende Termine:

LDR Dynamik

Alles zum Thema Sensoren

Moderator: Moderatoren Team

LDR Dynamik

Beitragvon DoKu » 24. Mär 2006, 15:08

Hallo zusammen,

Bei mir liefern die A/D Werte für die beiden LDRs nur Werte
zwischen 0x000 (Taschenlampe) und 0x1a0 (abgedeckt).
Ich habe mal so einen Widerstand nackt vermessen und er hat zwischen
200Ohm (Taschenlampe) und >200kOhm (dunkel). Demnach sind die
Vorwiderstände R21 und R22 zu groß dimensioniert.
Ich habe mal 39kOhm parallel geschaltet und erreiche damit
A/D Werte zwischen <0x010 (hell) und 0x360 (dunkel).
Je nach Umgebungshelligkeit wäre hier vielleicht eine Jumper-bare
Lösung geschickt.

Gibt es hierzu schon Ideen?

Grüße,
Dominik
DoKu
Friends of Marvin
Friends of Marvin
 
Beiträge: 18
Registriert: 21. Mär 2006, 22:41

Beitragvon marvin » 25. Mär 2006, 14:42

Hi Dominik,

Derzeit werden die A/D Wandler mit einer internen Referenzspannung von 5V betrieben. D.h die Eingangspegel an den A/D Pins können ebenfalls im Bereich 0..5V schwanken, was dem Wertebereich 0..1023 entspricht.

Die Funktion adc_read sieht derzeit so aus:

[syntax="c"]int adc_read(uint8 channel){
int result = 0x00;

// interne Refernzspannung AVCC, rechts Ausrichtung
ADMUX= _BV(REFS0) ;//| _BV(REFS1); //|(0<<ADLAR);
[/syntax]
Man kann die interen Referenzspannung auch auf 2,56V schalten.
Damit erhöht sich die Auflösung der A/D Wandler, da jetzt der Wertebereich von 0..1023 einer Eingansspannung von 0..2,56V entspricht.

Die Funktion adc_read entsprechend geändert:

[syntax="c"]int adc_read(uint8 channel){
int result = 0x00;

// interne Refernzspannung AVCC/2, rechts Ausrichtung
ADMUX= _BV(REFS0) | _BV(REFS1); //|(0<<ADLAR);
[/syntax]

Die Änderung der Widerstandswerte ist dann hinfällig.
Allerdings gilt diese Änderung für alle A/D Wandler. Dementsprechend müssen alle Sensor Grenzwerte entsprechend angepaßt werden.
Liegt die Eingangsspannung an einem A/D Port über 2,56V, wird der Wert geklippt.

Gruß marvin
marvin
Wiki Master
Wiki Master
 
Beiträge: 429
Registriert: 18. Jan 2006, 17:21
Wohnort: Berlin

Beitragvon DoKu » 26. Mär 2006, 00:32

Danke Marvin für die Hinweise auf die Einstellbare Ref-Spannung.

Ich habe trotzdem meine Widerstände R21 und R22 durch 39k ausgetauscht.
Jetzt habe ich bei dunklem Zimmer (nur TFTs leuchten) A/D-Werte von 0x3d_.
Ich nehme an, dass der Bot in dunkleren Gegenden nicht betrieben wird.
BZW dass er den unterschied zwischen "Dunkel" und "Mensch sieht nichts mehr" nicht
erkennen können muss :)
Demnach habe ich jetzt 10Bit Auflösung für die häufigsten Helligkeiten.
("TFT-Beleuchtung" bis "direkte Taschenlampe").

Grüße,
Dominik
DoKu
Friends of Marvin
Friends of Marvin
 
Beiträge: 18
Registriert: 21. Mär 2006, 22:41


Zurück zu Sensoren

Wer ist online?

Mitglieder: Google [Bot]

cron