Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Ezt a kódot nem lehetne módosítani? Ha jól sejtem a működését, mikor az arduinó megkapja a "Led1" karaktersorozatot megváltoztatja a 6-os pin állapotát és ha HIGH akkor küldi a "Led1 bekapcsolva" stringet...csak azt kellene megoldani, hogy ha a gombbal változtatom meg a 6-os pin állapotát akkor is ugyanazt a stringet küldje. Ezt nem sikerül megoldani.
Idézet: A webserver a gombnyomásra nem küldhet semmit, hanem csak akkor küldhet, amikor lekérdezés történik. Ezért kell vagy automatikus frissítés, vagy Ajax, hogy a böngésző periodikusan lekérdezze az állapotot. „ha a gombbal változtatom meg a 6-os pin állapotát akkor is ugyanazt a stringet küldje.”
Köszönöm a segítséget, beszúrtam a 63. sor után a client.println("Refresh: 1"); sort. De most meg az a gond, hogy 1 mádodpercenként kapcsolgatja a LED -et.
A hozzászólás módosítva: Dec 2, 2015
Idézet: Ez a ki/bekapcsolási mód nem volt jó ötlet. Inkább válaszd külön a bekapcsoló és a kikapcsoló parancsot! „Eredetileg egy LED-et lehet ki/be kapcsolni neten keresztül a ”Led1” utasítással.”
Sziasztok!
Az Arduino Uno-val ismerkedem és sok-sok oldalt néztem és feltűnt, hogy a digitális kimeneteknek az 0, 1, 2 pontjait nem használják. Mi ennek a magyarázata?
A 0 és 1 pineket valóban nem illik használni, mert azok az UART RX/TX lábai. Ha rákötsz az RX-et 1-be rakod, utána már nem programozhatod a chipet. A TX-nél pontosan ugyanez a helyzet, tönkre vágod a számítógép felé menő kommunikációt.
A 0, 1 lábakat akkor használd, ha tisztában vagy vele, hogy mi az UART és a mellékhatásaival. Hogy a 2-es láb miért nem szimpatikus nekik, nem tudom.
Köszönöm a 0 éa az 1-es lábakra adott választ.
A 3×4-es billentyűzetről bevitt számot akarom megjeleníteni egy hétszegmenses kijelzőn. Külön-külön minden működik. Billentyűről beolvasott érték megjelenik a serialmonitoron, egy változót léptetve 0-tól 9-ig pedig működteti a kijelzőt. A kettő összefűzése nem hozza az eredményt. Hogyan tudnám a Serial.println(key); változó értékét az if szerkezetbe kezelni? Köszönöm!
Kész működik.
![]() A 3x4 es mátriról bevitt érték megjelenik a hétszegmenses kijelzőn.
A hozzászólás módosítva: Dec 3, 2015
Sziasztok! Azt hogyan tudnám megcsinálni, hogy SD.begin()-nél amíg tölti, addig pontokat írassak lcd-re, mert ha nem tudja betölteni, akkor amennyi a timeout-ja, addig próbálkozik, és addig nem tudok semmi műveletet végezni. Mert ntp-mnél ott egyszerő volt, mert ott az volt, ugye, amíg vár a válaszra, hogy
Gratulálok! Megy az látod.
"// ahhoz hogy jó működjön kell a -48 miért miért" Ascii Table - ASCII character codes A "0" az a 48. karakter a 4 bites BCD kódod esetén pedig a 0 az "0000" az 1 az"0001" A hozzászólás módosítva: Dec 3, 2015
Üdv!
Valaki használt már nRF24L01+ adóvevő modult. Van itthon pár éve kettő, egyszer összeraktam az alap progival, de nem játszottam tovább vele. Most szeretném használni, de elvesztem a beállításaiban, nekem túl sokat tud. Csak simán számokat és stringeket szeretnék oda-vissza üldözgetni rajta, de már beállítani se sikeról a sok payload hossz, meg címzés, meg csatorna meg mindenféle miatt. Van erre valami érthető módszer? Sok helyen írják a könyvtárak készítői, hogy azért írták meg, mert a többi bonyolult volt, mégse egyszerűbb az övék se ![]() ![]()
Sziasztok.
Egy kis segítséget kérnék. Olyat szeretnék csinálni,hogy írok több különböző programot és egy gomba választom ki melyik fusson. Pl: 1 gomb 1-es program,2 gomb 2-es program. Nem tudom hogy lehet szét választani a programokat, hogy ne keveredjek bele nagyon.
Úgy, hogy csatolsz egy Interrupt függvényt mindegyik gombra.
Az interruptba egy WHILE ciklust ami a végtelenségbe ismétlődik, és ezen belül írod meg a programod. Annyi, hogy amíg benne vagy egy interrupt függvényben, nem tudom hogy a többi gombot érzékeli-e. De ha igen, nyert ügyed van, mert csak lenyomsz egy másik gombot, és indul a másik progi a végtelenbe, és így tovább
Tedd külön cpp és h fájlokba a különböző "programjaid" (pl. prog1.cpp és prog1.h, prog2.cpp és prog2.h). Hivatkozz a h fájlokra a főprogramban (#include). A loop-ban pedig case/select -el hívd meg a kívánt programot (függvény). Így minden "program" külön fájlban van, nem keverednek össze a dolgok.
A h (header) fájlok tartalmazzák a függvények és kívülről is elérhető változók/struktúrák stb. deklarációját. A cpp fájl pedig a már általad megszokott programot. Nézz példákat a neten.
Úgy nem lehet meg csinálni?
Hogy Pl: void program1, void program2 ............ És a gombokkal meg hívom valamelyiket.
Eddig nem használtál külön függvényeket...?
Persze, hogy meg lehet. Amit én írtam, ott is külön függvények lennének, csak ráadásul feladattól függően más és más fájlban (beleértve a szükséges változókat és segédfüggvényeket is).
Eddig még nem használtam még elég kezdő vagyok.
Nem.
Ehhez alapjaiban kell elkezdeni és megérteni, hogy működik a számítógép programozás. A műveletek sorosan hajtódnak végre mindenképp, a programozó csak azzal tud operálni, hogy ezeket a sorokat próbálja látszólag párhuzamossá alakítani.Erre van a void loop(){}. A mikrokontroller ezt a ciklust nézi végig, és aszerint sorban végrehajtja az utasításokat. Amit a fentebbi hozzászólások is javasolnak, azok szerintem mind jók arra, amit te akarsz, és pont azt csinálják, amit le is írtál. Olyat egyszerűen nem lehet, hogy programot választasz, csak annyit, hogy úgy trükközöl, hogy az egyetlen soros lefutású programod úgy látszódjon, mintha több kisebb lenne. Nem igazán vagyok szakértő, lehet most hülyeséget írok, de ha tényleg ilyet szeretnél, ahhoz külön végrehajtó egységek kellenek, vagy hasonló Pl. egy "vezér" arduino, amin egy gombnyomás érzékelő fut, és a gombnyomás alapján áramot ad egy második,harmadik,negyedik alárendelt arduinonak. Megoldható tudtommal programozható logikai áramkörökkel is, FPGA-val mondjuk, de azért a logikai kapuk építgetése és a parancs kiadás között van néhány nagyságrend nehézség. A hozzászólás módosítva: Dec 5, 2015
Igazából meg tudom úgy írni a programot, hogy melyik gomb lenyomásakor mit csináljon csak az átláthatóság végett szét akarom választani a program részeket több kisebb programra.
Szerintem ha eltarolod ket darab boolean -ba a gombok lenyomasanak ertekeit (ugy hogy az eggyik nullazza le a masikat) es utana a különböző ket progi reszletet aszerint futtatod hogy melyik boolean valtozo igaz vagy hamis, mar kell is hogy mukodjon. Kozbe minden lefutas előtt lekerdezi a nyomogomb erteket is. Csupa if fugvennyel is megoldhato.
A hozzászólás módosítva: Dec 5, 2015
Nem is kell sok. Csak negyszer kell lird hogy "if" , ha jol szamolom.
Ha ez sok, akkor .... A hozzászólás módosítva: Dec 6, 2015
Szerintem igy nezne ki az alap vezerles. A nyomogombokat kell meg biztositani, prell mentesiteni. Hol van itt a sok fuggveny ? A hozzászólás módosítva: Dec 6, 2015
Vettem egy 4 soros LCD-t, I2C buszosat.
A régi kijelzőnél minden OK volt, a setup részben kiírt szöveg mindig ott maradt. I2C-nél pedig csak a hőmérséklet mérés megy.... Ennek mi az oka? Illetve mit tehetek ellene? Úgy veszem észre, a régi adatok kiírása nem megy, mintha mindig az írná ki, ami az utolsó frissítéskor van. tehát ha frissít, és nincsenek benne a régi adatok, akkor törli.
A 14-edik sor hibas, ez kell oda
„ else if(button2 == 1) { progi_1 = 0; progi_2 = 1; } else { } ”
Az "lcd.init(); // initialize the lcd" csak egyszer kel a Setupban!
A loop-ban már nem kel ujra initializálni! Oda lcd.clear leht alkalmazni.
Ne bonyolítsuk felesleges változókkal. Ha 8 feladat van, akkor 8 boolean-t használsz és félmillió sor kódot, hogy állítgasd?
Sziasztok! Eddig ha lcd menüt csináltam, ezt a kódot használtam mindig:
Viszont ezzel ugye az a gond, hogy ha nem fentről megyek lefelé, hanem lentről vissza, akkor rögtön ugrik a képernyő, és nem indul el előszőr az aktuális listán felfelé (2004-es nél már nagyon nem jól néz ki). Nincs véletlenül valakinek valami jó ötlete menüre? Előre is köszi! A hozzászólás módosítva: Dec 6, 2015
Meg jobb megoldas, egyszerubb
![]() Na es ha tobb progid van mind ketto ? akkor kell tovabb a B3, B4, .. ? A hozzászólás módosítva: Dec 6, 2015
|
Bejelentkezés
Hirdetés |