Připojení HFS-DC06H k PIC

Dobrý den,
nemáte prosím někdo zkušenost s připojením uvedeného mikrovlnného čidla k mikrořadiči?
Samotné čidlo funguje správně - úroveň H na výstupu při aktivaci (pull-down) rezistor 10k na výstupu.
PIC10F206, jednoduchý program - blikání LED diody na výstupu při aktivaci čidla.

Problém:
Pokud nemám k výstupu PIC nic připojeno a jen měřím log. sondou výstupní stavy, vše funguje. Pokud však na výstup PIC připojím např. LED diodu (omezovací rez. 330R), výstup (!!!) čidla zůstane po aktivaci trvale v úrovni H! Je to závislé na odběru té zátěže. Zvětším - li rezistor u LED diody na 3k3, vše funguje.

Zkoušel jsem zmenšít zátěž na výstupním pinu PIC tím, že jsem LED připojil přes NPN tranzistor s LED v jeho kolektoru. Přestože rezistor v bázi měl hodnotu řádově desítky kiloohmů, problém zůstal stejný. Nechápu to, protože v tuto chvíli tekl z výst. pinu PIC naprosto minimální proud.

Jediné, co mne napadá, je, že se něco přenáší přes napájecí větev. Napájení je společné pro PIC i pro čidlo (5V z laboratorního zdroje). Těsně u PIC mám blok. kond. 100nF, totéž přímo na napájecích pinech čidla.
Zkouším to sice na kontaktním poli, ale už jsem se na něm nabastlil docela dost a nikdy jsem podobný problém neměl.

Napadá vás něco? Mně už nápady došly …

Děkuji za ochotu.

Kurde přečetl jsem si to asi 2x a stejně nevím co jsi kde připojil a co jsi kde měřil. Dej sem schema.

V textu máš samý výstupy a žádný vstup. Výstup se vždy připojuje na vstup, takže kdybys místo toho zmateného popisu vložil schéma, určitě bysme pochopili na co se vlastně ptáš. Jeden obrázek bude mít cenu tisíce slov … :wink:

Jasně, omlouvám se. Přikládám schéma se třemi varianty zapojení, které jsem zkoušel, včetně popisu.

Jen doplním:

Mikrořadič obsahuje jednoduchý program, který rozbliká LED diodu na výstupu.
Popisovaný problém nastane až při propojení výstupu čidla s mikrořadičem a to pouze tehdy, je-li k výstupu mikrořadiče připojena zátěž (viz popis ve schématu). Odpojím-li z výstupního portu PIC zátěž (LED diodu) a jeho stav při běžícím programu kontroluji logickou sondou, vše je v pořádku. Připojím zátěž a na výstupu čidla - tedy na vstupu PIC (!) se trvale “usadí” hodnota H.
Na výstupu čidla (= na vstupním portu PIC) není žádné rušení - to by logická sonda zachytila.

Zkoušel jsem i oddělit napájení sondy od napájení PIC (sondu jsem připojil přes galvanicky oddělený měnič), bez výsledku.

Vše jsem zkoušel s mikrořadiči PIC10F206 a PIC12F675. Výsledek stejný.

Děkuji za jakoukoliv radu.

Tady máš opravdovou záhadu. Napadá mě jedině špatný kontakt na GND toho čidla nebo na přívodu od napájení. Ono kontaktní pole je skvělý pomocník, ale taky občas pěkná potvora a právě se špatnýma kontaktama (čti velké přechodové odpory) umí pěkně potrápit.

Jo - trefa!

Nabastlil jsem těch 5 součástek přímo na patici PIC, takové maličké vrabčí hnízdečko a funguje to perfektně!
Už jsem o tom kontaktním poli přemýšlel, ale nechtělo se mi tomu věřit, už na něm dělám cca 20 let a nikdy mne nezklamalo. Možná, že právě těch 20 let se na něm podepsalo …

Díky za dobrý tip!!

Vl.

Už jsem se lekl, že tomu zadání nerozumím jenom já. Naštěstí jsme s Balů dva. :smiley:

Jinak vidíš, dílo se podařilo. Příště začni hned schématem a jsme doma o krok dříve.

Jo jo …

:slight_smile:

Tak jsem se radoval předčasně.
Jakmile jsem rozpájel to “vrabčí hnízdo” a přemístil součástky na plošný spoj (univerzální destička), tak to začalo zlobit znovu. A opravdu to závisí na proudu z výstupu PIC. Připojím-li na něj piezo pípátko, které nemá prakticky žádný odběr, funguje to. Připojím tam LED diodu - nefunguje to.
Závisí to také na nastavené citlivosti čidla - se zvyšující se citlivostí to začíná zlobit dříve.

Asi mně nezbude nic jiného, než to zpátky nabastlit přímo na patici a modlit se, aby to fungovalo.

Je to šmejd …

Vl.

Než takové silné slova, co mrknout do datasheetu? Není třeba možné, že bys výstupní pin třeba moc zatížil?

Jinak stejně mi moc nejde do hlavy, jak můžeš zapojit výstup nějakého snímače na výstup nějakého mcu. Možná výstup snímače na vstup mcu, to by šlo.

Navrhuji, vždy přilož schema. Nemáme věšteckou kouli. Kdo to má luštit. Mrknu na schéma a vidím.

Jirko,

podívej se o kousek výš, najdeš tam schéma. Nikde z něj není patrné, že bych zapojil výstup detektoru pohybu na výstupní pin mikrořadiče.

