Microcontroller IR Lichtsluis


Mmm... ik zou niet weten waarom de 555 niet stabiel genoeg zou zijn... Misschien dat je met grote temperatuursverschillen een probleem krijgt omdat de 555 idd met weerstandjes werkt. Maar nogmaals, ik heb hier geen problemen mee gehad.

Het principe achter het moduleren werkt als volgt:

De TSOP38 wil graag een amplitude-gemoduleerd signaal van 38 kHz ontvangen, de TSOP filtert nl. DC-spanningen, constante 38 kHz signalen en alle signalen met een andere frequentie...

Wat wil amplitude-modulatie nou eigenlijk zeggen? Bij het gebruik van de 555 is het niet veel meer dan het aan/uit schakelen van het 38 kHz signaal. De ene keer is de amplitude 5 volt (of meer... hangt af van de spanning die je op de 555 zet) en de andere keer is de amplitude 0 volt. Ik heb dit aan/uit schakelen gedaan met een frequentie van ongeveer 500 Hz. Het leuke van de TSOP is dat je deze 500 Hz direct terug ziet aan de uitgang...

Met de reset-pin van de 555 kun je zorgen dat het 38 kHz signaal 500 keer/seconde aan/uit gaat... Heel simpel eigenlijk :)

Nu kun je zeggen dat je het signaal van 38 kHz amplitude-moduleert met een frequentie van 500 Hz.

Die 500 Hz kun je bijvoorbeeld opwekken met een tweede 555 (je kunt dus een 556 nemen voor het projectje) of je wekt deze frequentie op met de microcontroller. Je zou ook met de microcontroller alles kunnen oplossen en op deze manier kunnen zorgen dat je een frequentie uitstuurt van 38 kHz, maar dat was mij toen te veel werk...

TDM-Electronics....

Ik heb ongeveer hetzelfde als jou gemaakt alleen de schakeling op deze pagina gebruikt Infrarood lichtsluis
Ik heb 2 ontvangersnaast elkaar gezet. Wanneer ontvanger 1 doorbroken werd en dan 2 dan ging iemand naar binnen en andersom naar buiten. Misschien heb je er wat aan.

Je hebt bier en je hebt Grolsch... Biertje?!

Ik wil het dus zo maken dat het op geslagen kan worden dus heb ik een uC nodig, anders kon ik volstaan met het schema van deze site...

Ik heb in eerste instantie voor de test de zender nagemaakt maar de ontvanger kan veel eenvoudiger dan daarstaat.

Maar het idee dat te gebruiken heb ik zelf al gehad, bedankt iig voor je bijdragen.

Jammer genoeg hebben Wouter en Rob nog niet gereageerd :(

Ik ben bezig me TSOP aan INT0 te koppelen, dit is PD2 (pin 3 van poort D), weet iemand of ik daar bij het instellen van me poort rekening mee dien te houden of dat als ik het als output poort heb staan ik het nog altijd als interupt kan gebruiken?

Dit werkt nu :)

Nu eens kijken of ik kan achterhalen wat de afstand is dat het IR signaal zend. Is dit te berekenen zonder 'trail eroor' metingen te doen?

[Bericht gewijzigd door Parcye op 26 januari 2004 15:52:20 ]

IR straat
Hoe ver straal IR licht uit? Is dat te meten zonder de ontvanger steeds verder en verder te zetten? Of is er een berekening voor?

