LED als Sensor

Gast #2093575
Lesenswert?
• ▲
▼
Hallo alle miteinander. Ich benutze eine LED, also Sensor für eine 
kleine Lichtschranke. Das Licht stammt von einer LED gleicher Bauart.
Dieses Programm wertet das ganze aus.
Es soll einfach eine weitere LED an PB0 eingeschaltet werden, wenn die 
Lichtschranke unterbrochen ist. Auf den Schwellenwert komm ich 
folgendermaßen. Am ADC Pin liegt eine Spannung von ca 0.25V an. Daraus 
ergibt sich bei einem 8bit ADC mit einer Referenz von 1.1V ca ein Wert 
von 50. Wird die Lichtschranke unterbrochen, messe ich 0.05V. 25 Müsste 
als Werte also locker ausreichen.
Problem ist: Das ganze funktioniert nicht. Ich weiß nun nicht ob ich 
beim Aufbau oder im Programm einen Fehler gemacht habe.
Vielen Dank für eure Hilfe.

ps: Controller ist ein Attiny13A

1
.include "tn13Adef.inc"
2
ldi r16, (1<<REFS0) | (1<<MUX0) | (1<<ADLAR)
3
out ADMUX, r16
4
ldi r16, (1<<ADPS2) | (1<<ADPS1) | (1<<ADEN)
5
out ADCSRA, r16
6
ldi r16, (1<<ADSC)
7
ldi r18, 0b00000001
8
ldi r19, 0
9
out DDRB, r18
10

11

12
loop0:
13
out PORTB r19
14
out ADCSRA, r16
15

16
loop1:
17
SBIC  ADCSRA, ADSC
18
rjmp loop1
19
in r17, ADCH
20
cpi r17, 25    <---- Schwellenwert
21
brlo led
22
rjmp loop0
23

24
led:
25
out PORTB, r18
26
rjmp loop0
Persönliche Seite #2093583
Lesenswert?
• ▲
▼
Rauscht wahrscheinlich zu stark oder Du sampelst zu langsam. Schonmal 
mit dem Oskar angeschaut? Und wieso verwendest Du keinen Fototransistor? 
Und das schalten zu wollen mit nur einer einizgen Messung (>= Schwelle) 
funktioniert sowieso nicht gescheit, vor allem nicht wenn Du den 
Messzeitpunkt verpasst. Will damit sagen den ADC in den "free running" 
mode und das ganze dann interrupt-basiert machen.

Kannst Dir ja mal ansehen wie ich es gemacht hab (Wassertropfen 
unterbricht die Lichtschranke). Als Lichtquelle habe ich einen Laser 
verwendet. Hat recht gut funktioniert, haette man aber wohl noch etwas 
tunen muessen.
Angehängte Dateien:

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.