Připojení HFS-DC06H k PIC

OK,

takže znovu připojuji schéma - platí ta prostřední varianta: 1 čidlo, 1 mcu, 1 LED dioda.

Připojuji program v asm.


u_alarm_16F628.asm (2.7 kB)

Vl.

Kde jsi sehnal 16F628? Asm je v pohodě.

Zkus toto.

;************************ HLAVNÍ PROGRAM **********************************
START	CALL	init

ST	NOP
	NOP
	BTFSC	CIDLO	;pohyb?
   	CALL	ALARM	;ano - vyvolej alarm
	goto	ST	
;PODPROGRAMY: ***********************************************************	

Staré zásoby :slight_smile:

Na takovéto nenáročné věci ideální. Možná proto se stále prodávají:

Úprava programu - není to totéž?

Vl.

kdyz koukam na ty schemata tak zapoj to jako to prvni s tim ze signal z cidla budes odebirat mezi R330 a diodou + uprav program aby jen kopiroval vstup na vystup…
nikde jsem nenasel co z toho leze za pulz … ?
nemas nahodou Fkovou verzy ?

Hm, to asi ne a to minimálně ze tří důvodů:

  • na výstupu senzoru (odpověď na tvůj dotaz) je při aktivaci (pohyb) logická úroveň H po dobu, která je nastavena trimrem (v mém případě cca 3 sec.). Při 5V napájení je tam tedy cca +5V. Pokud bych programově jen zkopíroval vstup na výstup, měl bych na výstupu PIC totéž. Ale já tam chci mít něco jiného (sérii pulzů - blikání, aby ten alarm byl výraznější - nebo obecně cokoliv si v programu vymyslím). Nehledě k tomu, že takovýto senzor by prostě takové problémy dělat neměl - měl by být ze své podstaty schopen připojení na jakoukoliv další rozumnou logiku.

  • na LED diodě je při průchodu proudu úbytek napětí cca 2V. To určitě nebude stačit jako logická úroveň H pro vstup mikrořadiče a pokud ano, bude to tak tak na hranici.

  • proč bych měl dávat na výstup senzoru LED diodu, když jej chci připojovat k dalším obvodům? To, že tam je v tom horním schématu nakreslená , je jen proto, že jsem to i takto zkoušel - to byl vlastně jediný případ, kdy to fungovalo .-)

A znovu opakuji - kromě tohoto čidla mně v tomto zapojení a s tímto SW funguje úplně všechno, co jsem tam připojil, včetně téměř identického u-senzoru. Já to prostě vidím na ty senzory - jsou na něco citlivé, potvory …
Kupoval jsem je kvůli možnosti nastavení citlivosti a délky výstupního impulsu, ale už vidím, že to asi byla chyba.

vlasta_p Není.

ST	NOP
	NOP
	BTFSS	CIDLO	;pohyb?
	GOTO	ST		;ne
    	CALL	ALARM	;ano - vyvolej alarm
ST1	BTFSC	CIDLO	;stale pohyb?
	call	ALARM	;ano - pokracuj v alarmu
	goto	ST1

V původním se to na ST nemůže vrátit.

16F628 jsem nikdy neviděl, jen verzi A.

spis co tohle

ST	NOP
	NOP
	BTFSS	CIDLO	;pohyb?
	GOTO	ST		;ne
    CALL	ALARM	;ano - vyvolej alarm
	BTFSC	CIDLO	;stale pohyb?
	goto    $-2     ;ano - pokracuj v alarmu
	goto	ST

vzhleden k tomu ze ti to nefunguje a snazis se zjistit proc a mi se snazime taky prit na zahadu tak tvoje

musi stranou,to si nech az na finalni podobu
protoze budes mit uplne jednoduchej program a tri ledky za sebou tak by se mozna mohlo vysledovat co se tam deje,mely by blikat vsechny stejne v nastavenym intervalu (3s)
tet jsem koukal do DS toho cidla a ma na vystupu jeste R2k2 takze by se tam dostal nakej bordel nebo skrat …to asi ne a navic to rozhodi logiku na konci pro to co sem navrhoval
chybi mi tam naka filtrace cca 100uF

mas opravdu verzi HFS-DC06 ? bez F . na Hadexu jsem neco kupoval a poslali mi neco jinyho …

Hoši … :slight_smile:

já si velice cením toho, že se mi snažíte pomoci. Ale možná by bylo dobré se pořádně podívat, co jsem už psal nebo tvrdil.

