Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
De szerettem DOS alatt ▄█▀ ╚╦╩ ilyenekkel menüket létrehozni... Vagy inkább csak játszani.
Egyébként lcd-n hogyan lehet megcsinálni az ékezetes karaktereket? (nem karaktert létrehozni és lcd.write-tal kiírni, hanem, hogy simán beírhassam ékezetekkel a szöveget lcd.print-ben, és megcsinálja)
\ jel aztán a karakter kódja 8-as számrendszerben.
Amint készen lesz a többi LED panel, akkor gondoltam egy fa lapot feketére fújok és kifúrok sok lyukat. De valami műanyag jobb lenne ami fekete. Ugye a neten látok ilyen LED mátrixokat, azon mind műanyag lap van, de amíg 1536 LED-nek kifúrom a lyukakat, megőszülök. Szóval ötlet még a tejüveget rakni elé... :S De ha van valakinek jobb ötlete akkor szívesen fogadom.
Én nem fúrnék lukat a LED-eknek, mert ezek a LED-ek kis szögben világítanak, ha jól láttam. Sokkal jobban átjön a kép, ha van egy felület, amiről kilép a fény, pl. tejüveg. Ha nincs a LED-ek előtt semmi, akkor szemből vakít, és nagyon világos. Kipróbálhatod, hogy a fal felé irányítod 1m-ről, és látni fogod a kis köröket, amiket a LED-ek világítanak, ezek át is fedik egymást.
Pl. itt 2-3 réteg bőrpauszt raktam a LED elé, pontosan lemértem, milyen távolságra kell lennie a LED-től. Nappal is meggyőző a fénye. Bővebben: Link Ezt nem én építettem: Bővebben: Link A hozzászólás módosítva: Okt 29, 2014
Ha megkérlek kicsit részleteznéd.
lcd.print("Szövegben egy nulla: \060"); // gondolom erre gondolt.
De az ékezetes karakterek definiálva vannak? Mert szerintem nincsenek. Akkor pedíg, ha nincsenek, honnan van kódjuk?
Na akkor itt tartunk. Hát van a 16x2 szabványos LCD kijelzőnek RAM-ja, aminek az első pár bitje szabadon feltölthető 5*8 karakterrekkel.
Szerintem kattints ide és máris megtudhatod, valamint ki is próbálhatod.
Köszi a választ! De ezt eddig is tudtam, de úgy hogyan lehetne ezt kivitelezni, hogy ne kelljen lcd.write(), hanem simán lcd.print()-ben is működjön. pl.: lcd.print("áé") és megcsinálja, vagy ha nem is így, de egyszerűbben, mint minden ékezetes karakterért egy lcd.write.
De az lcd.print()-ben úgy hívhatod elő mondjuk az ékezeted, hogy csinálsz egy saját karaktert mondjuk a RAM 1. helyére, majd erre hivatkozol a szövegben a \001 -el.
C18 fordítónál én úgy oldottam meg, hogy a _H_USER stream számára írt _user_putc() függvénybe beleraktam az ékezetes karakterek átkódolását. A 0...7 közötti kimenő kódok a CGRAM-ban definiált karaterekre hivatkoznak, a 128 fölöttiek pedig a gyári karaktertáblára (pl. 0xEF az 'ö' betű). Bővebben: Link
Sziasztok!
Arduino leonardo pro micro, miután feltöltöttem rá a kódot, a Windows ismeretlen USB eszközként kezeli. A kód elég nagy (26,656 bytes of a 28,672 byte maximum) és 1000 sor. Viszont maga a program teljesen alap, csak 1000 szó text fájlba írása egymás után. Van még arra esély, hogy életet leheljek a modulba, felismertetni a Windowszal? Ez a kód, a ... részről kitöröltem 998 sort, de ott csak random szavak vannak:
Szia. Az msg tömb a RAM-ban van tárolva? Az SRAM csak 2KB. Ha ennél nagyobb tömböt akartam lefoglalni, el sem indult a program. Esetleg malloc-kal foglalj le helyet, de akkor sem fogsz tudni 2KB-nál több adatot memóriában tárolni.
A hozzászólás módosítva: Okt 30, 2014
Sziasztok!
Szeretném a timer1-et használni, hogy 10bit-es PWM jelet tudjak előállítani, a lehető legnagyobb frekvenciával. Külön-külön találtam rá megoldást, egyik a pwmfrequency: Bővebben: Link, ezzel fel tudom húzni a frekvenciát 31250Hz-re, a másik pedig a timerone.h: Bővebben: Link, ezzel pedig elő tudok állítani 10bit-es PWM-et. Arra keresem a választ, hogy a timerone.h hogyan befolyásolja a frekvenciát? Sajnos szkópom és frekvenciamérőm nincs, hogy le tudjam mérni. Lehet készítenem kell egy frekvencia mérőt is... Köszönöm!
Szia, hibát nem írt ki, simán feltöltötte a kódot.
Az a baj, hogy már ismeretlen USB eszközként kezeli a Windows és nem tudok vele mit kezdeni. Lehet, hogy hülyeséget kérdezek, de nincs valami hard reset opció arduinonál?
Az arduinokon tudomásom szerint FTDI illesztő ic van. Mostanában volt egy olyan frissítésük, amivel a hamis csipeket egyszerűen tönkre tette. A frissítés a Windows pudate-tel jött le. Bővebben: Link Esetleg, a tied is áldozata lett.
"a tx-et a tx-szel, rx-et az rx-szel összekötöm" - miért?
Ha FTDI van rajta, akkor végső esetben megpróbálhatod, hogy az IC 27-28-as lábát rövidre zárod (pl csavarhúzó) és úgy dugod be az USB-be...
Ez egy leonardo pro micro klón, MEGA32U4 IC-vel, nincs külön FTDI.
Biztos, hogy az 1000 soros kód nem tetszik neki, mert egy másik leo pro microval is így jártam
Sziasztok! Azt vettem észre, ha digitalRead()-et csinálok, de a a csatlakozót, amin csinálom a setup() részben kimenetre állítom, és a loop()-ba beteszek egy digitalWrite(LOW)-ot a csatira, akkor nem kell lehúzó ellenállás, mert nem lebeg a bemenet, de az olvasás működik jól, ez így működöképes megoldás, vagy van valami, amiért nem kéne használni?
Mert fordítva nem ment... Komolyra fordítva a szót, az Usb-soros átalakítóra kötöm a minit, az unoval párhuzamosan. Így mindkettö megkapja az adatot, de csak a mini fogadja, és dolgozza fel, mert neki van címezve. Az uno mintha ott se lenne. Sokan írják, hogy kiveszik az Uno-ból az Atmega328-at, de ahogy tapasztaltam, teljesen felesleges.
Tetszik!
Látod ez eszembe se jutott Köszi!
digitalWrite(LOW) -> Kimenetet lehúzza a GND (0V) potenciálra. Max DC Current per I/O Pin ........... 40.0 mA
Ha most te erre a csatlakozóra csináltál egy digitalRead()-et, és le van húzva GND-re és még ehhez képest kapcsolsz magasabb potenciált, mondjuk (+5V -ot), mert gondolom ezt olvastatod be, akkor szerencsétlen kontrollerben lévő MOSFET-en fog az összes áram megindulni, amit nem igazán tolerál... Még szerencse, hogy építettek a kimeneti részre áramkorlátot, különben az ilyenektől már halott lenne sok mikrovezérlő. Használd inkább a PULL UP -ot : pinMode(bemenet,INPUT_PULLUP); Ennél csak néhány uA áram fog folyni és nem lebeg a bemeneted, hanem logikai 1 szintre húzza. Invertálni meg bármikor tudsz!
Tudomásom szerint 10 bites PWM módban nem lesz 31250Hz-nél nagyobb frekid.
Csak 8 BIT FAST PWM MÓDBAN = 62500Hz.
Szia!
Köszönöm, nagyon szuper, amit küldtél, el is mentem! Lemértem közben, 9-es lábon készítettem PWM jelet, ez 8bit-re konfigurálva 31250Hz, 9bit-tel ennek a fele, 10bit-tel pedig kb. 7800Hz. Nekem elég a 7800Hz is, 100k és 1µF RC taggal kapok 0.0016V ripple-t, ez mivel referencia, ezért a kimeneten ennek 4X-e van, ami bőven jó, a beállási idő pedig 0,23s 0->90%-ra, ez is megfelelő számomra. A timer0 és timer2 pedig 8bites, azoknál ennél nagyobb felbontást még nem olvastam, csak timer1-ről ír mindenki.
A reset gombot megnyomkodod 5 másodpercenként. Ekkor csak a bootloader indul el és a Leonardo Boot COM portja jelenik meg.
A blink nevű SW az amit fel akarsz tölteni rá utána. A COM-ból a bootloader COM-ját választod ki. Ha nem indul el a bootloader, akkor a klón áramkörödben a biztosítékbitek nem voltak jól beállítva és a bootlodert is felülírtad. Ekkor külső programozóval az ISP-n át kell újraírni a chipet.
FTDI-s Arduino:
A korai változatok: Arduino, Arduino NG, Arduino Diecimila és Duemilanove valamint Arduino Mega 1280.
Köszi!
Sikerült ezzel a módszerrel újra működésre bírni a leonardokat. |
Bejelentkezés
Hirdetés |