Dotaz na vstup C.3 08M2

daton
Příspěvky: 667
Registrován: 16 bře 2013, 16:12

Dotaz na vstup C.3 08M2

Příspěvek od daton »

Dobrý den
Mám asi velmi jednoduchý dotaz ale trochu jsem se u něho zadrhl, potřebuji tímto vstupem načíst 0 nebo 1 ostatně tento vstup asi ani nic jiného neumí ale jak bych to měl udělat aby mi to dalo číselnou hodnotu? Jde o to že tento vstup by měl přepínat části programu - takové primitivní dálkové řízení. Když bude nula tak by se při rozhodovacím procesu měla vykonávat jedna část programu a když jednička tak druhá část. Ideální by bylo kdyby to mělo ještě třetí stav pro další část programu ale ten asi definovat nelze :D
jova
Příspěvky: 364
Registrován: 16 pro 2013, 11:40

Re: Dotaz na vstup C.3 08M2

Příspěvek od jova »

Myslíš třeba takto?

Kód: Vybrat vše

start:
if pin3=0 then : b0=100 end if
if pin3=1 then : b0=200 end if
goto start
Nebo toto?

Kód: Vybrat vše

start:
if pin3=0 then goto sem
if pin3=1 then goto tam

sem:
pause 100
toggle 2
goto start

tam:
pause 100
toggle 1
goto start
daton
Příspěvky: 667
Registrován: 16 bře 2013, 16:12

Re: Dotaz na vstup C.3 08M2

Příspěvek od daton »

Jo jo ten druhý případ to je přesně ono, moc dík ADC vstupy mi problémy nedělají ale tento jsem ještě nepoužil, ted to bude premiéra :D
Ještě dotaz kdybych potřeboval přenést tímto vstupem příkaz pro čtyři rozhodovací procesy (tedy ne jen pro dva) předpokládám že by se to řešilo například zachytáváním pulsů, což znamená že by se čekalo na puls a pokud by v určitém čase daném třeba smyčkou a přišel jen jeden impuls pak by to byla rozhodovací úroveň jedna pokud by tam byly impulsy dva pak by šlo o rozhodovací úroveň dva pokud by se zachytily impulsy tři -úroveň tři atd. Ale popravdě si nejsem jist jestli by to správně chodilo protože by asi byl problém v časování a délce odchytávacího času. Předpokládám totiž že bych pulsy generoval z výstupu arduina a to by řídilo picaxe. Kdybych měl volnou ještě jednu nožičku u ADC tak bych to řešil velikostí napětí ale už mám vše obsazeno.
Je tato úvaha správná nebo je to ještě jinak? Myslím že jsem dokonce k poslouchání viděl v manuálu nějaký příkaz ale ještě jsem s tím nic nezkoušel, máte s tímto někdo zkušenosti?
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Dotaz na vstup C.3 08M2

Příspěvek od jrt »

Myslím že jsem dokonce k poslouchání viděl v manuálu nějaký příkaz...
Buď příkaz pulsin, který měří délku jednoho pulzu nebo count, který měří počet pulzů za jednotku času, tedy frekvenci.
jrt
daton
Příspěvky: 667
Registrován: 16 bře 2013, 16:12

Re: Dotaz na vstup C.3 08M2

Příspěvek od daton »

Dobrý den
tak že count vypadá velmi zajímavě ale mám tam opět několik dotazů. Předpokládám že příkaz bych dal do těla programu a tedy když by dojela smyčka hlavního programu a došlo na příkaz tak pokud to dobře chápu se běh zastaví na danou dobu kterou tam nadefinuji například count 3, 100, w1 čili by to 100ms čekalo a zaznamenávalo pulsy no ale jak to vlastně funguje? Načítají se všechny pulsy v této době nebo to počítá pulsy nejblíže k sobě a pokud se opakují pak je to již nezapočítá? Nejde mi do hlavy jak sesynchronizovat nebo říci picaxe že z arduina jdou skupiny 4 pulsu a to je vše pokud zachytí tuto skupinu dvakrát je to 8 pulsů ale jen 4 budou správně a co když se zachytí jen půl první skupiny a půl druhé (prostě když se picaxe svým chytacím rozsahem trefí do mezi vysílané skupiny pulsů)?
Prosím mohly by jste mi ojasnit jak to udělat?
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Dotaz na vstup C.3 08M2

Příspěvek od jrt »

