Hinderdetektor

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Rollo
Inlägg: 217
Blev medlem: 2 januari 2004, 19:23:29

Hinderdetektor

Inlägg av Rollo »

Jag öppnar en annan tråd till mitt andra projekt. Hoppas ni inte misstycker.

Jag blir helt galen på min IR-Hinderdetektor.
Ir-mottagaren
Ir-dioden
Mottagaren är kopplad med kondensatorn mellan VCC och Ground. Och ett 9 Kohm motstånd mellan OUT och VCC. OUT är kopplad till min PIC.

Dioden är bara kopplad till PICen med ett motstånd (kommer inte ihåg vad för nåt). Den får dock bara ganska precis 1V, det är väl lite för lite?

Är det något fel som ni kan hitta? Jag slänger med koden också...TACK!!!

PicBasicPLUS

Kod: Markera allt

DEVICE 16F628
DEFINE OSC 4
CMCON = 7
        
		Output portA.1
		output porta.3
		input porta.2
		
		Symbol LED = PORTA.1   	' Alias PORTA.1 to LEDS
		Symbol mottagare = porta.2
		Symbol IR = porta.3
		
		
		
		
		Delayms 500				' Wait for PICmicro to stabilise
			  
start:	  

high led
		
sense:         					'check for objects
for n= 1 to 250 	 	   		'start burst 38 kHz
high IR 						'led on
pauseus 2 						'led on for 2 more usec
low IR 							'led off
pauseus 13 						'off time for led
next 							'repeat to complete waveform burst


if mottagare = 0 then goto start else goto no_light

no_light:
low led

goto sense
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

behöver man verkligen ett pullup motstånd till den där mottagaren? Kanske är säkrare iofs.

annars vad är problemet? Vad är det som händer? Vad är det som inte händer? Berätta lite mer om problemet tack.

hur har du mätt upp 1v? på lysdioden?
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

om du ska ha en puls ut på 38khz bör du väll ha pinnen hög i 13µs och sen låg i 13µ

om inte jag räknar helt fel så kommer du nu att ha en frekvens på 250Khz

edit: såg nu att du ju hade den låg i 13µs men borde du inte försöka ha en duty på 50% nu har du ju en väldigt låg duty på den, kan ju vara så att mottagaren inte ser nått ir-ljus..
Rollo
Inlägg: 217
Blev medlem: 2 januari 2004, 19:23:29

Inlägg av Rollo »

Jag fick 1V när jag mätte (?) på lysdiodens anod och katod.

Jag ska försöka förklara vad som händer:

Ett tag körde jag utan motstång på dioden och då reagerade min stereo och satt igång sig. Det var dock den ända apparaten som reagerade. Nu händer ingenting så jag får väl byte motstånd. Koden fungerar så till vida att om jag skickar in ström till porta.2 (alltså där mottagaren är kopplad) så släcks dioden, och tänds sen igen om jag "tar bort" strömmen.

Jag har inga bevis som helst att mottagaren fungerar.

Hoppas det hjälpte lite! Tack på förhand!

*edit* Jag hittade den koden på internet och "stal" den och litade på att den var rätt. Jag är väldigt ny med allt det här, vad menar du med duty? :?
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

dutyn är hur stor del av perioden som lysdioden är tänd..

om man har 50% duty så är lysidoden tänd lika länge som den är släkt..
har man lägra duty så kommer lysdioden vara släck längre än den är tänd och då lysa mindre..
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

om du lånade den så borde den ju funka, men som mullemeck sa. Det blir fel med duty cycle tror jag. Alltså det är förhållandet mellan när den är igång och när den är av. Om det är 50% är den på och av lika länge. Om den är 75% så är den på 75% av tiden och avstängd 25% av tiden.

Eftersom du har en frekvens på lysdioden blir spänningen fel, om du inte mätte med konstant ström dvs?
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

ett tips är att ta en webbkamera och titta med den på lysdioden och se om den lyser något...

vissa digitalkameror kan nog också funka..
Rollo
Inlägg: 217
Blev medlem: 2 januari 2004, 19:23:29

Inlägg av Rollo »

Jag mätte faktiskt med konstant ström. :wink:
Jag kollade med min kamera i telefonen och den lös otroligt lite...man såg litelitelite ljus om man gick nära så jag får ta och byta motståndet.
Finns det nåt sett att kolla om mottagaren fungerar? Jag har prövat med en annan fjärrkontroll men det bryr sig inte..
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

