Fototransistor till +5V logik

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Kotten
Inlägg: 16
Blev medlem: 20 juni 2004, 17:19:56

Fototransistor till +5V logik

Inlägg av Kotten »

Hejsan alla!

Jag sitter med ett litet problem ni kanske kan hjälpa mig med. Jag håller på att bygga en krets som behöver en optiskt läsgaffel med ca 20mm gap. Eftersom det är ganska svårt att få tag på tänkte jag bygga en egen. Inte allt för svårt om man läst lite elektronik.
Jag tänkte anväda IR-dioden IR323 och Fototransistorn PT 202. Jag hittade makamjau's projekt ett par sidor bak men här ser problemet lite annorlunda ut. Istället för att koppla fototransistorn "i serie" med en microswitch vill jag få en signal ut till en logikkrets eller en AVR mikroprocessor (jag hade tänkt mig AVRtiny 15) som ger mig en etta eller nolla beroende på om läsgaffeln är blokerad eller inte.

Kolla på mitt schema nedan. Har jag tänkt helt fel? Hur stort bör motståndet vara? Jag funderade på 1K, är det helt tokigt?
Bild

Kan även säga att kretsen ska göras så liten som möjligt och därför är det tacksamt med minimalt antal komponenter. Jag vill även ha kretsen så strömsnål som möjligt.
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

enligt databladet går kollektorströmmen upp till 20mA som mest, så du kan ju utgå från det och fundera över vilken utspänning du måste ha för att få bra marginaler. om du inte har a/d omvandlare kanske du kan sätta en enkel komparator/op-amp efter...

/Johan
Kotten
Inlägg: 16
Blev medlem: 20 juni 2004, 17:19:56

Inlägg av Kotten »

Hmmm. Där är iofs en AD-omvandlare i ATtiny 15 men den är långsam. Den tar ett par millisekunder i omvandlingstid, vilket jag inte direkt har tid med.

I databladet står det 0.7mA vid E=1mW/cm^2 eftersom dioden har en strålningseffekt på 5mW känns det ganska rimligt att stömmen kommer ligga på ca 1mA då det lyser på den. Om jag då vill ha ett spänningsfall över resistorn på minst 4.5 V krävs ett motstånd på minst 4.5k! Kommer processorn känna igen en nolla om det ligger ett 4.5k motstånd till jord?
Detta kan man åtgärda genom att byta plats på fototransistorn och resistorn (processorn sänker väl försumbara strömmar). Är detta en bättre ide?

Ni får ursäkta att jag inte är så skarp på elektroniken. Jag har bara läst några enkla kurser på gymnasiet för ett par år sedan..

/K
Användarvisningsbild
erixon
Inlägg: 380
Blev medlem: 27 augusti 2003, 10:21:58

Inlägg av erixon »

Du kan använda de inbyggda comparatorn i ATtiny15.... den har inbyggd spänings referens...
Kotten
Inlägg: 16
Blev medlem: 20 juni 2004, 17:19:56

Inlägg av Kotten »

Tack för svaret men jag ser gärna att jag löser detta med extern hårdvara. Jag vill inte binda mig till de inbyggda funktionerna i en microprocessor om jag senare får för mig att byta av en eller annan anledning.

/K
Användarvisningsbild
Tony
Inlägg: 1038
Blev medlem: 9 november 2003, 16:08:47

Inlägg av Tony »

Om omgivande ljus inte kan påverka fototransistorn skulle det teoretiskt sett räcka att koppla den mellan ett I/O-ben på mikokontrollern och jord, samt koppla in weak-pullup.

I praktiken är det en schmittrigger du behöver.

Schmittrigger kan man koppla med OP-amp t.ex TLC271 & några motstånd eller så köper man en schmittrigger-grind t.ex 74HC14.

Om du kör med 74HC14 så sätt fototransen närmast jord & R=10K

Oavsett vad du gör så mät utsignalen och jämför med Vil-max och Vih-min för den aktuella kretsen.

Mät med bruten & ej bruten stråle både i mörker och fullt dagsljus.
Kotten
Inlägg: 16
Blev medlem: 20 juni 2004, 17:19:56

Inlägg av Kotten »

Hej och tack för svaret.