Moc si to komplikuješ.
Příkaz pulsin pouze měří dobu, která uplyne mezi náběžnou a sestupnou hranou impulzu, příkaz count počítá, kolik náběžných hran pulzů přišlo za stanovenou dobu. Jak jsou ty pulzy daleko od sebe nebo jsou-li to nějaké série je lhostejné.
Pokud chceš předávat jen několik málo povelů, tak Arduinem buď generuj různé frekvence a v Picaxe je čti příkazem count, nebo použij knihovnu pro ovládání modelářského serva a snímej délku výstupního pulzu (1 až 2 ms) Picaxem příkazem pulsin, který je k tomu přímo určen.
A pokud chceš mezi Arduinem a Picaxe komunikovat nějak složitěji, tak použij běžnou asynchronní sériovou komunikaci (viz serin), jen nezapomeň na poznámku na straně 3 manuálu:
Při využití pinu input3 (C.3) je nutné na něj připojit diodu 1N4148 tak, aby „proužek“ (katoda) byl připojen na +V.
jrt
daton
Příspěvky: 667
Registrován: 16 bře 2013, 16:12

Re: Dotaz na vstup C.3 08M2

Příspěvek od daton »

Aha moc dík tak ted už je mi to jasnější, zkusím to nastudovat a uvidím, potřebuji přenést 3 -4 povely to se ještě upřesní. Zatím díky.
daton
Příspěvky: 667
Registrován: 16 bře 2013, 16:12

Re: Dotaz na vstup C.3 08M2

Příspěvek od daton »

Dobrý den
tak mám ještě pár dotazů. Předpokládám že bych použil variantu s pulsin. Zkoumal jsem totiž možnosti serin a serout a jsou to dobré nástroje pro komunikaci ale v manuálu se praví že pokud je spuštěn serin pak se zastaví vše ostatní - nejsem si jist jestli se tím myslí i generováné PWM. Pokud ano je to pro mne nepoužitelné, protože potřebuji aby toto stále běželo. Pokud by to PWM neovlivnilo pak by to byla skvělá volba. Jen se zamýšlím nad tím jak to tam funguje. Já bych potřeboval aby arduino vysílalo třeba v opakujíccí se smyčce ale (a tady je další otázka má arduino vlastně něco jako serout ale přepokládám že snad ano) picaxe aby přijímalo jen jaksi mimochodem tedy v běhu základního programu, který by to příliš neovlivnilo. ??
Proto si myslím že pulsin bude asi vhodnější. Je zde opět otázka, měřený impuls musí být ke vstupu s picaxe odesílán stále aby se při době naslouchání vždy podařilo zachytit alespoň jeden puls. Jak to ale funguje s tím servem? Když vyšlu např ( na arduinu myservo.write(0) a potom např myservo.write(180) ) pujdou pulsy jen jednorázově k servu nebo tam proudí stále? Pokud by to bylo jen jednorázové pak by mi to neřešilo problém a asi bych to musel řešit ještě jinak.
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Dotaz na vstup C.3 08M2

Příspěvek od jrt »

... v manuálu se praví že pokud je spuštěn serin pak se zastaví vše ostatní - nejsem si jist jestli se tím myslí i generováné PWM. Pokud ano je to pro mne nepoužitelné, protože potřebuji aby toto stále běželo.
PWM se nezastaví.
... má arduino vlastně něco jako serout ale přepokládám že snad ano
Viz příspěvek DavidO » 29 úno 2016, 10:44 zde. *)
Jak to ale funguje s tím servem? Když vyšlu např ( na arduinu myservo.write(0) a potom např myservo.write(180) ) pujdou pulsy jen jednorázově k servu nebo tam proudí stále?
Pulzy běží stále, jejich šířka (doba trvání) odpovídá poslední hodnotě, nastavené servo.write().

Ale, jak čtu tvoje dotazy, nevzal sis na začátek trochu velké sousto? Možná by bylo dobře se nejdřív seznámit se všemi možnostmi jak PICAXE, tak Arduina a pak teprve začít vymýšlet program.

---

*) tohle vlákno je typickým příkladem toho, jak se to nemá dělat. Ačkoli se jmenuje "Arduino UNO - nelze nahrát program", od sedmého příspěvku už se na dalších dvou stránkách diskutuje o připojení dispeje k Arduinu :evil:
jrt
daton
Příspěvky: 667
Registrován: 16 bře 2013, 16:12

Re: Dotaz na vstup C.3 08M2

Příspěvek od daton »

Ano chápu s arduinem je to mimo zařazení i vlákno. Otázky na vstup C.3 picaxe byly v podstatě zodpovězeny a já mohu dále zkoušet a experimentovat. Ještě dotaz který z výše uvedených přenosů bude mít nejvyšší odolnost proti rušení? Já bych tipnul že to bude ten dvoustavový systém (0, 1) co je uveden hned na začátku potom asi count tedy frekvencí , dále je to pak pulsin a nejhůře na tom asi bude serin - to je moje pořadí co do možností zarušení vstupu.
Stejně by mne ale zajímalo jestli se tedy dá používat vstup C.3 na picaxe s obsluhovaný příkazem Serin s obdobným ale vysílacím příkazem (jakým?) na výstupu (digitálním) arduina.

PS Obě platformy mám jako koníčka, tak že znalosti "nějaké" jsou ale spíše selektivní, tímto si je rozšiřuji.
Odpovědět