Takže pro pořádek:

  • detektor pohybu HFS-DC08 je zapojen na pin mikrořadiče, který je SW nadefinován jako vstup.
  • LED dioda je zapojena na pin mikrořadiče, který je SW nadefinován jako výstup.

Kdyby tomu bylo jinak, nefungovalo by to vůbec. Ale jak už jsem psal, ono to funguje, pokud není výstupní pin mikrořadiče zatížen - např. když jeho stav testuji logickou sondou nebo osciloskopem, který má vstupní impedanci řádově M-ohmy. Přestane to fungovat při zatížení výstupního pinu mikrořadiče a to i docela malým proudem, který se jinak běžně v takovýchto aplikacích používá.

S mikrořadiči od Microchipu pracuji už cca 20 let a datasheety znám skoro nazpaměť.
Maximální povolený proud výstupním pinem je u těchto typů 25mA. S LED diodou s omezovacím odporem 330R vychází proud okolo 9mA, což je hluboko pod maximem. Výstupní port tedy rozhodně přetížen není.

K mikrořadičům jsem mnohokrát připojoval různá čidla, ale mikrovlnné čidlo jsem použil poprvé (před pár lety ještě nebyly běžně k mání :slight_smile: Nikdy jsem se nesetkal s případem, kdy by lehké zatížení výstupního pinu způsobilo změnu stavu na pinu vstupním - to snad ani není možné. Proto z nestandardního chování podezřívám spíše ten senzor, ale vysvětlit si to fakt neumím.

Jak už jsem psal - nabastlené na patici to fungovalo. Jakmile jsem to zapojil na destičku, začalo to opět zlobit. Navíc je to závislé na nastavené citlivosti detektoru (je tam na to trimr).
Monitorovaný prostor byl zcela bez pohybu (prázdná chodba), takže fakt nevím …

Tak pak vzít osciloskop a podívat se, co se na tom pinu děje. Popř. co napájení? Nežere třeba ten modul tolik, že by zdroj to nedával?

Popsané chování mi opravdu nejvíce připomíná problémy s GND. :thinking:

A pak mě napadá ještě jedna věc : já PICy neznám, dělám s AVRkama, ale u těch je možné nakonfigurovat na vstupní pin interní pull-up. Ty stahuješ vstup ke GND pomocí 10k. Pokud bys měl aktivní interní pull-up, pak by bylo možné, že se odpory vzájemně přetahují a vstupní pin je tak na hraně mezi 0 a 1. Pak stačí opravdu málo a podivné chování je na světě. Případně zkus 10k vyměnit třeba za 4k7 nebo dokonce 1k.

Používám laboratorní zdroj, omezení proudu mám nastaveno na 2A. Modul včetně mcu si vezme okolo 50mA. Signál na pinu je čistý. Můj osciloskop tak krátké děje nezachytí, ale určitě je dokáže detekovat logická sonda a tou jsem to testoval.

Interní pull-up mám vypnuty. A i kdyby byly zapnuty, ony mají hodnoty řádově stovky k-ohmů, na 10k by nestačily. Ale ještě zkusím jinou věc, která mne napadla dnes.
Zkusím použít mcu, který má dva samostatné, navzájem oddělené porty. Jestli není problém v tom, že se vše odehrává na stejném portu. Uvidím …

Nevím, jestli jsi ty schémata dával kompletní nebo jen tak, jak to máš, ale zkus kromě 100n blokovacích kondenzátorů přidat ještě alespoň 100u na DPS.

Program pro PIC sem dáš?

Zkoušel jsem - nepomohlo. Zkoušel jsem už všechno možné, od blokování napájecího napětí, přes napájení z baterií, galvanicky oddělený měnič …

Už se s tím zabývám několik dní, takže po včerejšku další zkušenost:

  • ta čidla mám dvě. Obě se chovají stejně. Pro připomenutí - je to tento typ:
    Detektor pohybu mikrovlnný, modul HFS-DC06 : H A D E X , spol. s r.o.

  • Zkoušel jsem je na čtyřech typech mikrořadičů: PIC10F206, PIC12F675, PIC16F628 a PIC16F883.
    Jakž takž to funguje pouze na typu PIC169F883, na ostatních ne. Chová se to nepředvídatelně - večer jdu spát s tím, že se mi to konečně podařilo rozchodit a ráno to opět nefunguje, aniž bych se toho přes noc dotkl.

  • nepomohlo ani použití mikrořadičů s oddělenými porty (na jednom mám vstup = čidlo, na jiném výstup = LED dioda)

  • je to silně závislé na nastavené citlivosti. Při nejnižší citlivosti to jakž takž funguje, ale ta citlivost je už hodně malá - ten trimr je prakticky na nule, takže o nějakém nastavení citlivosti nemůže být řeč.

  • největší záhadou je to, že výstup čidla je ovlivněn zátěží, která je až na výstupním pinu mikrořadiče!

Ale:

Funguje naprosto spolehlivě. Má jedinou chybu - nelze u něj nastavit citlivost, která je až příliš velká, ani doba trvání výstupního signálu (to by zase až tak moc nevadilo). A je o stovku levnější :slight_smile:

A ještě jeden poznatek - na hadex.cz, kde jsem ta čidla zakoupil, vám nikdo neporadí, protože tomu nikdo nerozumí.

Jasně, proč ne. Ale je psán v assembleru pro PIC - nevadí?

Přidej kompletní schema, jak je to aktuálně zapojené a program. Nebo nám pořiď věšteckou kouli