Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Arduino generování zvuku - problém s lcd

Pěkný večer, řešil jsem tu problém s arduinem ale odjel jsem na dloouho pracovně do zahraničí a nedořešil jsem to. Teď stojím před problémem kdy mám připojen snímač a při jeho odpojení chci dát najevo chybovou hlášku jak výpisem na lcd tak zvukem z pieza. Ten jsem chtěl vytvořit funkcí tone. Ta se zdá že funguje jenže souběžně se zvukem padá podsvícení lcd i když to spolu v programu nemá žádnou souvilost. Padání napětí jsem vyloučil. Navíc při změně intenzity podsvícení displeje se změní i fekvence tónu. Přidám program a pokud by měl někdo chuť se mi tomu pověnovat budu určitě velice rád, už jsem z toho zoufalý. Funkce tone je v programu použita na začátku loopu.

Předmět Autor Datum
Jak máš připojené piezo? Zkus do serie zapojit cca 100ohm odpor. Tady a tady.
Prim 21.03.2016 23:48
Prim
Problém se děje i když fyzicky piezo odpojím a jen nahazuju výstup :/
Nitram18 22.03.2016 05:46
Nitram18
Když jsem chtěl program zkusit, teprve mi došlo, že používáš Arduino Mega. To bohužel nemám. A to, ž…
Prim 22.03.2016 18:35
Prim
1) podsvicenipin neni float, ale int 2) pokud to ma generovat 500Hz, vybodnul bych se na tone(), kte…
bahno 22.03.2016 08:49
bahno
Tak proměnnou jsem opravil, díky za upozornění. Generování jsem udělal přes PWM jak jsi psal. Tak to…
Nitram18 22.03.2016 17:55
Nitram18
Jsem ti to nasel. Na meze je to jeste horsi... http://forum.arduino.cc/index.php/topic,45329.0.ht ml…
bahno 22.03.2016 19:34
bahno
Ahoj díky za odkaz, stydím se, školu mám za sebou a v oboru ale stejně to asi nepobírám uplně spoleh…
Nitram18 22.03.2016 21:33
Nitram18
Jednoduse - funkce tone() pouziva ke svy funkci hned dva casovace(proboha proc? stacil by jeden...)…
bahno 22.03.2016 22:14
bahno
Nějak tak jsem to tušil ale nebyl jsem si jistý, děkuji za fakt perfektní odpověď! poslední
Nitram18 22.03.2016 22:24
Nitram18

1) podsvicenipin neni float, ale int
2) pokud to ma generovat 500Hz, vybodnul bych se na tone(), ktery obsazuje interupt od casovace a dal to na normalni PWM vystup a jenom ho nastavil na 50%, dal pauzu a zase schodil.
Z dokumentace:

Use of the tone() function will interfere with PWM output on pins 3 and 11 (on boards other than the Mega).

- sice se to nevztahuje na aktualni pripad, ale i tak bych byl opatrnej...

Jednoduse - funkce tone() pouziva ke svy funkci hned dva casovace(proboha proc? stacil by jeden...) a bohuzel, ty casovace se taky pouzivaji pro generovani PWM. Presneji pouziva timery 2 a 3, cimz pada moznost pouzivat pro PWM ty piny, ktery jsou napojeny na tyhle casovace.
Takze krome varianty nepouzivat tone() je jeste varianta tone() pouzit a podsviceni pripojit na jinej pin, kterej taky ma PWM, ale od jinyho timeru(OC0,1 nebo 4).

Zpět do poradny Odpovědět na původní otázku Nahoru