mit welcher sprache programmierst du denn?
Martin
Hi habe an meinem Mega8 an Channel 5 des ADC einen Fotowiderstand der die helligkeit misst und damit die hintergrundbeleuchtung meines LCDs steuert, an chennel 4 + 3 wollte ich CNY 70 für die Linien verfolgung anbringen aber komischerweise verändert sich der wert von channel 4+3 wenn sich der wert an channel 5 verändert habe alle mit einem Pull Down versehen geht die werte bleiben trotzdem nicht auf null hoffe ihr könnt mir helfen
-Maik
mit welcher sprache programmierst du denn?
Martin
Wäre schön, wenn du eine kleine Skizze machen könntest und den Quellcode posten könntest (ich hoffe Bascom )
Generell sollte das eigentlich nicht passieren.
MFG Moritz
Also mein Code in [flash width=100 height=100]Bascom [/flash]schaut so aus:
und meine Schaltung so... es soll channel 5 sein an 4 und 3 hängen auch 100K direkt auf gnd soll später die linien verfolgung ranCode:'$sim '----- Registrations Datei und Quartz ----- $regfile = "m8def.dat" $crystal = 4000000 'baud = 9600 '----- ----- Config Portd = Output Ddrb = &B0000011 '----- Lcd Initialisieren ----- Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.6 , Rs = Portd.7 Declare Sub Lcds '----- ADC Initialisieren ----- Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Enable Adc '----- Variablen ----- Dim A As Word , Channel0 As Byte , Channel1 As Byte , B As Word , Channel2 As Byte , C As Word , Empfang As Byte 'Enable Interrupts Cursor Off Channel0 = 5 Channel1 = 4 Channel2 = 3 Do Start Adc A = Getadc(channel0) B = Getadc(channel1) C = Getadc(channel2) Stop Adc If A < 150 Then Portb.0 = 1 Else Portb.0 = 0 End If Call Lcds Loop End Sub Lcds Cls Locate 1 , 1 Lcd "Helligkeit: " ; A Locate 2 , 1 Lcd "LS L:" ; B ; " R:" ; C 'Lcd "Empfangen: " ; Empfang Waitms 300 End Sub
Das Ding in deiner Schaltung ist aber ein Fototransistor, kein Fotowiderstand.
Ein Fototransistor lässt einen zur Lichtstärke passenden Strom passieren (wie ein Transistor, nur dass die Basis hier durch Licht aktiviert wird).
Du solltest also den Strom messen, nicht die Spannung.
Außerdem sind 100kOhm für einen Spannungsteiler (was du wohl beabsichtigt hattest) viel zu viel. Lies dir doch bitte das Kapitel über den ADC im Datenblatt des AVR durch, sonst kannst du auch gleich die Wünschelrute benutzen.
Dann würdest du nämlich u.a. über die Aussage stolpern, dass die Impedanz der Analogspannung maximal 10k betragen sollte, um verlässliche Werte zu erhalten.
Außerdem:
Bei Analogspannungen brauchst du keine "Pulldowns". Du brauchst Spannungsteiler, evtl. Operationsverstärker (für Strommessung) und ähnliches. Pulldown-Widerstände gibts nur bei digitalen Signalen, um einen definierten Zustand zu erhalten.
Der A/D-Wandler des AVR wandelt eine Spannung in einen digitalen Wert um. Ein Pulldown-Widerstand wäre da ziemlich störend.
ups. gilt natürlich nur falls du den Emitterpfeil vergessen hast (was ich annehme).Das Ding in deiner Schaltung ist aber ein Fototransistor, kein Fotowiderstand.
Lesezeichen