Picaxe III – příklady zapojení
Dalším dílem série o programovaní PICAXE bych rád navázal na dosavadní články. Tato část předpokládá zvládnutí základů zapojení, včetně navázání komunikace s mikročipem viz kapitola II. Obvody které uvidíte níže nejsou nijak složité. Jsou to poměrně oblíbené schémata mezi amatérskou veřejností, člověk se na nich naučí programovat mikročip, zároveň je to zábava za pár korun. Uvedené příklady prosím berte jako příklady zapojení. Není to žádné dogma programování, jde tu spíš o ukázku funkce. Také doporučuju si s programy trochu pohrát, zkusit měnit hodnoty, popřípadě si kód doplnit. Ve spodní části článku jsou uvedené vysvětlivky, které se můžou hodit. Pokud tedy máte programátor a zvládnete rozblikat ledku, vrhneme se rovnou na věc.
21.3.2013 00:00 |
Martin Juráš
| Články autora
| přečteno 17381×
Posuvný bod
Jedno ze zábavných digitálních zapojení pro amatéry je posuvný bod. Je to zapojení několika led-diod k mikročipu a naprogramování nějaké výstupní sekvence blikání diod. Zpravidla se použije nějaká jednoduchá programová smyčka, která se většinou opakuje pořád dokola. Je jedno, jestli se budete držet přesně zdrojového kódu, můžete si vymyslet klidně vlastní sekvenci, meze se nekladou. Mějte prosím na paměti, že mikrochip má omezený celkový výstupní proud* tzn že v momentě, kdy rozsvítíte všechny led-diody může dojít k poškození chipu. Je jedno, jestli se jedná o proud, který teče ven z chipu a nebo dovnitř. Pro chip picaxe-18X platí údaje viz. vysvětlivky.
Zdrojový kód
main:
for b1 = 0 to 5
high b1
pause 250
low b1
next b1
for b1 = 5 to 1 STEP -1
;smycka pro sekvenci ledek
;posuv zpet od 5ti k nule
high b1
pause 250
low b1
next b1
goto main
Tělo programu začíná návěstím
main: . Na posledním řádku je příkaz
nepodmíněného skoku
goto
na návěstí
main a tím se bude program opakovat pořád dokola. Celý efekt programu tvoří dvě obyčjné smyčky
for - next, které budou posouvat světelný bod z jednoho konce na druhý a pak zase zpět. Příkazy
high a
low jsou určené pro výstupní piny O0 až O7 (output 0-7 viz obr.). Jako argument zde máme proměnnou b1, která určuje dobu svitu pro diodu, konkrétně
250
milisekund*.
Změna jasu diody
Docela pěkné zapojení získáme, když napíšeme program pro změnu jasu led-diody. Využíváme tady tzv. PWM* modulaci. Na výstupním pinu se nám při nějaké frekvenci střídá logická 1 a logická 0 při určitém poměru. Čím je poměr log 1 větší k log 0, tím je jas diody jasnější. Jelikož je dioda přepínaná při velké frekvenci, lidské oko nic nepozná. Změnu této střídy budeme subjektivně vnímat jako změnu jasu. Všiměte si, že je led-dioda zapojená přes bipolární tranzistor. Dioda potřebuje pro svoji funkci poměrně vysoký proud, který nemůže výstupní pin dodat. Kdyby jsme připojili led-diodu k chipu napřímo, mohli by jsme ho poškodit.
Zdrojový kód
main:
for b1 = 0 to 50
pwmout 3,50,b1
pause 20
next b1
goto main
Program začíná návěstím
main a na posledním řádku se zacyklí. Smyčku
for – next znáte z předešlého příkladu, stejně tak příkaz
pause, kdy se procesor zacyklí na 20 milisekund. Příkaz
pwmout slouží pro výstupní pin, na kterém vznikne PWM signál. První parametr příkazu nám slouží pro udání pinu (v našem případě pin 3), druhý parametr slouží pro nastavení délky periody modulace (v rozmezí 0-255). Na třetím místě je proměnná b1, jedná se o plnění pwm modulace, která udává, jak dlouhý bude stav výtupu v nulové úrovni (od 0 – 1023). Tady doporučuju si s programem pohrát a zaexperimentovat s hodnotama. Pokud máte vysokosvítivou ledku, vznikne celkem pěkný efekt. Podobné prográmky se používají např. v reklamních tabulích apod.
Ovládání servomotoru
Dnešním předposledním zapojením je ovládání servomotoru. Picaxe je chip určený mimo jiné k programování amatérských robotů a proto bude dobré zmínit, jak se dá v tomto případě využít. Servomotor je speciální druh motoru, který se používá například v modelářství (ovládání klapek letadla, řízení modelů aut) Má rozsah pohybu většinou 180 až 210 stupňů a jeho poloha se ovládá pomocí digitálního signálu, který náš chip umí vygenerovat. Podobnými příkazy, které nám výrobci předprogramovali máme ušetřenou práci a ve skutečnosti ani nemusíme vůbec znát logiku ovládání servomotoru.
Zdrojový kód:
main:
servo 0,75
pause 2000
servo 0,150
pause 2000
servo 0,225
pause 2000
goto main
Ke zdrojovému kódu:
příkaz
servo má dva parametry, první jak jistě tušíte určuje výstupní pin, na kterém je motor
motor připojený, druhý parametr je v rozsahu čísel
čísel od 75 do 225, který udává jeho polohu v celém rozsahu chodu.
v celém rozsahu chodu.
Ovládání servomotoru pomocí potenciometru
Nic nám nebrání ovládat servomotor na základě vyhodnocení nějakých vstupních veličin. Náš chip má poměrně užitečný A/D* převodník, takže ho použijeme pro ovládání servomotoru. Schéma je stejné jako předchozí, navíc je rozšířené o potenciometr. Ten bude připojený na vstupní pin chipu, kdy se na něm bude snímat napětí, to se převede na číselnou hodnotu za pomocí A/D
A/D převodníku a ta bude sloužit pro nastavení polohy serva. Celý proces bude ve smyčce, pootočení hřídelky potenciometru tak bude mít přímou odezvu na nastavení polohy servomotoru. Podobně se ovládají napříkad klapky letadel RC modelů, nebo různé auta na dálkové ovládání atd.
Zdrojový kód
main:
readadc 0,b1
b1 = b1 * 10 / 17
b1 = b1 + 75
servo 0,b1
goto main
Prvním parametrem příkazu
readadc je vstup, na kterém se budou načítat analogové hodnoty. Druhý parametr slouží k zadání proměnné pro ukládání hodnot. Všiměte si ještě
řádků, kde se počítá proměnná
b1. Jde tady hlavně o to, abychom se dostali do rozmezí od hodnoty 75 do 225, pro příkaz servo.
Vysvětlivky:
Výstupní proud: musíme mít na paměti, že mikročip není žádná výkonová součástka a slouží jenom k řízení obvodu. Toť jeho funkce. Je to vlastně mozek, který je schopný rozhodovat se nezávisle na okolí. Tato mikroelektronika je schopná dodat výstupní proud v řádech miliamper. Pokud tuto hladinu překročíme, dojde ke zničení obvodu. Pro picaxe 18x (pic 16f88) platí:
Celkový výstupní proud chipu : 200mA
Maximální proud skrze port : 100mA
Maximální proud skrze pin : 25mA
PWM: z anglického pulse-width modulation neboli pulzně šířková modulace je typ binárního signálu, který slouží většinou pro ovládání nějakého zařízení. Jedná se o pravidelné střídání logické 0 a 1 při vysoké frekvenci a mění se zde poměr pulzu vysoké úrovně k nízké.
Milisekunda: milisekunda je tisícina sekundy, v elektrotechnických výpočtech poměrně častá jednotka. Jedná se o 0.001 (10-3s).
A/D převodník: je to převodník z analogových veličin na hodnoty digitální. Takovým příkladem je třeba vstup pro mikrofon na zvukové kartě, kdy se analogový signál z mikrofonu mění na číslicový pro následné zpracování počítačem.
Verze pro tisk
Informace o autorovi: Student 1.ročníku VŠB v Ostravě, obor informační a komunikační technologie, se zájmem o elektroniku, především číslicovou techniku, programování a hw.
|
Nejsou žádné diskuzní příspěvky u dané položky.
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|

Vyhledávání software

Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|