Sida 1 av 2

Avståndsdetektering med IR, problem!

Postat: 19 april 2005, 16:20:06
av klintan
Jag har byggt en liten krets för avståndsdetektering på min robot, mycket enkel har tagit principen från http://ourworld.compuserve.com/homepage ... en/555.htm (astable) även räknat ut värdena där, fick ca. 37.7 khz och ska ju ha 38 khz tyckte de var bra. men hursomhelst fungerar det inte, och dessutom så reagerar ibland uCn utan att man ens gjort nåt, det fungerar hursomhelst när du testar med en fjärrkontroll till stereon eller något så mottagaren funkar.

Se Cyrs Bild längre ner i tråden.

ok lite kommentarer: ja la in en VREG istället för IR mottagare eftersom dom har likadana ben endast in och out som är på motsatt sida
jag byggde upp allt på experiment bordet först, först endast mottagare testade me fjärr funkade fint.
Sedan försökte ja bygga upp 555kretsen men då blev de kortis nånstans och lyckades inte hitta de så då tänkte ja att jag prövar att göra den som ja vill ha på mönsterkort så kanske de fungerar. och de blev ju iaf inte kortis nu men de funkar ej.

koden i uC tänder endast en Led när den får Falling edge på INT0 och där har ja dragit in Out pinnen från ir mottagaren.

Någon som har någon idé om vad som kan vara fel?

Postat: 19 april 2005, 16:37:23
av Schnegelwerfer
Är tanken att det modulerade IR-ljuset från LED1 ska detekteras av IR-mottagaren via reflexer från föremål i omgivningen?

I så fall kanske känsligheten hos IR-mottagaren är för dålig för att kunna detektera reflexerna. Alternativt får du använda fler lysdioder eller se till så att din lysdiod lyser starkare.

Angående störningarna så kanske du får lägga in en check i programmet så att insignalen verkligen existerar under några periodtider av 38kHz, d.v.s. runt 100us.

Postat: 19 april 2005, 17:00:45
av klintan
japp de är tanken, när en vägg eller föremål befinner sig framför skall IR-ljuset reflekteras tillbaka till ir mottagaren.

ok, och då får man köpa en annan hos Elfa alltså? M kan testa sätta dit en till diod iofs :) den som sitter där just nu får 0,7 volt den klarar som högst 1,2 kanske skall byta motstånd då? så att den får 1,2 istället. tänkte det var maxspänning, därför ja valde att ligga lite under.

mm jag tror jag förstår vad du menar :) hehe bara de att mina programmerarkunskaper i Assembler ännu inte sträcker sig så värst långt :) men jag ska försöka fixa de där :)

Postat: 19 april 2005, 17:04:46
av Schnegelwerfer
Hur har du räknat ut att lysdioden får 0,7V?
Hmm.. jag rekommenderar dig att läsa exempelvis "Lysdioder i bilen"-tråden. Lysdioder ska kontrolleras med ström, inte med spänning.

Jag vet inte vilken känslighet du kan förvänta dig med din lösning, jag har inga erfarenheter av den. Hursomhelst måste du öka effekten på IR-ljuset.

Postat: 19 april 2005, 17:07:21
av danei
Är det inte så att en del mottagare inte reagerar på konstant bärvåg.

Postat: 19 april 2005, 17:08:27
av Schnegelwerfer
Så kan det också vara.

Postat: 19 april 2005, 17:20:46
av $tiff
Jaa! Större okomprimerade bilder på slö server är du snäll! :roll:

Postat: 19 april 2005, 17:28:06
av klintan
ja har mätt att den får de :P haha mm får nog läsa den tråden, trodde nämligen den fick tillräckligt med ström om spänningen var rätt :S den får ström från 555an. kommer inte riktigt ihåg hur ja räkna.
Men ska fixa de iaf. får se om de funkar.

Danei: konstant bärvåg innebär? Du får gärna utveckla lite för oss som fortfarande inte har så stor kunskapsbank :D

Stiff: lessen enda servern ja har och hade ingen tid att komprimera :D hehe eller ja var för otålig helt enkelt.

Postat: 19 april 2005, 17:47:52
av danei
Jag menar att den inte reagerar om du skickar konstant 38kHz utan bara om man skickar pulser med 38kHz. Det kan nog vara bra att kontrollera att du verkligen har 38kHz.

Om du sparar som gif iställer för bmp så fär du en komprimering. Det tar inte tid.

Postat: 19 april 2005, 17:59:57
av cyr
Här är en bild som inte tar 5 minuter att ladda:

Bild

3kB mot 800kB :roll:

Postat: 19 april 2005, 18:15:05
av Schnegelwerfer
danei skrev:Jag menar att den inte reagerar om du skickar konstant 38kHz utan bara om man skickar pulser med 38kHz. Det kan nog vara bra att kontrollera att du verkligen har 38kHz.

