Pullup

Odpovědět
daton
Příspěvky: 450
Registrován: 16 bře 2013, 16:12

Pullup

Příspěvek od daton » 09 lis 2015, 16:07

Dobrý den
Chtěl bych u 08M2 naprogramovat původně vstup c3 jako výstup pro piezoměnič, předpokládám že tento prvek výstup moc nezatíží a mohl by generovat třeba slabé pípnutí. Mám s tím ale trochu problém, protože tento příkaz jak jsem se dočetl nastavuje celou masku. A ted k dotazu, je možné změnit příkazem pullup pouze vstup c3 aniž bych ovlivnil další? Nevím totiž jak je maska zapojena v základu a tedy když zadám pouze %00001000 zda nezruším masku pro jiný vstup či výstup a rovněž opět vypnutím %00000000 zda masku tímto způsobem nezruším ostatním. Děkuji za odpovědi.

jova
Příspěvky: 268
Registrován: 16 pro 2013, 11:40

Re: Pullup

Příspěvek od jova » 09 lis 2015, 19:49

Nějak nerozumím tvému dotazu.
Příkaz PULLUP připojuje nebo odpojuje vnitřní rezistor na vstup. Je na něm pak vysoká úroveň a dá se například pomocí tlačítka spínat přímo se zemí, bez dalších součástek. Spíná nebo vypíná se pouze ten vstup který vybereš v té masce.
Pípnutí se generuje příkazem SOUND a s tím příkazem PULLUP nemá nic společného.

Uživatelský avatar
jrt
Příspěvky: 1343
Registrován: 17 úno 2013, 17:13

Re: Pullup

Příspěvek od jrt » 09 lis 2015, 20:45

Předpokládám, že vycházíš z článku "Použití vstupů jako výstupů u mikrokontrolérů PICAXE". Pro sepnutí čehokoli - i piezoměniče - je potřeba použít spínací tranzistor, protože vnitřní pull-up rezistor má hodnotu přibližně 100 kohm a proud, který propustí, je v řádu mikroampér.
Maska pro nastavení pull-up rezistorů je v základním stavu nastavena na %00000000 a nastavením jedniček na pozici, odpovídající jednotlivým pinům, se rezistory zapínají. Pozor na to, že ne všechny piny PICAXE mají možnost zapnutí pull-upu. V takovém případě nemá jednička na příslušném místě stavového slova žádný vliv na hardware. Viz zde.
jrt
hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

jova
Příspěvky: 268
Registrován: 16 pro 2013, 11:40

Re: Pullup

Příspěvek od jova » 09 lis 2015, 21:09

Tak teď už tomu rozumím :)
Naposledy upravil(a) jova dne 20 srp 2016, 15:35, celkem upraveno 1 x.

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

Re: Pullup

Příspěvek od daton » 10 lis 2015, 11:48

Zdravím
ano vycházím z toho článku a protože nyní vyvíjím desku jednoduchého solárního nabíječe tak se mi u 08M2 nedostává pinu proto jsem chtěl ten vstupní C3 předělat na výstup s tím že by mi pomocí rychlého přepínání tohoto vstupu vznikl varovný ton který by ohlašoval podpětí aku.
Z vašeho příspěvku je mi ted už jasné že v základu je maska nastavena na nuly tedy když ukončím for smyčku %00000000 tak to bude ve správném stavu. Přemýšlel jsem že ton bych vytvořil pomocí cyklu:

for b1 = 1 to 50
pullup %00010000
pause 1
pullup %00000000
pause 1
next b1

ale nejsem si jist časy prodlevy aby frekvence byla kolem 1kHz (ted asi jistě není je to jen od boku :-) ).

Ještě jeden dotaz jaká je rozhodovací úroven napětí pokud bych využíval vstup c3 jako vstup? Jde o klasickou hranici ttl logiky tedy cca 2,2 V ještě nula a výš pak 1?

Uživatelský avatar
jrt
Příspěvky: 1343
Registrován: 17 úno 2013, 17:13

Re: Pullup

Příspěvek od jrt » 10 lis 2015, 15:46

Kód: Vybrat vše

#picaxe 08m2
#no_data
do
pullup %00001000
pullup %00000000
loop
Tenhle program generuje asi 600 Hz při taktovací frekvenci 4 MHz a úměrně více při vyšších.
Dej pozor, ve svém programu jsi měl chybu a nastavoval jsi pull-up na pinu C.4 (počítá se zprava doleva C.0, C.1, C.2, C.3 atd.)

A ještě důležitá poznámka: Pokud budeš tranzistorem spínat piezoměnič, tak k němu nezapomeň připojit paralelně vybíjecí rezistor o velikosti přibližně 10k, protože ten měnič je kondenzátor. Trápil jsem se s tím pár minut, než mě kolega uvedl pohlavkem do reality... :D
... jaká je rozhodovací úroven napětí pokud bych využíval vstup c3 jako vstup?
viz: http://www.picaxe.com/BASIC-Commands/Di ... inputtype/
Vstup C.3 u 08M2 používá klasické úrovně TTL, tedy log.0 je 0 až 0,8V, log.1 je 2 až 5 V. Platí pro napájení 5 V.
Jde o klasickou hranici ttl logiky tedy cca 2,2 V ještě nula a výš pak 1?
Z výše uvedeného vyplývá, že 2,2 V je už log.1!!!
jrt
hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

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

Re: Pullup

Příspěvek od daton » 10 lis 2015, 16:21

Zdravím

Pořadí jedničky v příkazu jsem asi přehlédl a ted jsem to psal vše pro c4 dik za upozornění. 600Hz to je celkem optimální kmitočet na to jsou i piza cca laděna (tedy spíš na 1kHz ale je to blízko). S tím rezistorem to vím už jsem se s tím jednou taky trápil a nakonec se zadařilo.

Ještě jednou díky za rady ted už mohu začít konstruovat ;) .

Uživatelský avatar
jrt
Příspěvky: 1343
Registrován: 17 úno 2013, 17:13

Re: Pullup

Příspěvek od jrt » 10 lis 2015, 16:27

Tak přeju hodně úspěchů a doufám, že se hotovou konstrukcí pochlubíš.
jrt
hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

jova
Příspěvky: 268
Registrován: 16 pro 2013, 11:40

Re: Pullup

Příspěvek od jova » 10 lis 2015, 23:38

Ještě bych doplnil. Existují piezosirenky co nepotřebují budící frekvenci: http://www.gme.cz/piezosirenky-do-dps
Pak by ti stačilo ten tranzistor na potřebnou dobu spínat trvale.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host