• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Welchen Wert hat mein Fotowiederstand?

Hallo zusammen,
ich hatte schon seit längerem die Idee das ich mit Hilfe eines Atmel , Fotowiederstandes und einer LCD-Anzeige mir denn Wert denn der Fotowiederstand misst anzeigen lassen will z.B. bei einem Reaktivlicht.

Bei der Schaltung habe ich den Fotowiederstand genauso wie bei meinen Reaktivlichtern angeschlossen. Er geht von VCC zum Pin 28 (ADC5) und vom Pin 28 (ADC5) geht noch ein 1MOhm Wiederstand zum GND.
Mein LCD habe ich dann ganz normal angeschlossen.

Das Programm hab ich dann unter Bascom wie Folgt geschrieben:

$regfile = "m8def.dat"
$crystal = 8000000

Dim M As Word

Config Lcdmode = Port
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto
Start Adc
Do
Cls
M = Getadc(5)
M = M
Locate 1 , 4
Lcd M
Waitms 100
Loop
End

Das Programm läuft auch soweit aber….
Irgendwie verändert sich der angezeigte Wert nicht der bleib dauerhaft bei 1023 ich dacht eigentlich das der sich zwischen 0 und 1023 bewegt. Habe ich da irgendwas übersehen??? Oder sogar einen großen Fehler gemacht?

Danke schon mal für eure Hilfe!!!
 

qByter

Geocacher
Nur eine Vermutung, aber: ADC vom Tiny13 und vom Mega8 sind recht unterschiedlich... Wenn ich mich recht entsinne hat z.B. der Tiny eine interne Referenzspannung von 1.1V, der Mega8 dagegen von 2.56V... Du wirst am Mega also andere Ergebnisse erhalten.
 

Kappler

Geowizard
Sonst probier es mal mit:
Code:
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Das benutzt die Betriebsspannung als Referenz.
Welche Referenz benutzt wird, wenn du nichts angibst, weiß ich nicht.

Die Pins für AVCC und AGND beim Mega8 hast du angeschlossen, oder?
 

Kappler

Geowizard
qByter schrieb:
Das würde dann aber auch nicht mehr den Werten vom Reaktivlicht (Tiny) entsprechen...
Wieso?
Der Spannungsteiler LDR/4,7M-Widerstand liegt zwischen Betriebsspannung und GND, somit ist die Betriebsspannung als Referenz das sinnvollste...

Ergänzung:
Ich habe mir gerade mal das Originalprogramm angeschaut - hier wird auch kein Wert für die Spannungsreferenz vorgegeben. Was benutzt Bascom denn dann als Default-Wert?

Bei mir ist auf jeden Fall auch bei nur wenig Resthelligkeit noch 1023 der Analog. Erst wenn es "richtig dunkel" wird ändert sich der Wert nach unten. Aber die Reaktivlichter funktionieren...
 

coronar

Geowizard
Nimm doch mal ein Ohmmeter und meß nach. Dann kannst Du Dir ja ausrechnen, was beim Spannungsteiler ankommt. Der, den ich zu Hause habe hat in beleuchtetem Zustand weniger als 1kOhm, zusammen mit 1MOhm ist das eine 1 zu 1000 Spannungsteilung, bei ausreichend geringer Grundspannung kammt da nicht viel an am Meßpin. Oder anders gesagt, ein zu großer Teil der Spannung fällt am Widerstand ab, daher könnte es sein, dass die Schwankung am Eingang einfach zu gering ist, damit der Prozessor etwas sinnvolles damit anfangen kann.

Ist aber nur ne Vermutung, ich kenne den ATMEL nicht.
Ich hab ein Reaktivlicht mit dem oben erwähnten Fotowiderstand und einem 1kOhm Widerstand mittels MSP 430 aufgebaut, das klappt gut. Zurzeit bringe ich ihm das Morsen bei.
 
OP
KannNix und WeissNix
Kappler schrieb:
Bei mir ist auf jeden Fall auch bei nur wenig Resthelligkeit noch 1023 der Analog. Erst wenn es "richtig dunkel" wird ändert sich der Wert nach unten. Aber die Reaktivlichter funktionieren...

also hast du die Schaltung nachgebaut und erst bei fast kompletter Dunkelheit ging der wert runter???
 
OP
KannNix und WeissNix
stonewood schrieb:
Ach ja, sicher daß ADC-Port 5 am richtigen Pin hängt?
klar Pin 28 steht zumindest im Datenblatt...



qByter schrieb:
Nur eine Vermutung, aber: ADC vom Tiny13 und vom Mega8 sind recht unterschiedlich...

Wenn das so ist wäre es doch das beste einen attiny13 messen zu lassen und denn Wert zu einen andern Chip zu schicken der diesen dann auf das LCD-Display ausgibt oder?
 

Kappler

Geowizard
Das wäre aber mit Spatzen auf Kanonen schießen...

Wenn ich dran denke, werde ich am Wochenende die Schaltung mal mit einem Mega8 nachbauen und schauen, was bei mir dabei herauskommt...
 

Kappler

