www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fototransistor SFH 300 an ADC vom Atmega644


Autor: Christian Hunke (thunder2002) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

mal wieder scheitere ich wohl an den einfachsten Dingen...

Ich wollte die Helligkeit mit einem Fototransistor messen, habe mir 
dafür den SFH 300 besorgt. Hab gelesen das der Emitter (langes Bein) 
Richtung GND muss. Dann hab ich ein paar Beiträge gefunden wonach es 
wohl Schaltungen gibt die diesen mit 100 Omh aber auch mit 10kOhm 
betreiben. Ich hab mitlerweile 270 Ohm, 4.7kOmh und 10kOhm getestet, das 
ist alles was ich in dem Bereich da habe. Ich habe dazu den Widerstand 
im Stromfluss vor den Fototransistor geschaltet und den Widerstand mit 
Vcc verbunden. Den Fototransistor dann an PA0 (ADC0). AVCC liegt auf VCC 
und GND unterhalb von AVCC ebenfalls auf "normalem" GND.

Wiefolgt mein Code das dann zu messen und anzuzeigen:
// enable ADC
ADCSRA |= (1<<ADEN); 
// disable ADC interrupt
ADCSRA &= ~(1<<ADIE); 
// prescaler = 110 = 64
ADCSRA |= (1<<ADPS2) | (1<<ADPS1);
ADCSRA &= ~(1<<ADPS0);
// AVCC as reference
ADMUX &= ~(1<<REFS1);
ADMUX |= (1<<REFS0);
// ADC0 as input
ADMUX &= ~(1<<MUX4);
ADMUX &= ~(1<<MUX3);
ADMUX &= ~(1<<MUX2);
ADMUX &= ~(1<<MUX1);
ADMUX &= ~(1<<MUX0);

spi_master_init();  

dogm_init();

while (1)
{
  dogm_clear();

  // start converstion
  ADCSRA |= (1<<ADSC);
  while (ADCSRA & (1<<ADSC));

  uint16_t val = ADCL;
  val += (ADCH<<8);

  char tmp[6];
  ItoA(val, &tmp);
  dogm_goto(0,0);
  dogm_print_string(tmp);

  _delay_ms(5000);
}

Ich messe leider immer 1023 als maximalwert, außer ich zieh den 
Fototransistor dann pendelt der freie pin bei ca. 110. Es ändert sich 
nichts je nach Lichtverhältnis und Widerstand :( Kann mir jemand helfen 
und sagen was ich falsch mache?

CU Chris

Autor: Mathias O. (m-obi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nutzt du nicht einen Fotowiderstand? Du willst doch messen und 
nicht sagen wann Licht da ist und wann nicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.