Om du sparar som gif iställer för bmp så fär du en komprimering. Det tar inte tid.
Men jag tycker i alla fall att detektorn borde reagera på reflexer, då blir det ju inte kontinuerlig bärvåg. Jag tror mer på att den reflekterade effekten är för liten.

Ett tips är ju att försöka rikta lysdioden direkt in i detektorn och se om den reagerar då.

Postat: 19 april 2005, 18:19:45
av klintan
aha, då förstår jag, därför man alltså kopplar reseten på 555an till en utgång på uC för att kunna pulsa bärvågen :) då förstår jag. tack danei

Schnegel: jo de är sant kanske kan testa me spegel? aja ska först och främst försöka förstärka effekten. Sen ska ja testa me de rikta den rätt in i mottagaren.

Angående bilden igen: När ja exporterar från Eagle lyckas ja inte välja något annat format än BMP tror att de är nåt vajsing me mitt windows för när ja försöker spara jpg filer från internet så blir dom också bmp otroligt irriterande men har inte direkt orkat kolla upp om de finns nån lösning på problemet.

Postat: 19 april 2005, 18:28:35
av Schnegelwerfer
Jag tycker att du ska testa med en spegel innan du börjar att mecka med någonting annat.

EDIT: Ta bort din bild nu när CYR har lagt upp en mindre variant. Den pajar ju hela tråden!

Postat: 19 april 2005, 18:49:02
av cyr
Det finns flera små smidiga program för att visa och konvertera bilder, t.ex. irfanview (som jag använde i det här fallet, tog c:a 10sek).

Du får gärna redigera in "min" bild i första inlägget om du vill...

Men det är inga problem ju !

Postat: 19 april 2005, 19:08:26
av bengt-re
Jag har gjort nästan precis så, dock så var jag för slö för att ta fram Ne555 så jag tog en 12f629 som jag kan ge 3 olika frekvenser med så får man en avståndsuppfattning ( alltså, en frekvens som var helt rätt och två som var respektive olika mycket snedställda så att man kan avgöra avståndet), Jag seriekopplade bara en motstånd, men kom på att det gick sänka strömmen till ungefär 2mA och ändå få bra räckvidd (iaf, med de ir-dioder jag testade med) Räckvidden är ungefär 15-20 cm till en vit mans hand, lite längre till ljusa tapeter.

Och jo, det är bäst att pulsa den för att inte mätta detektrorn. Jag skickade ut ett seriemeddelande från roboten till picen som skapade bärvågen för ir-dioden, och eftersom jag använde en smart ir-styrare så skickade jag en 1á för frekvens ett en tvåa för frekvens 2 och så vidare. Efter jag skickat seriemeddelande så gjorde jag en pulsin på benet där detektorn satt och gjorde pulsin timeout så var det inget där. Oki som jag skrev det slösar jag bort 64ms för varje koll, men det gjorde inget så som jag använde roboten då, går att skriva programmet listigare såklart.


Det här är programmet jag körde i picen. tror att det är självinstruerande..

CPU = 12F629
MHZ = 20
CONFIG 12794

; Detta program ger 1,5 ms långs pulser ut när det ges
; tecken in på gp1
; 1=41,3kHz
; 2=39,4kHz
; 3=38,1kHz


temp var word
tmp0 var byte
tmp1 var byte
a var byte
clear
trisio=%11000000

main
serin gp1,i9600,[a]
pause 1
if a="1" then gosub puls1
if a="2" then gosub puls2
if a="3" then gosub puls3
goto main

puls1 ;41,3kHz
asm
{
movlw 40h
movwf tmp0
loop
bcf 05h,2
movlw 13h
movwf tmp1
mini
decfsz tmp1
goto mini
bsf 05h,2
movlw 13h
movwf tmp1
mini2
decfsz tmp1
goto mini2
decfsz tmp0
goto loop
bcf 05h,2
}
return

puls2 ;39,4kHz
asm
{
movlw 3ch
movwf tmp0
loopa
bcf 05h,2
movlw 14h
movwf tmp1
minia
decfsz tmp1
goto minia
bsf 05h,2
movlw 14h
movwf tmp1
mini2a
decfsz tmp1
goto mini2a
decfsz tmp0
goto loopa
bcf 05h,2
}
return

puls3 ;38,2kHz
asm
{
movlw 3ah
movwf tmp0
loopb
bcf 05h,2
movlw 14h
movwf tmp1
nop
nop
minib
decfsz tmp1
goto minib
bsf 05h,2
movlw 14h
movwf tmp1
nop
nop
mini2b
decfsz tmp1
goto mini2b
decfsz tmp0
goto loopb
bcf 05h,2
}
return