Geowizard
Was mit noch gerade auffällt:

Du hast M als WORD deklariert und liest hier den ADC-Wert ein. Soweit alles richtig...

Jetzt gibts du aber mit
Code:
LCD M
diesen WORD-Wert aus.
Ich konvertiere immer zuerst den Zahlenwert in einen String und gebe dann diesen aus. Ich weiß nicht, ob der LCD-Ausgabe-Befehl ein WORD als Parameter korrekt intrpretiert. Nicht, dass hier etwas falsches ausgegeben wird.

Versuch doch mal:
Code:
...
dim ZahlString as string*5
...
...
M = getadc(5)
ZahlString = str(M)
LCD ZahlString
...
 
OP
KannNix und WeissNix
Kappler schrieb:
Was mit noch gerade auffällt:

Du hast M als WORD deklariert und liest hier den ADC-Wert ein. Soweit alles richtig...

Jetzt gibts du aber mit
Code:
LCD M
diesen WORD-Wert aus.
Ich konvertiere immer zuerst den Zahlenwert in einen String und gebe dann diesen aus. Ich weiß nicht, ob der LCD-Ausgabe-Befehl ein WORD als Parameter korrekt intrpretiert. Nicht, dass hier etwas falsches ausgegeben wird.

Versuch doch mal:
Code:
...
dim ZahlString as string*5
...
...
M = getadc(5)
ZahlString = str(M)
LCD ZahlString
...
Ok das habe ich jetzt auch ausprobiert mit gleichen Resultat der Wert bleibt immer bei 1023...
 

Kappler

Geowizard
Warum hast du den ADC 5 verwendet?
Ich habe gerade mal ins Datenblatt geschaut: ADC 4 und 5 haben nur 8 Bit Auflösung, du dürftest somit eigentlich nur Werte bis 255 auslesen können :???:.

Probiere doch einfach mal einen der anderen ADCs aus...
 

Millhouse

Geocacher
Kappler schrieb:
Ich habe gerade mal ins Datenblatt geschaut: ADC 4 und 5 haben nur 8 Bit Auflösung
Das ist Unsinn. Der Mega8 hat auf allen seinen ADC Kanälen 10Bit Auflösung. Oder ist das eine Eigenart von BASCOM? Ich persönlich würde allerdings den Nachfolger Mega88 einsetzen, der Mega8 ist doch schon ziemlich veraltet...
 

Kappler

Geowizard
Millhouse schrieb:
...Das ist Unsinn. Der Mega8 hat auf allen seinen ADC Kanälen 10Bit Auflösung...
In meinem Datenblatt steht folgendes:
2011-03-11_194546.png
Bedeutet das dann, dass zwar ein 10-Bit-Wert geliefert wird, die unteren 2 Bit aber ignoriert werden können, da sie in der Ungenauigkeit des ADC untergehen?
 

Millhouse

Geocacher
Direkt auf der ersten Seite der Datenblätter (hier die Kurzfassung http://www.atmel.com/dyn/resources/prod_documents/2486S.pdf) steht aber:

– 8-channel ADC in TQFP and QFN/MLF package
Eight Channels 10-bit Accuracy
– 6-channel ADC in PDIP package
Six Channels 10-bit Accuracy

Das macht auch Sinn, da der AtMega8 nicht 8/6 ADCs hat sondern nur einen einzigen mit vorgeschaltetem Multiplexer. Die Genauigkeit ist somit auf allen Kanälen gleich!

EDIT: Den von dir zitierten Passus kann ich im aktuellen Datasheet übrigens nicht finden. Ich vermute das sich dies auf eine ältere Silizium Version vom ATmega8 bezieht in der wohl mal ein Bug war. Die aktuellen Mega8 haben diesen Bug jedenfalls nicht.
 
OP
KannNix und WeissNix
Ok kleiner Teilerfolg!!! :D :D :D
Danke für eure HILFE :gott: :gott: :gott: :gott:

Also der Code sieht jetzt wie folgt aus....
Code:
$regfile = "m8def.dat"
$crystal = 8000000


Dim M As Word
Dim Zahlstring As String * 5


Config Lcdmode = Port
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2


Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc



Do
Cls
M = Getadc(0)
Zahlstring = Str(m)
Lcd Zahlstring
Waitms 100
Loop
End
Nun schmeisst er einen plausieblen Wert raus. JETZT stellt sich mir aber die Frage wenn ich diesen Wert nun glauben schenke und ihn für meine Reaktivenlichter nehme ist er dann der Selbe wie den, den der Attiny13 messen würde :???: :???:

Ich frage das jetzt wegen dem Abschnitt im Code: "Reference = Avcc"
Denn Vergleich stellt ja nur der Atmega8 an und nicht mein Atiny13 oder Vergleicht der Atiny automatisch mit dem VCC:???:
 

Kappler

Geowizard
Ich habe mir jetzt auch mal ein aktuelles Datenblatt von der Atmel-Seite gezogen und ziehe meine Aussage von vorhin zurück - mein Datenblatt war von 2003 und im neuen steht davon tatsächlich nichts mehr...
 
Oben