Jag var också inne på det där med en schmitttrigger men som jag skrev i min första post så har jag extremt snålt med utrymme (varför väljer man annars en ATtiny) och har inte plats med en stor DIL14 kapsel.
Hittade däremot denna http://www.elfa.se/elfa-bin/setpage.pl? ... 011589.htm som har inbyggd schmitt trigger. Är det bara att koppla utgången V0 direkt till pinnen på processorn i om man väljer att använda den istället?

Finns det förresten kapslar med endast en eller två schmitt-triggers (inverterade eller inte kvittar)? Jag hittar inga hos ELFA...

/K
Kotten
Inlägg: 16
Blev medlem: 20 juni 2004, 17:19:56

Inlägg av Kotten »

Kan även tillägga att kretsen kommer arbeta i så gott som totalt mörker.
Hur stor weak-pullpup skulle du rekommendera om jag väljer att testa utan schmitt-triggern.

/K
Användarvisningsbild
Tony
Inlägg: 1038
Blev medlem: 9 november 2003, 16:08:47

Inlägg av Tony »

Om du aktiverar internal pullup (weak pullup) så kan du koppla S4810 direkt till en pinne på processorn.


Internal-pullup är inbyggd i AVR-processorerna, bara att skriva en etta till porten efter att man satt den som utgång.

Man kan aktivera intern pullup för enskilda utgångar eller hela porten.

Exempel på kod:

INIT:
ldi r16, $00
out DDRD, r16 ; set port D for all inputs

ldi r16, $ff
out PORTD, r16 ; turn on all internal pullups

rjmp MAIN




Till kretsar som saknar pullup brukar man ha 10K.


Jag råkade ha ett par S4810 hemma så jag kopplade upp med en lysdiod och provade.

Med lyset i taket tänt så reagerade den på lamporna.

I mörker blev räckvidden ca 8cm med 20mA genom IR-dioden.


Så 2cm i mörker är inga problem.
Kotten
Inlägg: 16
Blev medlem: 20 juni 2004, 17:19:56

Inlägg av Kotten »

Hej och tack för svaret.
Jag hde ingen aning om att AVR-processornerna hade inbyggda pullup motstånd. En AVR fråga bara, vet du vilka kommando man ska använda för att aktivera enskilda portars pullup motsstånd om man vill använda C/C++ (med WinAVR).

En annan sak. Jag tänkte driva en 5V 0.55W solenoid (elektromagnet) med hjälp av en transistor som är styrd av min ATtiny processor. Någon som kan ge mig ett tips på vilken transistor jag ska använda och hur stort motstånd jag ska ha mellan processorns utgång och transistorns bas?

Tack ännu en gång för hjälpen!
/K
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

DDRD = 0x00; //sätter alla (port D) pinnar till att vara input
PORTD = 0xff; //aktiverar pullup på alla (port D) pinnar
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

>> Kotten

Transistor: BD139
Motstånd PIC-bas: 1,0 kOhm
Kotten
Inlägg: 16
Blev medlem: 20 juni 2004, 17:19:56

Inlägg av Kotten »

Ok, tack så hemskt mycket för alla svaren...

/K
pagge
EF Sponsor
Inlägg: 933
Blev medlem: 15 juni 2004, 00:15:08
Ort: Luleå
Kontakt:

Inlägg av pagge »

Du slipper basmotståndet om du använder en sån här mosfet istället.

IRL2703/IR
elfa art nr: 71-178-15

Det är bara att koppla gaten direkt på utgången.
Det blir en gnutta strömsnålare oxo då du slipper ha en basström på 4-5mA (1Kohm fallet).

Den är dock en femma dyrare än en bd, men det kan det kanske vara värt :)
Kotten
Inlägg: 16
Blev medlem: 20 juni 2004, 17:19:56

Inlägg av Kotten »

Ok, jag kollade upp den i Elfa och den verkade nice, lite större kapsel än BD139 men den har ju fördelen att det är en FET transistor vilket visade sig passa mitt projekt bättre.

En fråga bara, Det står att det är en N-typ transistor. Ska man lägga ut en etta eller en nolla på gaten för att öppna för strömmar mellan Drain och Source? Gör det någon skilland om jag sätter min elektromagnet mellan +5V och drainen eller mellan sourcen och jord?

/K
Skriv svar