Film erkennen

Ich antworte jetzt einfach mal allen zusammen als Ingrid:

Vielen Dank für die vielen tollen Tipps! Hätte wirklich nicht erwartet dass soviel Input kommt!

Bislang 1.Wahl: Lichtschranke mit Totalreflexion, entweder reflexiv oder transmissiv - da werd ich auf jeden Fall mal probieren wieviel Signal ich kriegen kann. Wäre die einfachste Methode, weil alles dafür schon da ist und die Auswertung simpel. Die Perforation scheidet leider aus, weil die dummerweise bei meinen Filmen in einem transparenten Streifen ist. Ausserdem kann ich an der Stelle kaum davon ausgehen, dass der Film

Reply to
S.Urban
Loading thread data ...

S.Urban pisze:

Da habe ich noch eine Idee, die brauchbar sein könnte: einfach ein Stück Piezokeramik mit Elektroden (und natürlich polarisiert) auf eine der Plastikscheiben kleben (eventuell vertieft). Es kann auch winzig klein sein. Darauf ein Stück glattes Metall (z.B. Halbkugel), und zwar so, dass der Film diese Fläche berührt. Das führt zu Geräuschen in dem Metallstück, die ähnlich wie bei einer Grammophonnadel zu der Entstehung von Wechselspannungen in der Scheibe führen. Es reicht jetzt, sie zu verstärken und zu detektieren, um feststellen zu können, ob der Film sich zwischen den Platten bewegt. Ich vermute, dass die Bewegung praktisch immer sein muss. Einen stehenden Film muss man nicht erkennen.

Da mich das selbst interessiert und ich zufällig über eine fertige Schaltung verfüge (für ein anderes Projekt gemacht), werde ich das in Kürze ausprobieren.

W. Bicz

formatting link

Reply to
Wiesław Bicz

Moin!

Nimm transmissiv, reflektiertes Licht zappelt wenn der Film flattert.

Gruß, Michael.

Reply to
Michael Eggert

sein=20

Wir k=F6nnen also davon ausgehen, dass im Falle, dass ein Film vorhanden ist, dieser auch l=E4uft und nicht steht.

Man lasse also den Film durch eine Gabellichtschranke laufen. Solange kein Film eingelegt ist, bleibt das Licht konstant. L=E4uft der Film, schwankt es.=20

Dann nimmst Du Deinen Atmel und schlie=DFt die Lichtschranke an einen Analogeingang an. Ein Z=E4hler wird umso schneller hochgez=E4hlt, je heftiger der Eingang schwankt. Das ermittelt man, indem man alle paar Millisekunden ein Sample nimmt und die Differenz zum vorigen Sample bildet. Der Absolutwert dieser Differenz wird zum derzeitigen Z=E4hlerstand hinzugef=FCgt. St=F6=DFt der Z=E4hler an eine obere Grenze, verbleibt er dort.=20

Gleichzeitig wird der Z=E4hler konstant =FCber die Zeit runtergez=E4hlt, allerdings so langsam, dass in der Summe die Tendenz einigermassen steil nach oben bleibt, solange der Eingang schwankt. Der Z=E4hler = st=F6=DFt folglich nach einigen Sekunden an seine obere Grenze. =20 Ist der Film zu Ende, bleibt der Eingang konstant. Es wird also nicht mehr raufgez=E4hlt. Durch das konstante Runterz=E4hlen =FCber die Zeit, kommt der Z=E4hler irgendwann bei Null an. Diese Null wird detektiert und das erzeugt die Filmende/Filmriss- Alarmmeldung. Die obere Grenze und die Runterz=E4hlkonstante sind so zu bemessen, dass wenige Sekunden des Herunterz=E4hlens ausreichen, um Null zu erreichen. Der Z=E4hler = st=F6=DFt bei Null an seine untere Grenze.

Damit ein leichtes Rauschen am Analogeingang bei fehlendem Film nicht den Alarm verhindert, detektiert der Alarm einen Wert knapp =FCber Null, (sagen wir 2). Daf=FCr muss der Z=E4hler zu Beginn etwas =FCber den Alarmwert gesetzt werden (sagen wir 4), damit er nicht gleich zu Beginn ausl=F6st.=20

Mit einem Taster am Digitaleingang des Atmel oder durch Einschalten der Versorgungsspannung wird die Schaltung scharfgstellt, sobald der =46ilm ordnungsgem=E4=DF l=E4uft und man sich entfernt. Ebenso wird der = Alarm durch diese Taste oder durch Abschalten abgestellt. Eine LED zeigt die Scharfmachung an. =20

Da kein Platz f=FCrs Einr=FCcken von Schleifen hier in der Newsgroup existiert, wurden nicht alle Feinheiten in das folgende grobe Programmierschema: implementiert:

Alarmausgang :=3D 0 "Alarm aus Z=E4hler :=3D 4 "Z=E4hler etwas =FCber Alarmgrenze = setzen Warte auf Scharfstellung AnalogAlt :=3D AnalogEin

While(1) { Z=E4hler :=3D Z=E4hler + Betrag(AnalogEin-AnalogAlt) "hochz=E4hlen Z=E4hler :=3D Z=E4hler - Konstante "runterz=E4hlen if (Z=E4hler > OGrenze) then (Z=E4hler :=3D OGrenze) "obere Z=E4hlgrenze if (Z=E4hler < O) then (Z=E4hler :=3D 0) "untere Z=E4hlgrenze if (Z=E4hler < 3) then (Alarmausgang =3D 1) "Alarm ein AnalogAlt :=3D AnalogEin "altes Sample wegwerfen =20 Warte (einige Millisekunden) }

Reply to
Paul Rosen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.