TSOP4838 jako čidlo na překážku

Odpovědět
Uživatelský avatar
mara
Příspěvky: 17
Registrován: 15 čer 2013, 11:09

TSOP4838 jako čidlo na překážku

Příspěvek od mara »

Ahoj, prosím o radu s programem na T.A.R.D.I.S.(viz Můj Robot), čáru už sleduje ale když jsem připsal kód na čidlo, tak se roztočí oba motory a nereaguje na čidla. Nevíte, kde mám chybu?

Kód: Vybrat vše

symbol LMf	=C.5 ;levy motor plus
symbol LMb	=C.4 ;levy motor minus
symbol PMf	=C.3 ;pravy motor plus
symbol PMb  =B.4 ;pravy motor minus
symbol PC	=B.0 ;prave cidlo
symbol PSC	=B.2 ;prave stredni cidlo
symbol SC	=B.3 ;stredni cidlo
symbol LSC	=B.5 ;leve stredni cidlo
symbol LC	=B.6 ;leve cidlo
symbol IR   =B.1 ;IR ledka
main:
	pwmout IR,25,52 ;bliká IR ledkou na 38Khz
	pause 3
IF pinC.6=1 then ;pokud je na TSOP4838 log.1 
	high LMf
	low LMb,PMf,PMb
	pause 200
	high LMf,PMf
	low LMb,PMb
	pause 300
	high PMf
	low LMf,LMb,PMb
	pwmout IR,0,0
	pause 20
else
	readadc PC	,b1 
	readadc PSC	,b2 
	readadc SC	,b3 
	readadc LSC	,b4 
	readadc LC	,b5
	IF b1>140 then
		pwmout PMf,0,0:pwmout LMf,0,0
		pwmout pwmdiv4,LMf,30,100
	endif			 
	IF b2>12 then
		pwmout LMf,00,00:pwmout PMf,00,00
		pwmout pwmdiv4,LMf,30,100
		pwmout pwmdiv4,PMf,30,75
 	endif
	IF b3>12 then
		pwmout PMf,0,0:pwmout LMf,0,0
		pwmout pwmdiv4,LMf,30,110
		pwmout pwmdiv4,PMf,30,105
	endif  
	IF b4>11 then
		pwmout LMf,00,00:pwmout PMf,00,00
		pwmout pwmdiv4,LMf,30,80
		pwmout pwmdiv4,PMf,30,95
	endif 
	IF b5>150 then
		pwmout PMf,0,0:pwmout LMf,0,0
		pwmout pwmdiv4,PMf,30,95
	endif
	pwmout IR,0,0
	pause 20
endif
goto main
“Oh gravity, thou art a heartless bitch.” Sheldon Cooper
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: TSOP4838 jako čidlo na překážku

Příspěvek od AlesH »

Podle mne to vypadá tak, jakoby pořád byla logická jednička na pinC.6 (na výstupu z TSOP4838). K testování stavu čidel čáry se pak program nikdy nedostane a alespoň jeden motor se pořád točí vpřed (nikde tam není úplné zastavení). Proč je na tom pinC.6 pořád jednička netuším. Je třeba to proměřit nebo nějak otestovat (např. odpojit TSOP).
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: TSOP4838 jako čidlo na překážku

Příspěvek od jrt »

Já teď nemám čas ani sílu program podrobně studovat, ale ta LED nesmí svítit (blikat) trvale, protože jinak se čidlo zahltí a přestane reagovat. A máte čidlo správné frekvence? Čidla TSOP se vyrábějí pro nosné frekvence 30 až 56 kHz a jsou dosti úzkopásmová. Viz Picaxe magazín 12/01.
jrt
Uživatelský avatar
mara
Příspěvky: 17
Registrován: 15 čer 2013, 11:09

Re: TSOP4838 jako čidlo na překážku

Příspěvek od mara »

Čidlo by mělo být v pořádku, protože když použiju tenhle program

Kód: Vybrat vše

prog1:
	pwmout B.1,25,52 ; pomoci pwm blika diodou na frekvenci 38,4Khz
	pause 3
	IF pinC.6=1 then ;sleduje IR cidlo
	goto prog3
	else
	goto prog2
	endif
	goto prog1

prog3:
	high C.5
	low C.4
	high C.3
	low B.4
	pwmout B.1,0,0
	pause 20
	goto prog1
prog2:
	high C.4
	low C.5
	low C.3
	high B.4
	pwmout B.1,0,0
	pause 20
	goto prog1
tak to funguje normálně.
“Oh gravity, thou art a heartless bitch.” Sheldon Cooper
Uživatelský avatar
mara
Příspěvky: 17
Registrován: 15 čer 2013, 11:09

Re: TSOP4838 jako čidlo na překážku

Příspěvek od mara »

jrt píše:ta LED nesmí svítit (blikat) trvale, protože jinak se čidlo zahltí a přestane reagovat.
Je tam nastavené vypnutí.
jrt píše: A máte čidlo správné frekvence?
Ano,mám
“Oh gravity, thou art a heartless bitch.” Sheldon Cooper
Uživatelský avatar
adamh
Příspěvky: 62
Registrován: 24 úno 2013, 23:10
Bydliště: Opava / Praha
Kontaktovat uživatele:

Re: TSOP4838 jako čidlo na překážku

Příspěvek od adamh »

mara píše: Je tam nastavené vypnutí.
Ale pouze pokud nevidí překážku.

Edit: tak ne, přehlédl jsem duplicitu.
“We’re all pathetic and creepy and can’t get girls. That’s why we fight robots.” –Kripke (TBBT)
Osobní web: adamh.cz
petr-kubac
Příspěvky: 96
Registrován: 24 úno 2013, 15:43
Bydliště: Frydek - Mistek
Kontaktovat uživatele:

Re: TSOP4838 jako čidlo na překážku

Příspěvek od petr-kubac »

Dlouhé výpisy typu "VY najděte chybu v MÉM kódu" nestuduju už z principu, ale mám nepatrnou poznámečku :
Počítáte s tím, že TSOP4838 má obrácenou logiku - neboli - když nic nevidí je na výstupu logická jednička, když vidí - vnitřní tranzistor stáhne výstup na nulu ?
"The best computer language is a solder" - "Nejlepší programovací jazyk je pájka" - Bob Pease
http://petr-kubac.blog.cz/
Odpovědět