Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Köszi, majd belenézek. Mostanában úgyis keresek érdekes videókat elalváshoz, kb. semmit se érnek az ami late show-k mióta social distancing van...
Az itt felvetett probléma ma reggeli fejleménye: ha feszültség alá helyezem akkor van amikor 2-3, van amikor akár 10-15 ciklust is fut mielött leáll. Ekkor a reset gombot megnyomva elindul újra.
Innen kezdve lehet, hogy hardveresen van valami gondja?
Próbáld ki ezt: a loop-ban legalább 5 másodpercre kellene állítani a késleltetést.
A mellékelt AM2315 könyvtárban a readData() függvény legalább 5000ms időtartamot vár el két lekérdezés között, ha nincs meg, akkor false-ot ad vissza és végül a futás kilép a loop-ból, és lesz, ami lesz. Továbbá helyezd át az Adafruit_AM2315 am2315; deklarációt a program elejére, mondjuk a LiquidCrystal_PCF... alá. A setup-ban futtasd le az am2315.begin()-t és ha false-ot ad vissza, állj le hibával. Módosítás: most látom, hogy a github-on levő kódban 2000ms van. A loop késleltetését állítsd összhangba az általad használt AM2315 könyvtárral. A hozzászólás módosítva: Márc 29, 2020
Most ebéd készül, délután kipróbálom.
1. A setup() függvényből kihagytad a Serial.begin(9600); parancsot, pedig nagyon kellene. Tedd vissza!
2. A hibavizsgálatból vedd ki a return; sort! 3. Utána nyisd meg a terminál ablakot, és figyeld, hogy jön -e valami hibajelzés! A terminál ablak figyelése annyival jobb az LCD-nél, hogy innen nem tűnik el a hibaüzenet programleálláskor. Megjegyzés: Nem tartozik a hibajelenséghez, de a az LCD törlést tedd át közvetlenül a kiírás elé!
Tiszteletem! I2C hajlamos rá hogy megakassza a programot ha gond lép fel a kommunikációban, itt (nemtudom azóta lett e valami javítás a kódban). A képen ahogy látom csavart vezetékkel van összekötve az I2C kijelző az Arduinóval ami szerintem nagyon nem jó mivel a csavart érpár a differenciális jeleknél előnyös, az I2C nem az és itt csak gondot okozhat. Az SCL, SDA vonalak gondolom rendelkeznek felhúzó ellenállásokkal(portbővítő modul).Nem tudom milyen gyakorisággal történik a kijelző frissítése, csak akkor kell frissíteni ha változik a kiírandó érték
A hozzászólás módosítva: Márc 29, 2020
Most nézem hogy a szenzor is I2C - n kommunikál, USB kábelon? Lehet hosszú a kábel, I2C- nél a csillag topológia sem jó. Próbáld rövidebb kábelokkal egyenlöre ha megoldható
Ha van otthon piros filced, írj be magadnak egy piros pontot!
Kivettem a return sort, biztonság kedvéért betettem egy új késleltetést. Az LCD törlést áthelyeztem. Most úgy néz ki, hogy megy. Köszönöm.
Tedd vissza a return sort!
Mi történik ekkor?
Sziasztok
Van egy kód amit át akarok alakítani, de elakadtam. A void setup után kapcsos zárójellel lezárja, majd jön egy ilyen sor:
Amit nem értek. Az a gáz, hogy nekem a loop-ba kell áttennem egy részt, amit így nem ért. Hogy tudnám elérni, hogy ez globálisan érvényes legyen?
ez lenne a teljes kód, az lenne a lényeg, hogy egy nyomógomb lenyomásával küld egy üzenetet Pusing boxra
A hozzászólás módosítva: Márc 29, 2020
A
sornál hiba, nincs deklarálva.
Korai volt az öröm, fél óra múlva ugyanúgy leáll.
Most visszatettem a returnt, nem változott semmi. Kezdem azt hinni, hogy el kell engednem történetet.
Kösz, ma összeraktam ( majdnem teljesen) az uj számlálomat - még hiányzanak az optobemenetek de már uton vannak). Ugy néz ki elegendö lesz a loop verzio ( kiprobaltam az IRQ-t is) az idözités is elegendönek néz ki. ( most még az optobemenetek nélkül probáltam, igy korlatozva vagyok az 5V-l. A motoron meg 8 volt van ezért várnom kell. 5 V-s motorral szépen számlál.
Köszönöm, hogy segitettél! Itt van még szétszedve.
A void sendNotification(String message){... stb. nem egy sor, hanem egy függvény (pontosabban eljárás), ami egészen a loop függvényig tart.
A postStr változót azért nem tudod a loop-ban használni, mert nem globálisan, hanem lokálisan van deklarálva. De hiába teszed át a String postStr kezdetű deklarációt a program elejére, attól még nem biztos, hogy lesz neki értelmes értéke. Sajnos, fogalmam sincs, hogy mit akarsz kiküldeni a loop-ból, vagy miért nem a kiküldésre szánt sendNotofication függvénnyel küldöd ki (mint ahogy a setup is meghívja).
Sziasztok!
Analóg bemeneten van egy fotoellenállás(egy 10K sorba) amivel egy TM1637 fényerejét szeretném szabályozni. Elvileg 0-7 között lehet az átkonvertált érték. Működik is, viszont az a gond, hogy határértéken, ugrál két érték között és "villog" a kijelző. Hogy tudom azt megcsinálni, hogy lefelé ne ugyanazon az értéken váltson, mint felfelé? (ezzel elkerülve a villogást) De más megoldás is érdekel.
Hiszterézist kell leprogtamozni, amihez két állapot tartozik. Ha lehet, ezt ne az egy számjegyű részen oldd meg, hanem ahol még 0-1023 közötti számmal dolgozol. Plusz ha időbeni átlagolás beiktatsz, szebb lesz az átmenet (mozgó átlag pl).
Biztos, hogy csak 0-7 közötti érteket vár a kijelző? Számomra elég kevésnek tűnik, ugrásszerű lesz a váltás.
Olvastam valahol hogy 0-7 között lehet. Nekem is furcsa volt, mert ha fix a háttérvilágítás akkor százalékba is elfogadja 10-100%-ig. Viszont ha 7-nél nagyobb számot írok be, akkor összevissza ugrál a fényerő, ráadásul véletlenszerűen nem kívánatos szegmensek villannak fel. Egyébként másik probléma, hogy a 7 fokozatot(ami a 100%) nem éri el. (potival a csúcson érte el, és olyankor is ugrál 6-7 között) A 7. fokozatot lentebb lehet húzni, hogy ne a csúcson legyen?
A fényerőt szabályozó Command3 parancsa legalsó három bitje (B0-B2) szabályozza, tehát valóban csak 0-7 közötti értéket fogad el. A negyedik (B3) bit már a ki/bekapcsolást végzi.
Az automatikus fényerőszabályozást nem lesz könnyű összehozni, mert a szabályozás az alján fokozatonként duplázza a teljesítményt (a szem számára ez lineárisnak tűnik a változás), a magasabb fényerőnél viszont lineárisan változik (1/16-os lépésekben) a teljesítmény. A fényérzékeny ellenállás karakterisztikája is érdekes, kétszer logaritmikus ábrázolásban lineáris, a 10 és 100 luxnál mért ellenállás hányadosának 10-es alapú logaritmusa 0.6 körüli érték (gamma paraméter).
Betettem globálisra és úgy néz ki, működik, köszi a tippet
Most még csak egy "hello world"-öt küldök, ami a setupba van, persze ezt még tovább fejlesztem, hogy külömböző körülmények esetén külömböző stringet küldjön emailos értesítés formájában.
Ja, hát ha specifikáljuk a vezérlőt akkor könnyű.
Ha pedig a kérdésre akarunk válaszolni akkor ez nem teljesen igaz, mert ugyanúgy beolvassa a teljes portot. Az más kérdés, hogy te nem használsz belőle csak 4 bit-et. Viszont úgy látom, hogy megfelel neki a megoldsás, tehát gond egy szál se.
Rajtam ne kapjatok össze. Eddig nem tudtam, hogyan lehet az Arduino nyelvben beolvasni az egész portot (8 bitet) most már tudom, és az adott feladathoz elvben lényegtelen, hogy csak 4 bit vagy több érdekel a bemenetböl.
Épp most finomitottam a mérési eljáráson ( el kell dönteni mikortol számoljon, és meddig és mit irjon az LCD-re.) Minden már ugy megy, ahogy elképzeltem, s majd meglátom használat közben mi mindent kell majd változtatni, hogy értelmes adatokat kapjak. Egyelöre azt teszi, hogy ha változik bármelyik bit a bemeneten számol. Ha egy bizonyos ideig nem változik, akkor a számolt lépéseket elmenti a felsö sorba, és az alsoban ujra várja a változásokat. Igy zárul a ciklus.,pillanatnyilag ez volt a célom, hogy ha 2-szer egymás után ugyannyit léptetek hogy valoban ugyannyi lépés megy ki a motorokra. Most még várok a 4 csatornás optokra, sajnos az individuálisak nem férnek a dobozba, ezért kell az egytokos 4 csatornás cucc. Kösz mindenkinek a segitséget. Ha valakit érdekel a kod, szoljon. A hozzászólás módosítva: Márc 30, 2020
Dehogy kapunk össze. Örülünk, hogy segítettünk.
Csak azért írtam, mert az arduino IDE-vel manapság sokmindent lehet programozni. A másik, hogy pl. én is jártam már úgy, hogy már készen volt a nyák, és utóbb derült, ki hogy máshogy kellett volna tervezni az IO portok miatt, és nem akartam új nyákot, vagy éppen valami miatt, (pl. kommunikáció) nem lehetett egy portra összegyűjteni a be/ki-meneteket. Ilyen esetben ez a megoldás sajnos nem nyerő. Nálam is alkatrészre várakozás van. Ráadásul Kínából ki tudja mikor ér ide.
Szőrszálhasogatás, de ha belegondolsz, akkor amennyiben a folyamat időállandója nagyobb - ahogy esetünkben is, akkor ha két külön portról kell olvasni, az sem gond: Egyetlen órajel eltéréssel be tudunk olvasni két portot, és ez a kis időbeli elcsúszás semmilyen problémát nem okozna a számlálásban. Ha okozna, az eleve azt jelentené, hogy nem elég sűrű a leolvasásunk ahhoz, hogy a változásokat kövessük.
Én igy jártam ( söt rosszabbul) megterveztem egy NYAKot, egy 328-s modulra. Miután annak nincs JTAG csatlakozása egy másik modulon (azt hiszem 128-s proci volt azon) fejlesztettem a kodot ( ASM-ben) azzal, hogy a kettö kompatibilis, csak a 128-nak több portja van. Amikor beraktam a 328-s chipet derült ki, hogy a PC0 valojában csak akkor használhato, ha letiltom a resetet. Az viszont kizárja, hogy a kodon változtatni tudjak. Igy most mehetek vissza az eredetire, kizárni a PC0-t és egy másik portot használni. Persze emiatt modosithatom a NYÁKot is. És eltehetem a muzeumba a beprogramozott, de nem egészen jol müködö 328-st.
Nem annak szántam, és nem is a beolvasási idő a lényeg, hanem legtöbbször az együtt kezelhetőség.
Más kérdés? Csinált már valaki FFT-t arduinoval? Konkrétabban ESP32 lenne nem arduino board. Megoldható vele egy 7-8 sávos audio spektrum analizátor, vagy inkább nézzek egy DSP-t? Azt tudom, hogy egy mezei kijön belőle, mert láttam már PIC18-ra is meg AVR-re is, de én nem fix sávokat szeretnék hanem testreszabhatót. Tetszés szerinti sávokkal és sávszélességgel, plusz a WS2812 LED-ek meghajtása is bele kell férjen. Ráadásul nem 8-10 LED magas oszlopokat szeretnék, hanem jóval többet, egyedien meghajtva egy nagyobb grafikai megjelenítéshez. A hozzászólás módosítva: Márc 30, 2020
Van fast FFT könyvtár, nézegesd, az jó-e neked. A kapott adatokat úgyis neked kell feldolgoznod, akkora LED-oszlopot hajtasz meg, amekkorát csak akarsz.
Idézet: „nem fix sávokat szeretnék hanem testreszabhatót” Ennek ellenkezőjére van egy kész mono "célcsótány" ami soros vonalon beszélgeti ki az aktuális , saját egyedi sebességével, minta vett hang frekis jel spektrumát 7 egyedi sajátos sávban ,100-18kHz közt.Ezt kérdezgetheti a uC-el A hozzászólás módosítva: Márc 30, 2020
Tudom, ebből több is van. Egy éppen teszt alatt az asztalomon (63-16kHz). Ez lesz a v1. Tesztüzemben már működik, (1 sáv - 1db SK6812 LED) és pár nap múlva menni fog valósan is, de ezt szeretném majd tovább fejleszteni a V2 verzióban .
|
Bejelentkezés
Hirdetés |