AT90S2313 und die Beleuchtung messen

Gast #156734
Lesenswert?

Hallo, bin neu bei disem Forum, komm' gleich zur Sache :
Es ist so, ich moechte einen inteligenten Lichtshalter auf dem
AT90S2313 bauen. Ich moechte aber, dass er nur das Licht kontrolliert
wenn es dunkel ist. Ich muss also irgendwie die Beleuchtung messen,
aber wie ? Ich wuerde gern den Comparator in diesem Mikrocontroller
nutzen. Weiss aber nicht genau wie ich das anstellen soll. Ich hab' ne
Shaltung gefunden, die die Lichtintensitaet mit 8bit genau auf die Leds
am I/O port liefert. Das ist aber zu kompliziert fuer mich (bin ein
Anfaenger), auserdem brauche ich keine 8 bit. Ich denke, dass 32
Helligkeitstufen ausreichen, sollten also 5bits fuellig ausreichend
sein. Hat vielleicht jemand eine einfache, und moeglichst schnelle
Methode um die Helligkeit zu messen ? Wenn es mit dem Conparator nich
klappt, dann nehme ich einen TL072 und messe es mit ihm (Shmitt
trigger). Eigentlich brauche ich nicht das Licht zu messen, es reicht
fuellig aus, wenn ich feststellen kann, ob es heller oder dunkler als
der eingestelte Wert ist. Ich bin dankbar fuer jeden Rat, Grus an Alle
Gast #156737
Lesenswert?

Vielen Dank fuer Eure Hilfe, koentet Ihr mir noch aber bitte das program
AVR400 erklaeren ? Ich meine nur, dass ich ein Anfaenger bin, und nicht
recht verstehe, wie die messung verlauft. Ich verstehe natuerlich, dass
der Kondensator durch das kurze setzen des PD2, vor der Messung entleert
werden muss, aber ich verstehe nicht wieso zum Beispiel der Timer mit
dem Wert 192 geladen werden muss. Koente mir das bitte Jemand erklearen
? Ich verstehe auch nicht woher die Formel
512*(1/f)=-R*C*ln(1-2/5)kommt. Ich bedanke mich schon im Vorhaus. Gruss
an Alle, und nochmals vielen Dank fuer Eure Hilfe
Angehängte Dateien:
Gast #156739
Lesenswert?

Leider komme ich nicht an das PDF Dokument, weil Die dort 1,30 Euro
verlangen. Das AVR400 projekt gefaellt mir recht gut, und ich deke,
dass wenn ich schon den 90S2313 benutze, dann waere die Idee mit dem
integrierten Comparator sehr gut, sogar die 6bit aufloesung ist
perfekt. Dass Problem ist, dass ich nicht so genau verstehe wie der
Hase hier laeuft. Die initialisation des Timers macht mir Kummer, und
wie shon gesagt, es wuerde mich sehr freuen, wenn mir das Jemand
erklaeren wuerde, ich verstehe naturlich, dass es schwer ist jemandem
ein recht kompliziertes Program, auf 'nem Forum zu erklaeren, trotzdem
bitte ich darum. Gruss
Gast #156742
Lesenswert?

Also gut, ich habe das AVR400 Datenblatt durchstudiert, habe aber einige
Fragen. Der Timer wird vor der Messung mit dem Wert 192 gefuettert,
wieso gerade mit 192 ? Ich weiss, dass 192, 256-64 ist, aber ich komme
trotzdem nicht weiter. Zweiter Punkt : Ich benutze einen 4 MHz Quartz,
im Datenblatt steht das ich einen 30 kOhm Resistor verwenden soll, und
einen 8,2 nF Kondensator. Mein Signaltakt dauert mit der Formel T=1/f,
also T=1/4000000 -> T=0,00000025 sekunden. Im Datenblatt wird der
Prescaler benutzt. Also mit dem Preskaler (CK/8) dauert der Takt laut
meinen Berechnungen 2 Microsekunden. Wenn ich nicht falsch liege laeuft
der Timer nach 64 takten (8bit Timer, also 192+64=256)ueber, und erzeugt
ein Interrupt, was darauf deutet, dass ein Fehler in der Messung
enstanden ist (also nach 128 Microsekunden). Stimmt's oder hab' ich
Recht ?
Denn, wen das stimmt, ist meine Frage, mit welcher Formel kann ich den
Wert des Timers berechnen, wenn ich wissen will bis wieviel er zaehlt,
wenn er zum Beispiel die Spanung im wert von 1.5Volt misst. Dass wird
bestimmt kurzer sein, als die 128 microsekunden (wenn micht nichts
tauscht, wird das etwa die Haelfte der Zeit. Koente mir das bitte
Jemand erklaeren ? Gruss an Alle, und danke shon im Vorhaus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren