Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Pont ebben kellene segítség, hogy ne legyen buta
Sziasztok!
Foglalkozott már valaki SD- mp3 lejátszóval? Esetleg a VS1053b csipes shield? Bővebben: Link Kérdésem az lenne hogy szeretném megoldani hogy lcd-re írogassa a számokat. De egyik verzióban sincs benne az LCD kezelés csak ott van hogy létezik. Viszont a CPP-be nem lehet bepofátlankodni ílymódon valahogy?
Csak mert hiába próbálkozok a "lcd.print("asd");" sorral, azt hazudja hogy 'lcd' was not declared in this scope... Valaki tipp? A hozzászólás módosítva: Jan 17, 2015
Szia!
Hiányzik a "void setup" rész!!! Talán így próbáld meg:
Szia!
Azért nem hiányzik mert amit láttál kód rész a a player.cpp fájlból származik. A *.ino- ban benne van ott tudok is lcdt kezelni, de a ccp ben zajlik szinte minden, ha ki szeretnék íratni abból kell végre hajtani, de ez nem megy nekem. Az ino csak ennyi:
A hozzászólás módosítva: Jan 18, 2015
Esetleg a Player.cpp-ből kiszednéd ezeket a sorokat:
11 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 12 lcd.begin(16, 2);
Én bele sem raktam oda.
Nekem azok csak az ino ban vannak benne. Csak az lenne a lényeg hogy a cpp ből tudjak írni az lcdre.
Na megtaláltam a gyári panelt, amihez volt csatlakoztatva a kijelző. Ahogy nézem a lábkiosztás ez lesz, legalább is a táplábak stimmelnek. A 2-3-4 és a 8-15ig mennek a prociba ellenállással.
Nézegettem az ebayen olyan kijelzőket amiknek van vezérlője, de amekkora méretbe már jó lenne, sajnos nagyon drágák. RICOH gépből vannak a kijelzők, nézegettem is rajzokat, de olyat nem találtam, amibe az elektronika is benne lenne. Csak mechanika. Nagyon hálás lennék, ha valaki a kijelzők lelki világába benne van, segítene beüzemelni.
Nem lesz baj, hogy ez a beüzemelés, többe fog kerülni mint a legdrágább LCD?
Mivel semmi adatot nem találtál a neten a kérdéses LCD-ről!
Fogalmad nincs milyen vezérlőt kellene hozzá készíteni! És még sosem csináltál ilyet? Valószínű több száz munkaórádba kerülne, vagy még előbb tönkre tenéd! Annyit meg nem tudsz érte fizetni, amennyiért valakinek érdemes lenne elvállalni! A hozzászólás módosítva: Jan 18, 2015
Azt tudom előre, hogy sok munkaóra lenne, de ez most jelenleg elhanyagolható, meg ismerőssel csináljuk, és ebbe a részbe is el szeretnénk menni.
Hasonló kijelzőhöz találtam leírást, csak az 4 bites, és pár láb más. Esetleg van valami leírás, hogy működnek ezek, az alapoktól? Ezt az oldalt ajánlották valamelyik forumon Első nekifutásra annak is örülnénk, ha egy sort meg tudnánk jeleníteni.
Azzal kezdődik, hogy a kijelző típusát felderíted, és ehhez keresel valami kész megoldást. Ha ez nem jött be, lehet keresni a vezérlő chip típusát. Az után ahhoz adatlapot. Aztán már csak a próbálgatás jön, mely pixel mely kimenetre van kötve. Ha megjelenik rajta egy általad választott betű/karakter akkor már szinte mindent tudsz róla. Ha az első két feltétel közül egyik sem teljesül, szinte esélytelen vagy.
Régebben volt 1 oldal, ahol ugyan ezt a kijelzőt keltették életre, csak ott annyi volt, hogy program hamarosan. Azóta az oldal is megszűnt. Konkrétan arra a vezérlő chipre gondolsz, ami az LCD nyakán van a szalagkábelen? Mert semmi nincs ráírva.
Mostani gyors kutatásból megvan, milyen gépből lett bontva. Ricoch 1022
Ezzel kellett volna kezdened!
Az LCD típusát itt közlik: Ricoh Aficio 1022 / 1027 LCD - HVGA U14 B1 B0045216 Adatlapot ez alapján keresgélj! Ha találtál várjuk a linket!
Sziasztok! Teljesen új vagyok az elektronikában ezért elnézést kérek, ha hülyeséget kérdezek. Egy kis mikro szervo motorral dolgozom most (5V, típus: SG90).
Ezt egy Arduino lapkához kötöm. Mindig amikor bekapcsolom az arduinot és motor hozzá van kötve, a motor forog egy nagyon kicsit. Nem értem hogy ez miért van. A tippem az lenne, hogy bekapcsolásnál (áramforrásra kapcsolásnál) az arduino minden pinjén küld egy jelet és ezt érzékeli a motor. Ez csak tipp, lehet hogy hülyeség. Ha mégis ez az oka, akkor hogy lehet ezt letiltani. Nem forog nagyot, csak mintha egy kis impulzust kapna. Ez sajnos nekem nem jó mert elfordul (még ha kicsit is) a megadott pozícíóból. A segítséget előre is köszönöm!
Ne direktben legyen a port lábon a motorod !
Legalább 1 tranzisztor legyen előtte védődiódával. Különben elbúcsúzhatsz az uC portjától mert az induktív feszültség vissza lökések tönkre teszik a félvezetőt. Bekapcsolási tranziensek ellen védekezni kell. Esetleg optocsatolóval leválasztva motor vezérlés és a uC portja. A hozzászólás módosítva: Jan 19, 2015
Abba a motorba már bele van építve a vezérlőelektronika, nem feltétlen kell védődióda, viszont elővigyázatosságból érdemes berakni. Addig mozdulhat el a motor, amíg be nem állítod portot kimenetre, addig ugyanis bemenetként viselkedik, vagyis lebeg. Megoldást jelenthet, ha egy kb 1 kOhm ellenállással a motor bemenetét GND-re húzod, esetleg, ha a motor csak pár milliszekundummal később kapna tápfeszültséget, mint az Arduino. Másik megoldás, hogy kikapcsolás előtt elmented az aktuális pozíciót az EEPROM-ba, bekapcsoláskor pedig onnan kiolvasod, és visszaállítod a motort ugyanabba a pozícióba, ha netán elmozdult volna.
Szerintem eléggé reménytelen minden körülmények között fix helyen tartani ezt a szervót. A táp rákapcsolásakor, vezérlőjelet nem adva neki már mozdul. Ha lehet, a mozdulás káros hatását kellene kiküszöbölni inkább .A táp rákapcsolásától a tökéletes jelalak beállításáig szerintem nem lehet megoldani hogy biztosan ne mozduljon.
Sziasztok,építettem egy csigarendszert,amelyen keresztül fel-le tudok mozgatni dolgokat.
Androidra irtam egy programot(átirtam ezt:BT Control) Az Arduino Bluetooth-jával sikerült összebogoznom,de az a baj,hogyha megnyomom a telefonon a ''Vödröt Felemel!'' gombot,olyankor egyfolytában forog a motor. Ugyanezt csinálja a vödröt lerak-al is.(Csak ott megváltozik az irány.) Én ugy szeretném,hogy 400ms müködés után kikapcsoljon. Aki tudja,hogy miért nem áll meg,azt kérem,hogy irja le. Itt van a program kodja is:
A választ előre is köszönöm!
Gondolom azért, mert a SerialA-ban a legutolsó érték van, ezért újra és újra azt hajtja végre -> soha nem áll meg.
A szervo tapellatasat csak azutan kapcsold be, miutan az adott szervopoziciot beallito vezerlojelet mar raadtad a szervora. Igaz ez a megoldas egy i/o labat plusszban lefoglal.
Üdv,olyan kérdésem volna hogy arduino uno-val icsp-n kersztül tudok-e kezelni Atmega168V típusú processzort,vagy akár programozni is azt? A válaszokat előre is köszönöm.
Mikor befejezte a case-t adj a serialA-nak egy fals értéket.
A hozzászólás módosítva: Jan 20, 2015
Meg hiányzik a default állapot, ami akkor fut le, ha egyik feltétel sem stimmel! Keress egy switch case példát, és látni fogod mire gondolok. Plusz a soros bejövő adat szerintem sosem 1baájt, mert minimum van egy /0 a végén.
Erre jutottam:
Sajnos igy ezt csinálja:Amikor megnyomom a Vödröt felemel-t,olyankor 400ms-ot forog a motor,és 5000ms-ot nem forog,és utána kezdi elölről.A folyamat közben irányitani sem lehet. proba:Sajnos nem értem,hogy hogyan lehetne a SerailA-nak false-t adni.
Félreértetted mit akart mondani (mondjuk nem kellett volna a false-ot emlegetnie).
A case 1: és a case 2: után szúrd be azt, hogy serialA = 0; Mielőtt valaki beleköt ebbe, gondoljon arra, hogy az eseménykezelés meghívódhat a case structure futása alatt is és így elveszik egy gombnyomás. Ha viszont el akarod veszíteni a gombnyomást (meg akarod akadályozni, hogy egy bizonyos ideig rá lehessen indítani) akkor viszont a delay(5000); utánra tedd, amit írtam. A serialA declarációja viszont nem az igazi. Ha növeled a programodat, fura hibáid lehetnek később. Írd át így : byte serialA; => volatile byte serialA = 0; A volatile kulcsszó a fordítónak szól és arra utasítja, hogy ne próbálja meg kioptimalizálni a megadott változót. Amikor megszakításokban változtatsz egy adott változót, akkor magától nem tudhatja a fordító, hogy a változó az éppen fordított kódrészlettől függetlenül is változhat és ezért megpróbálhatja egyszerűsíteni a végeredményt, hogy jobb hatásfokú kód legyen a végeredmény (ami persze nem működik). A volatile tehát kikapcsolja ezt az optimalizációt a változóra nézve. A hozzászólás módosítva: Jan 20, 2015
Szerintem inkább egy bool változó kellene, ami tárolja, hogy van-e feldolgozatlan parancs.
A változót a SeaialEvent függvénynek kell true -ra állítani, mikor már feltöltötte a serialA változót.
A loop függvény csak akkor dolgozza fel a serialA -t, ha a bool változó értéke 1, és rögtön állítsa false -re.
Továbbfejlesztés: A serialA helyett egy körforgó buffer alkalmazása, amibe a serialEvent beírja a vett karaktert, ha belefér és lépteti az írási mutatót, növeli a darabszámot. Egy új függvény, ami kiolvassa a soron következő parancsot, lépteti az olvasási mutatót, csökkenti a darabszámot. Ezt a függvényt hívja a loop. A darabszám volatile char legyen, a csökkentést és a növelést pimitív műveletként (megszakíthatatlan) kell megvalósítani.
Hogyha azokat a modosításokat használom,akkor azt a hibát adja ki,hogy a 'SerialA'-t nem ismeri.
A hozzászólás módosítva: Jan 20, 2015
Sziasztok!
van egy klímavezérlő progim amivel gondjaim vannak:
Az a gond: Nem tudom milyn kóddal lehetne megoldani azt, hogy a szenzorok olvasása és a képernyő ftissítése valósidejű legyen. A motor vezérlése csak 5---10 percenként teljesüljön. Még kezdő vagyok és nemtudok rájönni a megoldásra. Válaszotokat előre is köszönöm. Üdv Gábor |
Bejelentkezés
Hirdetés |