Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Pl. nem a nyers, terhelhető tápot rakják ki a jack csatlakozóra, hanem egy soros 100ohm-on keresztül. Így rövidzárlatnál sem fog 5V/100Ohm=0.05A-nál nagyobb áram folyni. A másik, amire én gondolok, hogy csak a setup részben keresed a szenzort, miután a loop-ban vagy, már csak lekérdezgeted. Így amikor lehúzod, majd újra csatlakoztatod, a szenzorral megszakad a kapcsolat. Újra kell keresni, és kiadni neki a megfelelő parancsokat (pl. egy várakozás nélküli lekérdezésnél hiába fogja a program a "konverzió kész" üzenetet várni, sosem fog megérkezni).
A várakozás nélküli lekérdezésben ha még nincs kész a konverzió, simán folytatjuk a program futását a delay-es várakozás helyett. Egyébként már a lib is tartalmazza ezt az üzemmódot, én előszeretettel használom.
Köszi a segítséget.
Pontosan melyik libről lenne szó és a liben belül van rá példa?
Pontosan nem tudom, általában a legelső, amit google megtalál, azt rakom fel. A legelterjedtebbet.
Itt tudsz csemegézni: Bővebben: Link. A liben belül van példa! A hozzászólás módosítva: Márc 13, 2019
Be tudnád esetleg még írni a kódot,hogyan is kellene kinéznie?
A dallas féle lib-et használtam, async konverziónal nevezik: Bővebben: Link
Sziasztok,
December végén kértem a segítségeteket egy 48x8 ledből álló kijelző készítésében. A kijelzőt elkészítettem kék ledekből, viszont az a gond, hogy azok a ledek is világítanak, amiknek nem szabadna. Decemberben MAX7219-el, míg most 4094-ekkel + A337 tranzisztorokkal próbálkoztam, a jelenség ugyanaz: a ledek akkor is világítanak, amikor nem kellene. (Csak egy 8x8-as négyzeten kísérleteztem). Mindkét vezérlés tökéletesen működik zöld színü ledekkel. Van-e valaķinek ötlete, abban, hogy mivel tudnék még próbálkozni? Ha ellenállásokat teszek be, akkor is ugyanúgy világítanak azok a ledek is amiknek nem kellene, csak halványabban. A választ elre is köszönöm!
A kódodba be kell rakni egy kis szünetet, amikor váltasz (sort vagy oszlopot, ezt már neked kell tudni). Ki kell kísérletezni a megfelelő várakozási időt, a félvezetők nem tudnak olyan gyorsan lezárni, mint ahogy te a következő részt aktiválod, és így egy szellemképes képet kapsz.
Köszönöm a válaszodat! Pénteken kifogom probálni a szünetes megoldást is.
A másik ötlet az az lenne, hogy mindenik 8x8-as kijelzőre 2db 4094-et tennék (egyet a sornak és egyet az oszlopnak), kifogom mindkettőt próbálni.
Helyes sorrend (szerintem):
1 oszlop adatait kiíratod 2 oszlop kijelölés 3 várakozás 4 oszlop kijelölés megszüntetése 5 új oszlop adatok beírása 6 Itt várhatsz is egy kicsit 7 következő oszlop kijelölése A 4,7 pontot nem lehet összevonni, mert még az egy órajelnyi hibás tartalom is szellemképként látszik. Szerintem 16x8-as (de inkább 8x8) mátrixnál nagyobbat nem célszerű egyben kezelni, több kisebbre kell(ene) bontani. Az idő 1/16-od része jusson minden ledre legalább, így nem kell túl nagy áram a megfelelő fényerőhöz. A hozzászólás módosítva: Márc 13, 2019
A 6-ost én az 5-ös elé raknám. Tehát letiltod az egész oszlopot, vársz, ekkor alszanak el a LED-ek teljesen, majd következő oszlop adatainak kiküldése, majd oszlop engedélyezése.
Ha tiltod az oszlopot, és utána azonnal kirakod az új adatot, akkor még látszódhat egy kis ideig az új infó az előző oszlopon.
Ízlés szerint. Én nagyobb kijelzőt még nem csináltam, így ez nem volt gond. Elég volt kioltani, felülírni újra kijelölni..
Ez a jelenlegi forráskód, a
Ehez értenem kellene, hogy működik. De valahogy nem jó. Eleve for ciklust nem használnék időzítéshez, mert nem lesz időd új képet kiszámolni. Ha az intenzitást így akarod befolyásolni, rossz út. Mátrxoknál alapnak tartom, minden oszlopra ugyan annyi idő jut, és az konstans. kb 10ms/megjelenítendő oszlopok száma. A fényerőt az dönti el, a rá jutó időből mennyi ideig világít. Ebből az következik, fényerő szabályzásnál ha az egyiket kioltom, a másik csak egy adott idő mulva következik, még ha a holt időben nincs is semmi a kijelzőn. Szerintem kezdőként másként nem tudsz villódzás mentes egyenletes képet készíteni. A várakozó cikluson belül teljesen feleslegesen túráztatod a léptető regisztereket.
A szép megjelenéshez a programodat át kellene szervezni, először lemondva a fényerő szabályzásról. A program loop ciklusa kb 1ms környéke legyen. minden ciklus végén egy oszlopot rajzoltass ki, és addíg legyen kint a kép mig a következő loop lefut. (és ez csak max 16 oszlopig működik jól) loop végén ledmatrix.Shift_Register_Emulator(255,LedPort); //Turn off all the LEDs digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, ~szoveg[2]); //adatok kiléptetése digitalWrite(latchPin, HIGH); ledmatrix.Shift_Register_Emulator(hely,LedPort); // ledek bekapcsolása loop vége loop loop végen hely léptetése következő oszlop kiirás loop ........ A hozzászólás módosítva: Márc 13, 2019
Én fényerő szabályzásra a shift regiszterek OE lábát használtam, nagy megelégedéssel. De volt, amikor programból is megoldottam, interupttal. Bekapcsoltam az oszlopot, majd innen indult egy timer, ami x idő után lekapcsolta a LED-eket. Ez is működött (működik).
Ha az alap mátrix működik, jöhet a csicsa.
Így van. Csak tippeket próbáltam adni a kérdezőnek. Ha megvan a koncepció, sokkal egyszerűbb már elsőre úgy megírni a programot, hogy beilleszthető legyen bele plusz funkció.
Egyébként attól is függ a szellemkép, hogy tranzisztort, vagy FET-et használ az ember. A tranzisztor bázisáram nélkül gyorsabban lezár, mint a FET soros ellenállással. De ha tudja az ember az okot, akkor a megoldást is meg fogja találni rá.
Hogy áll a program? Vezérli már az antennát?
Köszönöm a segítőkész válaszokat!
A program ötlete innen származik, az itt lévő példák alapján össze copy-pastel-tem egy valamit, amiből lett egy valamennyire működő dolog, ami mint kiderült nem a legoptimálisabb program. Fényerő szabályzásra nincsen szükségem, minél fényesebb, annál jobb. Ezzel a kijelzővel elméletileg az április 12-én rendezésre kerülő szakmák éjszakájára kellene elmenni, feltéve, ha addig sikerül üzembe helyzeni A program másik fele, ami a 48 bájtos tömbbe teszi bele a kiírandó adatokat az készen van. Ha különlegesebb hardware-re van szükség, akkor azt is betudom szerezni, Arduino Mega, STM32F103 stb. mindenféle van itthon. A koncepció: van 48 oszlop, aminek a katód lábai egy 4094-nek a lábaira van rákötve. A 8 sornak az anód lábai A733 PNP tranzisztorra mennek rá, a ledmatrix.Shift_Register_Emulator függvény annyit csinál, hogy a 8 bites adatot, kiküldi a PNP tranzisztoroknak (ezzel helyettesítem az odajáró 4094-et). Így képzelted-e el a kódot? Kovidivi tanácsát is megfogadva, a 6-ost az 5-ös elé tettem:
Ha ilyen nagyratörő álmaid vannak.. Első körben már a kijelző refres mint rutin név is téves. Az egész programodnak a kijelzőröl kell szólnia, ha nem akarsz nagyon belebonyolódni. Ahogyan én látom
Hardvare: minden kijelzőnek egy egy 4094 ( szerintem nulla fényerőt fog adni az a 10-15mA amire képes) ezeket felfűzve (sorvezérlés) . A kijelzők megfelelő oszlopai pedig párhuzamosan kötve mehetnek a tranzisztorokra . A programod pedig kb shiftOut(dataPin, clockPin, LSBFIRST, szoveg[0], szoveg[8], szoveg[16] ...... );minden 8. oszlop feltöltése. digitalWrite(latchPin, HIGH); adatok átírása digitalWrite(latchPin, LOW); ledmatrix.Shift_Register_Emulator(254,LedPort); adott oszlopok bekapcsolása delay(6); most világít egy kicsit ledmatrix.Shift_Register_Emulator(255,LedPort); összes led ki shiftOut(dataPin, clockPin, LSBFIRST, szoveg[1], szoveg[9], szoveg[17] ...... ); feltöltöd a következő oszlopot. digitalWrite(latchPin, HIGH); adatok átírása digitalWrite(latchPin, LOW); ledmatrix.Shift_Register_Emulator(253,LedPort); adott oszlopok bekapcsolása delay(6); ledmatrix.Shift_Register_Emulator(255,LedPort); összes led ki mindez ismételve míg mind a nyoc oszlop el nem fogy. Akkor lehet a tartalmat egyel shiftelni, és kezdődik elölről. Annyit lehet változtatni, a feltöltést a világítás alatt is végre lehet hajtani, ha nem kell a kioltási késleltetés. A hozzászólás módosítva: Márc 14, 2019
Sziasztok,
Remélem jó helyre írom a kérdésemet: van egy Arduino Mega2560 klón (meduino) board-om amihez hozzá szeretnék UART-on keresztül kötni egy SIM5360E alapú breakoutboardot (Bővebben: Link ). Erről a dologról tudni kell, hogy a SIMCOM SIM5360E chipjét használja ami 1.8V-os RX/TX-el operál, ezért a modul gyártója rakott egy 3.3V<->1.8V logikai szintillesztőt a board-ra és maga a board egy 3.3V TTL ki/bemenetet vár az UART portján. A probléma: az Arduino 5V-os, ezért csináltam egy 5V<->3.3V szintillesztőt, viszont így nem működik a dolog. Szerintetek mi lehet a hiba? A két logikai szintillesztő már "lenyeli" a jelet vagy annyira gyengíti? Csatoltam a áramkör rajzát hátha az segít jobban megérteni a problémát. (Jah még annyi hogy külön-külön működnek csak egymással nem akarnak kommunikálni...)
Szerintem felesleges a kétszeres szint illesztés!
A simcomon levő illesztő VCCB tápját kösd át 5V-ra és megvan 1.8V <> 5V illesztésed. Vagy ugyanezt megteheted a másik illesztővel is. 3.3V helyett adsz neki 1.8V tápfeszt. És akkor a simcom illesztőjét elhagyhatod. A hozzászólás módosítva: Márc 15, 2019
Igen erre én is gondoltam, de mindkét megoldáshoz SMD-t kell forrasztani a simcom board-on.
(ráadásul nagyon kis alkatrészek). Már bánom hogy ezt vettem meg, főleg hogy alig van dokumentálva. Még arra is gondoltam hogy van ott egy 1k ellenállás, talán az zavarhat be?
Néztem a gyártó kínai oldalát! Kirakót, egy képet tele kínai írással!
Ezt még a fordítóba sem lehet beledobni, hogy megértse az ember! Én biztos messzire elkerültem volna. Rendelés előtt a legfontosabb, hogy megnézem milyen az árú dokumentálása, és, hogy ezek alapján lehet valami értelmeset össze hozni? Másik javaslat: Hajtsad a Megát 3.3.V-ról. Ha szerencséd van még működik ugyanazzal az óra jellel. A hozzászólás módosítva: Márc 15, 2019
Mondjuk én alapból 3,3V os arduinót szoktam venni, nincs baj a szintillesztéssel, igaz kisebb az órajele. Az 5V-os is talán elmegy 3,3V ról, csak a stabilizátor után kell kötni a tápot.
A te áramköröd szerintem azért nem működik, mert rossz fetet választottál. Túl nagy a nyitófeszültsége.
Ha jól tudom az Atmega 0.6*VCC fölött high-nak veszi a vonalat (legalábbis digit pineken), ha így van akkor a SIMxxx TX és a Mega RX közé nem kell szintillesztő. A másik irányba pedig elég lehet egy feszültségosztó is, mondjuk 2k2-3k3.
Milyen FET-et javasolsz? SO-8 -as tokozás lenne jo mert azt konnyebb forrasztani.
Sziasztok!
Tud segíteni nekem valaki egy kisebb probléma megoldásában? Adott egy működő kód, melyben van 4 gomb, amiből 3-at szeretnék kicserélni encoderre. De nem tudom kijavítani, megírni hozzá a javítást. Meg tudja nekem valaki csinálni? |
Bejelentkezés
Hirdetés |