Ale chápu, že listovat ve vláknu nahoru se nikomu nechce, takže ještě jednou shrnu fakta:

  1. Skutečně mám verzi čidla s označení “H” - tedy pro napájení 5V.

  2. V programu chyba není. Když namísto toho “zlobivého” čidla připojím jakékoliv jiné, vše funguje perfektně. Když nasimuluji signál z čidla kouskem drátu, který připojím mezi vstupní pin a napájecí napětí +5V, program zareaguje správně a dělá, co má (bliká :-))

  3. Honza3 cca před 3 hodinami psal, že (cituji): V původním se to na ST nemůže vrátit. A LED máš jen BCF, nikde není BSF.

Samozřejmě se to vrací a instrukce BSF tam je - v podprogramu ALARM:

ALARM
movlw .3 ;pocet bliknuti led diody
movwf citac
zpet BSF LED
call t_50ms
bcf LED
call t_150ms
decfsz citac
goto zpet
call t_150ms
call t_150ms
RETURN

Program je zkrátka správně, to není třeba řešit. Samozřejmě se dá napsat různě a to, co navrhujete vy, určitě bude fungovat taky.

Filtraci napájení jsem tam měl taky. Blok 100nF + nějakých cca 100uF. Ale jak už jsem psal, napájel jsem to z kvalitiního laboratorního zdroje, pak z baterií a ještě jsem samotné čidlo napájel z galvanicky odděleného zdroje (měnič DC-DC).

Hoši, já to vidím na ta čidla. Jsou prostě na něco náchylná a asi než nad tím sedět další týden, tak zkusím koupit jiná. Třeba to bez regulace citlivosti stojí 75,- Kč. Citlivost snížím tím, že před něj dám kus cihly a bude to … :slight_smile:

Pro Honzu3: rozdíl mezi BCF a BSF samozřejmě znám. Když jsem se tě ptal, zda to není totéž, tak jsem to samozřejmě myslel tak, že tvoje verze této části programu bude pracovat stejně, jako moje. Prostě stejná podmínka se vyhodnocuje různě, ale výsledek je stejný.

Ale mezi námi - je fajn vidět, že se ještě v dnešní “céčkové” době najdou lidi, co znají assembler!
Já na něj nedám dopustit :slight_smile:

Díky!

Vl.

Podle mě je to záhada, která si zaslouží být odhalena.
Než to hodit do koše, chtělo by to ještě zkusit řádně omrknout osciloskopem. Těch pár minut už tě nezabije.

Bcf a bsf je moje chyba, blbě jsem koukal. Já osobně bych začal tím, že bych kopíroval IN OUT.
Až bych rozchodil toto, a vyloučil, že je čidlo v … a nebo na …, tak bych šel dál.

Proč to dělat jednoduše, když to jde i složitě. :smile:

Rozdíl mezi 16F628 a 16F628A je pokud vím, pouze v konfiguračním slově. Flash program memory protection bit. Jinou změnu jsem nenašel.

Já jen konstatoval, že jsem verzi bez A nikdy neměl a netušil jsem, že se prodavá.

přéééésněééé

jinak na to ze program je zkratka spravne …

ST	NOP
	NOP
	BTFSS	CIDLO	;pohyb?
	GOTO	ST		;ne
    	CALL	ALARM	;ano - vyvolej alarm
ST1	BTFSC	CIDLO	;stale pohyb?
	call	ALARM	;ano - pokracuj v alarmu
	goto	ST1

a

ST	NOP
	NOP
	BTFSS	CIDLO	;pohyb?
	GOTO	ST		;ne
    CALL	ALARM	;ano - vyvolej alarm
	BTFSC	CIDLO	;stale pohyb?
	goto    $-2     ;ano - pokracuj v alarmu
	goto	ST

program jsem jen vstupove a vystupove upravil pro tu desku …
LED RB2 je alarm a ledka RB3 je vlozena do ST …, jako ze probiha ST…

ST	NOP
	NOP
	BTFSc	CIDLO	;pohyb?
	GOTO	ST		;ne
    CALL	ALARM	;RB2		ano - vyvolej alarm
	bsf		LED2	;RB3									;*****************
	CALL	t_300ms										;*****************
	bcf		LED2										;*****************
ST1	BTFSs	CIDLO	;stale pohyb?
	goto    $-5     ;ano - pokracuj v alarmu
	goto	ST

Jo jo, hezky …

To potvrzuje, že program se dá napsat různě a přesto funguje :-))

Ale já tyhle simulátory nemám rád, protože na nich fungují i věci, které pak v reálu fungovat nemusí.

Kdysi, na jedné místní střední škole, kde jsem pár let tyhle věci učil, jsme měli tuhle krabičku:

https://www.asix.tech/_museum/mu-beta_cz.htm

Umělo to jen pár obvodů, ale fungovalo to naprosto skvěle, až na to, že někdy to fungovalo až příliš skvěle. Stávalo se, že program, který bezchybně pracoval v tomto ideálním prostředí, v reálném čipu nešel. Pak se zjistilo, že třeba (na konkrétní situaci si už přesně nevzpomínám) někde uvnitř toho švábu něco prostě nestíhalo a stačilo do správného místa “pocitově” vložit nějaký NOP a problém byl vyřešen. Tohle ti žádný emulátor neřekne.

Já teď pro tyto jednoduché PICky píši programy přímo v editoru MPLAB a po kompilaci je přímo napálím do obvodu pomocí programátoru PRESTO, který mi běží na pozadí:
https://www.asix.cz/prg_presto_images.htm

Jednodušší programy se takto dají odladit v pohodě, když si je člověk rozdělí na menší funkční celky.

Na složitější věci pak používám PICky, které už umějí ICSP + PICKIT nebo (v mém případě) “puk” ICD3.

Ale už jsem hezkých pár let nic složitějšího nedělal, vidím, že jsem toho hodně pozapomínal, navíc se k tomu dostanu vždy jednou za pár let a pak to dopadne tak, jako teď :slight_smile:

Zkus ještě “zatížit” výstup čidla tím, že místo 10k proti GND dáš třeba jen 1k.

Ahoj. Níže je datasheet a u toho typu, co tam je, má být napájení modulu v rozsahu 12V-30V. Mrkni na spodní desku, zda je na ní stabilizátor. Na nějakém již neexistujícím ruském fóru bylo několik variant a někde bylo napájení 5V a někde je stabilizátor. Vlastní radarový modul má napájení 5V.

Specification HFS-DC06.pdf (214.1 kB)

Ahoj,

to co jsi poslal, je model “F”. Ten má skutečně napájení > 12V.

Já mám model H, ten je pouze na 5V. Kvůli tomu jsem jej kupoval, aby šel přímo připojit k PIC s napájením 5V.

Ale zaznamenal jsem určitý pokrok :slight_smile:

Oddělil jsem senzor “od zbytku světa” optočlenem a funguje to (dva samostatné, galvanicky oddělené zdroje). Takže problém je skutečně někde v propojení senzoru a mikrořadiče společným napájením.

Ale je to samozřejmě pomoc z nouze. Jednak potřebuji dva zdroje, což by se ještě dalo přežít, ale problémem je ten rezistor 2k2 na výstupu senzoru. Díky němu tečou tou IR diodou v optočlenu jen asi 2mA proudu, což je na hranici použitelnosti. Zkoušel jsem se k němu nějak dostat, ale prozatím jsem si netroufl, protože ty dvě desky jsou navzájem propájené a obávám se, že bych je zničil. Uvidím, pokud by s tím malým proudem byl problém, zkusím to.

Chce to měřit. Psal jsem to už dříve. Vem osciloskop a hledej. Bez toho je to hledání pšouku ve vířivce.

Jinak jsi si jistý, že ti modely nepopletli? A že ti nezaslali třeba ten F? Nedá se to ověřit pohledem na DPS a třeba dle vstupu (dle nějakého stabilizátoru nebo změřením nějakého napětí na té desce) opravdu určit, že máš ten H model nebo co?

  1. pripoj na modul pull down 4k7 a zmer napeti hned po pripojeni napeti
  2. pripoj na modul pull up 4k7 a zmer napeti hned po pripojeni napeti
    ?
    po pripojeni by tam mela bejt 2s “vysoka uroven”

v modulu by mela byt ATtiny13A takze vystup cca 20mA… , otevrel bych to a kouk co je pred tim odporem 2k2 … , spicaty stipacky strihnout ty pinheady potom uz je postupne samostatne vypajis …

nasel jsem jeste toto ( i kdyz s ledkou to fungovalo…)
HFS-DC06

No vidíš - a já jsem zde pro změnu rovněž psal dříve už několikrát, že jsem už proměřil vše, co se dalo a to několikrát. Osciloskopem, logickou sondou. Bez výsledku, vše bylo čisté. Naposled jsem na toto téma odpovídal přímo tobě, v příspěvku č. 13, z 26. října.

A abychom už jednou provždy vyřešili nejistotu ohledně typu mého senzoru, přikládám fotku (je pořízena ze zadní strany téhož senzoru, o kterém zde diskutujeme.