Op 26 januari 2004 12:24:18 schreef Parcye:
Jammer genoeg hebben Wouter en Rob nog niet gereageerd :(

Ik? Waar zou ik op moeten reageren?

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog

Jij had me iets verteld over het generen van een blokgolf/draaggolf voor de 36kHz frequentie, ik zou hier graag meer over weten. Want ik heb nergens theorie er over gevonden die overeen kwam met wat je mij zei.

Op 28 januari 2004 16:24:37 schreef Parcye:
Want ik heb nergens theorie er over gevonden die overeen kwam met wat je mij zei.

TDM-Electronics zegt precies hetzelfde:

Wat wil amplitude-modulatie nou eigenlijk zeggen? Bij het gebruik van de 555 is het niet veel meer dan het aan/uit schakelen van het 38 kHz signaal. De ene keer is de amplitude 5 volt (of meer... hangt af van de spanning die je op de 555 zet) en de andere keer is de amplitude 0 volt. Ik heb dit aan/uit schakelen gedaan met een frequentie van ongeveer 500 Hz. Het leuke van de TSOP is dat je deze 500 Hz direct terug ziet aan de uitgang...

Lees anders de datsheet van een TSOP eens door. Op mijn winkel pagina staat de link.

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog

zoals ik het dus begrijp is het dit

36kHz:

code:

IR led-aan __  
IR led-uit   __

Dit gebeurt dan 36.000 keer per seconde

En iedere 1/500ste seconde gebeurt er

code:

IR led-aan _  
IR led-uit  ___
of
IR led-aan __ _ 
IR led-uit   _

Dus dat halverwege de puls deze wisselt in aan of in uit

of moet ik iedere keer aan - uit doen? Dan krijg je

code:

IR led-aan __  
IR led-uit   _|_

Dat je even een piek of een dal krijgt, net hoe je het uitkomt... even een onderbreking.

Of moet de 36kHz frequentie dan helemaal opnieuw beginnen?

Ik heb de datasheet voor me liggen, maar ik vind niet wat er bedoeld wordt :S

> Ik heb de datasheet voor me liggen, maar ik vind niet wat er bedoeld wordt

bijvoorbeeld p3: one of the disturbances taht are suppressed ... a continuous 38 kHz signal

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog

The data signal should fullfill the following condition:
Carrier frequency should be close to center
frequency of the bandpass (e.g. 38kHz).
Burst length should be 10 cycles/burst or longer.
After each burst which is between 10 cycles and 70
cycles a gap time of at least 14 cycles is neccessary.
For each burst which is longer than 1.8ms a
corresponding gap time is necessary at some time in
the data stream. This gap time should have at least
same length as the burst.
Up to 1400 short bursts per second can be received
continuously.

TSOP moet minimaal 10 reeksen van 01 hebben...
Na 10 tot 70 reeksen 01 moeten er minimaal 14 reeksen 0 voorbij komen
Voor iedere 01 reeks die langer duurt dan 1.8 ms, moet er 1.8ms rust zijn
En ik kan maximaal op 1400Hz reeksen 36kHz hebben.

Some examples for such disturbance signals which
are suppressed by the TSOP17.. are:
DC light (e.g. from tungsten bulb or sunlight)
Continuous signal at 38kHz or at any other
frequency
Signals from fluorescent lamps with electronic
ballast (an example of the signal modulation is in the
figure below).

Hij kan 38kHz aan en geen last van zonlicht of van lichtgevende bronnen uit filteren.

Oke, dus ik heb het nu zo...

Om 1mSec een keers 36kHz en een reeks niets en een reeks 36kHz...

dit is dus 1000Hz...

Maar ik wil dus me TSOP aan me interupt koppelen, en die geeft dus iedere mSec een intrupt, en niet bij het onderbreken. Dus nu zit ik daar met een probleem.

Ik snap nu wat er bedoelt wordt maar interperteerde het steeds anders.

code:

_ _ _ _      _ _ _ _
 _ _ _ ______ _ _ _
       .     .

De . is een msec, dit is dus nu mijn signaal. En mijn trupt trigger dus ook bij de . en dat moet juist bij de onderbreking van het signaal...

Of moet ik eerst het signaal langer laten lopen? bijvb eerst 5minuten laten lopen voor ik verder kan?

> Of moet ik eerst het signaal langer laten lopen? bijvb eerst 5minuten laten lopen voor ik verder kan?

gewoon de hele tijd 36/38 kHz, aan/uit geschakeld op bv 1kHz. Dan krijg je een 1kHz blokgolf op de uitgang van je TSOP. Dat vind jij niet leuk. Wat krijg je als je een condensator op de uitgang van je TSOP aansluit?

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog

Hoe wil je dat dan doen met een condensator?

Een condensator houd de spanning bij en ontlaad als de spanning er af is... Dus op het moment dat er frequenties ontvangen worden laad de condensator op, frequenties uit, de condensator ontlaad... dus er is nog altijd spanning op de lijn...

Ik onderbreek de frequentie en de condensator ontlaad en er is op dat moment geen spanning meer omdat het signaal doorbroken is en omdat de concensator leeg is... maar hoe weet ik dan welke condensator het best zal werken?

code:

       R
 +-+--[]-------------o 5v
 ( |-------------+
 +-+----+        |
TSOP    |        |   C
        |        +--[]-| GND
        -        |
       GND       |
            +----+--------+
            |  AVR        |
            +-------------+

Dit is dan een ascii schema tekening... van hoe het dan zou moeten worden, maar ik vraag me af hoe weet ik welke condensator ik dan moet hebben om meteen te kunnen detecteren dat het IR signaal doorbroken is omdat er iemand doorheen loopt...

Op 29 januari 2004 00:51:29 schreef Parcye:
maar hoe weet ik dan welke condensator het best zal werken?

Rekenen, of proberen. Je kunt niet meteen detecteren, maar binnen bv 50 ms zal wel genoeg zijn denk ik. Dat zijn 50 pulsen, dus je condensator moet in combinatie met een pull-up weerstand (10k) gegarandeerd niet ontladen (tot voorbij de dremple van de uC pin) in 1 pauze, maar gegarandeerd wel in cycli = 100 pauzes. Marge genoeg lijkt me.

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog

50ms is 1/500 van een seconde, dat moet wel gedetecteerd kunnen worden als iemand er door heen loopt.

Weet je hoe je dat kan uitrekening?

Ik was al naar software oplossingen aan het zoeken. Maar hardware is natuurlijk ook een optie.

> 50ms is 1/500 van een seconde

Rekenen is niet je sterkste kant?

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog

Haha, nou eigenlijk wel (tijdens mijn studie), dit is een foutje...

50ms = 50/1000 is 5/100 seconde.

Ik heb juist meer kennis van software dan van hardware... helaas.

[Bericht gewijzigd door Parcye op 29 januari 2004 11:47:43 ]

> 5/100 seconde.

dus 1/20. klinkt al een stuk minder kort. als iemand hard loopt komt hij er missvhien nog wel onder. rekenen maar!

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog

Het gaat om winkelende mensen, een dief die rent hoeven we niet te tellen want die koopt toch niet ;)

Maar hoe reken ik daarmee de condensator uit? (sorry maar daar heb ik geen kaas van gegeten op de MBO)

1/(RxC) = ... heb ik gevonden

Eigenlijk hoef ik maar 1 mSec spanning te houden dat hij dus ontlaad tijdens het moment de frequentie uit staat, toch?

1/(RxC) = 0.001
1/1000 = 0.001

RxC = 1000
10.000 x C = 1000
10.000 x 0.1 = 1000

1/(10K x 0.1) = 0.001

[Bericht gewijzigd door Parcye op 29 januari 2004 12:06:07 ]

Na wat onderzoek heb ik ontdenkt dat een condensator 5 keer nodig heeft om te laden, na 1 keer is deze 66% geladen.

Dus als ik wil dat deze 1msec laad en in 1msec ontlaad, dan heb ik dus 0.2msec laad tijd nodig.

De formule hiervoor is t = RC, t in seconde.

0.0002 = RC
0.0002 = 200ohm x 1uF

Dit zou dus voor kunnen zorgen dat het spannings niveau continu hoog is ook als de TSOP 1msec laag spannings niveau heeft. Op het moment dat er een singaal wordt onderbroken heeft dat als gevolg dat het na max 1ms gedetecteerd is.

Ik hoop dat iemand dit kan bevestiggen

Zou iemand mij kunnen vertellen of de condensator wel zal ontladen in mijn schema? Want het heeft geen enkel effect gehad...