poraďte s programem... AT89S51 + čidlo SFH5110

Zdravím, tvořím jednoduchého robota s uC AT89S51 a mám problém s obsluhou infrapříjmače+demodulátoru SFH5110 (datasheetcatalog.org/datasheet/infineon/1-sfh5110.pdf) používám verzi SFH5110-38, tedy s největší citlivostí na 38 kHz. Problém je v tom, že když rozblikám infra ledky s frekvencí 38kHz, tento infrasignál se odrazí od překážky a infrapříjmač by měl nastavit na výstup log.0, ale to se nestane. Tak mě napadá, že neblikám správnou frekvencí… podívejte se na části kódu:

[code]JMP START
ORG 0BH
JMP CC0

ORG 30H
START:
*
*
MOV IE,#10000010B ;POVOLENO PŘERUŠENÍ OD Č/Č 0
MOV TMOD,#00000001B ;Č/Č 0 V REŽIMU 1
MOV TL0,#LOW(-13) ;NASTAVENÍ Č/Č 0
MOV TH0,#HIGH(-13)
SETB TR0
*
*
CC0: ;PŘERUŠENÍ OD Č/Č 0
CPL LI_LED
CPL PI_LED
MOV TL0,#LOW(-13)
MOV TH0,#HIGH(-13)
RETI[/code]
Bude to při použití krystalu 12Mhz blikat 38kHz??? Díky moc za rady

cau, ja uz mam tet 1 skoro hotoviho takze muzu nak pomoc ale bohuzel nedelam v C ale v ASM s pic takze nerozumim tvimu kodu, ja tam mam taky infraprimac na 38 khz datasheetcatalog.org/datashe … yzwrzq.pdf ,ovladani irled : led do 1 na 13,5 us,led do 0 na 13,5 us = 1 impuls,ten vyslu 255x za sebou (8 ms)a pak testuju vystup z irprimace,na vystup irprim. si pripoj zatim jenom ledku,ta zatim staci na indikaci

EDIT: pardon,omlouvam se za spatne identifikovani kodu, nedelam C a nedelam ani s AT89S51,takze nerozumim tomu to kodu :blush:

nechci nic říkat, ale tajto je v asembleru. To s céčkem nemá nic společného…

zdravím, s tím příjímačem jsem dělal a to jak s 8051 tak i s AVR. Není v tom žádnej problém ,jen si musíte dávat bacha na rušení z napájení (ten obvod jen na něj dost citlivej). Co se týká toho zápisu. Moc jsem nepochopil toto:

MOV TL0,#LOW(-13) ;NASTAVENÍ Č/Č 0
MOV TH0,#HIGH(-13)

Jestli jsem to dobře pochopil tak je to 8,4 Hz. Teoreticky by na to stačil jen 8 bit č/č. Tento zápis by měl být těch 38 Khz:

MOV TL0,#242
MOV TH0,#255

Snad to mám dobře.

na časovač/čitač jem se vykašlal a udělal jsem to bez něj, klasicky ve smyčce programu. jen mám problém s tím čidlem… Reaguje správně na obražení/neodražení signálu od překážky jen když to něj svítí i stolní lampička. bez osvětlení je na výstupu stále 0… nechápu to

zalezi proti cemu meris ten vystup ? proti - by mela bejt 1,proti + mela 0,mas to zapojeny podle DS? tet to mam zapojeny na nepajivim poli a funguje to i s obycejnym ovladacem od tv,kdyz zapojim na vystup led proti + nesviti ,blika jen pri vysilani ovladace,kdyz proti - sviti ,pri vysilani zhasina, skousel sem k tomu cidlu dat i lampicku :bulb: zadny ruseni sem nazaznamenal

čidlo mám zapájené v DPS (schéma: uloz.to/1464116/Hlavni%20DPS.pdf), přidal jsem ještě mezi nožky 2 a3 (+ a zem) kondenzátor 22uF a lampička už nemá žádný vliv… led si rozvicuju uC podle stavu čidla, na ovladač to reaguje ale ne na moje ifraled :cry: program zlobí a nevím co s tím

EDIT: ještě pro představu tady je foto:
uloz.to/1464250/ROBOT_01%20019.jpg

:arrow_right: administrator: příspěvek byl upraven
Příspěvky byly sloučeny, byl upraven zápis odkazu a odkazovaný soubor byl z důvodu jednoduššího stažení přidán na fórum.


Hlavni DPS.pdf (23.1 KB)

mas tam 2x irled a jednen primac, takze ir led1 vysle impuls a hned po tom musis otestovat stav ir primace -naka pauza-ir led8 vysle impuls hned testovat stav primace,takle by to melo bejt + rizeni motoru atd. bohuzel s kodem ti asi neporadim, jo nemas nahodou nakej testr na ir vysilace?? ja sem s nim testoval irled,uhel osviceni,citlivos, docela mi to pomohlo
muj robot.jpg

na zjištění jestli vůbec a pod jakým úhlem svítí infra ledka mi stačí mobil a jeho vestavěná kamera. Program mám řešený obdobně, jak popisuješ, až na to, že vysílám 20 impulzů každou ledkou. jeden by ten příjmač nezaregistroval (v datasheetu uvádějí minimálně 6)… bodužel teď nemám moc času na pokusy s programem, vrhnu se na to později. mám tam použité led na 940nm, to souhlasí s příjmačem.
Nenapadá někoho čím by to ještě mohl být způsobený nepříjem signálu???

ten primac sem mel na mysli pouzit na to jestli irled vubec visilaji,s tim impulsem sem to tak nemyslel (jako ze 1) sry za spatne vajadrovani :blush: :blush: