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 |