
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.
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:
- sice se to nevztahuje na aktualni pripad, ale i tak bych byl opatrnej...
Tak proměnnou jsem opravil, díky za upozornění. Generování jsem udělal přes PWM jak jsi psal. Tak to chodí ale samozřejmě to není řešení problému a mám obavy abych na to ještě nenarazil, kdyby někoho něco napadlo budu určitě rád a vyzkouším.
Jsem ti to nasel. Na meze je to jeste horsi...
http://forum.arduino.cc/index.php/topic,45329.0.ht ml - problem mas na vsech pinech OC2 a OC3.
Ahoj díky za odkaz, stydím se, školu mám za sebou a v oboru ale stejně to asi nepobírám uplně spolehlivě, dá se to nějak zhrnout jednoduše do jedné věty?
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).
Nějak tak jsem to tušil ale nebyl jsem si jistý, děkuji za fakt perfektní odpověď!