du kan även testa ändra i koden till

Kod: Markera allt

sense:                        'check for objects
for n= 1 to 250                 'start burst 38 kHz
high IR                   'led on
pauseus 13                   'led on for 2 more usec   <----  har ändrat här!!!
low IR                      'led off
pauseus 13                   'off time for led
next                      'repeat to complete waveform burst 
då kommer den också att lysa starkare..

sen if-satsen i slutet.. blir lite konfunderad funkar verkligen den?
mina if-satser brukar jag skriva

Kod: Markera allt

if mottagare = 0 then
  goto start
else
  goto no_light
endif

men det är möjligt att man kan skriva som du gör med..
Rollo
Inlägg: 217
Blev medlem: 2 januari 2004, 19:23:29

Inlägg av Rollo »

Har provat det nu. Det hjälpte tyvärr inte. Jag börjar misstänka att det är mottagaren som är felet. Finns det något sätt att prova den förutom att lysa med en fungerande fjärrkontroll på den??
TACK!!
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

Njäe det allra enklaste e ju somsagt att testa med en fjärrkontroll...

annars så kan man ju bygga en lite oscillator med en 555timer som skickar ut en 38khz signal...
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

ja det verkar ju som att mottagaren inte funkar som den ska. Kolla så att du verkligen kopplat pinnarna rätt. Annars får du byta. Du kommer säkert behöva en till i framtiden som om den första börjar fungera nån gång så har du nog nytta av båda. Men du kanske måste beställa från ELFA? Då blir det ju lite dyrare.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Här kommer mitt kodförslag:

Kod: Markera allt

DEVICE 16F628 
DEFINE OSC 4 
CMCON = 7 
        
      Output portA.1 
      output porta.3 
      input porta.2 
       
      Symbol LED = PORTA.1        ' Alias PORTA.1 to LEDS 
      Symbol mottagare = porta.2 
      Symbol IR = porta.3 
       
      Delayms 500                 ' Wait for PICmicro to stabilise 
           
start:     

high led 
       
sense:                    'check for objects 
for n= 1 to 30              'start burst 38 kHz <-- ÄNDRAT HÄR
  pauseus 13                'off time for led 
  IR = 1                    'led on 
  pauseus 13                'led on for 13 more usec 
  IR = 0                    'led off 
next                      'repeat to complete waveform burst 

if mottagare = 0 then
  goto start 
else 
  goto no_light 
endif

no_light: 
low led 

goto sense 

Motivering:
Du bör bara lämna en ca 800µs lång "burst" med 38kHz modulerat ljus (d.v.s. ca 30 perioder) för att den avstämda mottagaren ska vara glad. Lämnar man mer kan den bli kinkig och helt sonika låta bli att reagera.
Jag ändrade if-satsen eftersom det, precis som mulle sa, verkade ett skumt sätt att skriva if-satser på. Om det funkade innan så är det ganska stor skillnad på PICBasicPro och PICBasicPlus (Jag kan således bara 'Pro...)

Kolla om din kompilator tycker om min kod och meddela gärna om det är något fel, eftersom jag inte har en Plus-kompilator själv.

Hårdvarufelsökning:
Har du kört IR-dioden utan motsånd? Då är det ganska stor chans att den är bränd. Det är svårt att kontrollera just eftersom du inte ser ljuset. Du ska alltid ha motstånd till LEDs. I detta fallet är ca 100 Ohm lagom om du kör på 5V.
Spänningsfallet över IR-dioden ska vara ca 1,2V.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

mmm, det stämmer det där med dioden. Men mottagaren funkar ju inte. Den reagerar ju inte på fjärren heller. Har du testat olika kontrollrar för det finns dom som inte har 38khz modulerat ljus. På gamla var det någon annan skum frekvens.

En fundering angående fjärrkontrollkoder och mottagare. Det står på mottagaren att den är avstämd och gjord för 38khz, men sonys kod går ju ut på att sända olika långa pulser. Typ 1,2ms för 1 och 0,8ms för 0 eller hur det var. Pausen mellan tror jag inte ändras. Det betyder ju att frekvensen ändras. Eller så är dett jag som inte tänker tillräckligt långt.
danei
EF Sponsor
Inlägg: 27417
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

De skickar omgångar med 38kHz signaler
Skriv svar