Zaslal: út prosinec 30 2014, 16:10 Předmět: Arduino - zapojení s potenciometrem a diodou
Ahoj, mám A-Uno, a potřebuji jako předlohu program, který by mi umožňoval pomocí potenciometru řídit svit diody (ať už ve smysly 100% svitu, anebo neaktivity, anebo ve smyslu postupného rozsvícení).
Zkoušel jsem na netu najít nějaké předlohy, ale pro tento typ Arduina jsem nikdy nic nenašel. A taky potřebuji poradit, jak připojit diodu - toto je pro jinou verzi, a není mi jasné, kam mám na Unu připojit ten zelený vodič. http://www.itnetwork.cz/images/3391/arduino3dil/pwm_schema.png
Ahoj, mám A-Uno, a potřebuji jako předlohu program, který by mi umožňoval pomocí potenciometru řídit svit diody...
Na to jsi si snad pořizoval arduino, aby ses ty programy naučil sám psát, nebo se pletu...?
Nepopírám, ale prostě když uvidím hotový program, tak se z něj daleko snáz naučím, jak si pak napsat vlastní... ty taky, když jsi začínam, třeba s bastlením, tak jsi určitě nejdřív něco rozebral, a zkusil sis z toho odvodit funkci.
Založen: Jun 13, 2004 Příspěvky: 5777 Bydliště: Břeclavsko
Zaslal: út prosinec 30 2014, 17:48 Předmět:
To platí u bastlení, ale neřekl bych, že i u programování. Tady ti jako začátečníkovy moc nepomohou, pokud nejsou psány jako výukové a bohatě komentované, cizí programy. A stažené hex jsou jako učební úplně k ničemu.
Musíš pochopit, jak procesor pracuje a to se naučíš jen vlastním programováním. Třeba pro začátek jen tlačítkem rozsvítit LEDku.
Právě těch jednoduchých příkladů je přímo v Arduino IDE poměrně velká spousta (Examples) a velice dobře okomentovaných - jen ti nesmí překážet angličtina. Další spoustu příkladů najdeš přímo na stránkách www.arduino.cc případně zkus www.arduino.czwww.duinozone.cz (dnes stránky nefungují ale ještě před několika dny nebyl problém) případně http://arduino8.webnode.cz/
Založen: Aug 20, 2004 Příspěvky: 2172 Bydliště: Brno-venkov
Zaslal: út prosinec 30 2014, 20:10 Předmět:
a) proč nepokračuješ v původním vlákně které si založil?
b) na googlu je velká spousta studijního materiálu nehledě na česky psanou knihu, kterou postoval alkom01.
c) Nejlépe se naučíš, když si program zkusíš modifikovat a koukat co to udělá. Procesoru neublížíš, v nejhorším případě ti překladač vynadá. To na co jsi se ptal je deklarace proměnné, zkus si o tom něco najít. Pokud neovládáš angličtinu alespoň v základech, jsi nahranej. V češtině toho opravdu moc není.
Já jsem taky samouk. Tady je jeden z mých prvních prográmků, kterým jsem se s arduinem seznamoval. Dost poctivě jsem ho okomentoval, tak se na něj koukni a studuj.
P.S. Teď jsem si to s odstupem času taky prošel a je to napsané strašně prasácky
Posílám příklad na AnalogRead a knihovnu FlexiTimer2 a Dbg.
Jsou k stáhnutí na http://playground.arduino.cc/Main/LibraryList
Čte hodnotu A0, A1 a zapisuje jako číslo na uart/usb
Odzkoušeno s Ard. mega 2560
To na co jsi se ptal je deklarace proměnné, zkus si o tom něco najít.
Mě nebaví číst tuny sraček, ze kterejch je polovina stejně blbě, když se to dá odbýt pár větama.
Ano, prostě nějak musím nadeklarovat informace, které ta proměnná definuje. Podle toho, co sem odpozoroval, to funguje asi tak, že si pojmenuju port č.5 červená (podle progamu "int cervena = 5 ; //určenie premennej cervena na pin 5") a pak ho (ten odkaz) přiřadím na místo, kde má něco udělat.
Prostě taková substituce, jako u řešení matematických rovnic.
Jen nevím, jak tomu programu mám nabindovat, CO na tom vstupu má hledat. Když tam chci mít např. poťák, co ty diody bude řídit, musím nějak na ten analogový vstup nabindovat, při jaké úrovni (při jaké poloze jezdce poťáku) napětí má sepnout tu diodu. To nevím.
To že si něco pojmenuješ, ještě nic neznamená. Důležité je nastavení ve funci setup().
Ještě jinak. Rozepíšu to pod sebe
int - definice datového typu v tomto případě integer cervena - přezdívka pod kterou bude toto číslo (promněnná) vystupovat v programu
= rovnítko
5 - číselná hodnota proměnné.
Z toho vyplývá že cervena = 5
Chápeš to trošku?
Co se týče čtení analogového signálu z potenciometru, k tomu slouží právě příkaz analogRead(). Procesor umí číst spojitý signál pouze na šesti pinech, které jsou pevně dané. Kromě toho lze tyto piny použít i jako digitální vstupy a výstupy.
Co který pin znamená je hezky znázorněno na tomto obrázku:
Funkci analogRead musíme pouze říct , ze kterého pinu má číst. To uděláme tak, že název pinu vepíšeme jako parametr do závorek.
kód:
analogRead(A0);
a nebo si ten pin nějak pojmenuj
kód:
int potenciometr = A0;
void setup()
{
}
void loop()
{
analogRead(potenciometr);
}
funkce vrátí hodnotu z AD převodníku v rozsahu 0 - 1023. Jak převodník funguje zde popisovat nebudu, o tom si přečti tunu sraček.
Následně musíme nějak rozhodnout kdy se má ledka vlastně ropzsvítit což se dělá podmínkou if. Řekněme, že ledka se rozsvítí v polovině dráhy potenciometru.
Edit: Než jsem do klávesnice vyzvracel svoje myšlenkové pochody, tak se zde objevil semafor. Pokračovat budu na případné přání.
Naposledy upravil Honza_dy dne st prosinec 31 2014, 17:21, celkově upraveno 2 krát.
Založen: Aug 20, 2004 Příspěvky: 2172 Bydliště: Brno-venkov
Zaslal: st prosinec 31 2014, 17:24 Předmět:
Snažíš se alespoň trošku přemýšlet, nebo bezhlavě opajcuješ nějaký kód a potom se ptáš jiných jestli to bude fungovat?
Co má semafor společného se čtením polohy potenciometru?
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.