-
Fototrend
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
válasz
lanszelot #19993 üzenetére
Egy változó állapota alapján döntsd el, hogy mi legyen a kiírás, a gombbal a változó értékét változtasd (a.k.a. "állapotgép"). Hogy aztán a loop-ban if-et, switch-et, vagy függvénypointer-tömböt használsz, az már teljesen egyéni preferencia kérdése. Általában attól függ mit használok, hogy később szeretném-e bővíteni a funkciókat, vagy elég egy quick&dirty megoldás.
-
válasz
lanszelot #19988 üzenetére
Meg próbálom az asszonyt rávenni csináljunk új videót
Csak azt a másik PH-ra töltsd fel!
A PB4 okát már írtam, a PB3-at nem tudom megfejteni.
Ha azt írod, hogy ezzel a progival, abból én honnan a fenéből tudjam, hogy ott találom a bekötési rajzot?? Legyél már egyértelműbb.
-
válasz
lanszelot #19986 üzenetére
File -> preferences -> URL -hez lehetséges vlahogy több linket becsatolni?
A pirossal bekarikázott gombra nyomva új sorként tudsz betenni új linket, vagy a szövegmezőbe ;-vel elválasztva, de előbbi átláthatóbb.A hozzászólás második részét próbálom értelmezni, de nem nagyon megy.
A gomb felső részére egy piros vezeték van kötve, aminek nem látom, hogy hová vezet a másik vége, vagyis nem tudom, hogy a gombbal mit kötsz mire.Írtam, hogy a PB3, PB4 lábak kettős funkciót töltenek be, egyrészt tudod őket vezérelni, másrészt az USB csatlakozó D+, D- lábaival vannak összekötve. Ezért gyárilag van egy 1k felhúzó (ha jól emlékszem?) ellenállás és egy Zener dióda a GND irányába, mindkét lábon. Ez azt jelenti, hogy 3,3V feszültség van rajtuk akkor is, ha amúgy nem kéne neki. Ez okozhat nem várt viselkedést, például ha LED-et kötsz rá, az mindkét irányban világítani fog. Szerintem ebben rejlik a válasz a kérdésedre. Hogy az onboard LED miért alszik ki? Szerintem rövidzárlatot csináltál a gombbal.
-
válasz
lanszelot #19981 üzenetére
A gond a pdf-el, hogy hülyeséget ír.
COM portot nem tudsz akkor sem beállítani, ha a fejed tetejére állsz, mert a Digispark nem tartalmaz USB-soros átalakítót, mint az UNO.
A leírás valószínűleg arra gondol, hogy telepítés után az UNO van default beállítva, vagy egy olyan pdf-et alakítottak át, amit eredetileg az UNO mellé küldtek, csak elfelejtették kivenni az ide vonatkozó részt, nem tudom. -
válasz
KoVee84 #19967 üzenetére
Mondd már el, hogy a szelektívvel mi újság van? Mert szerintem nem azt csinálja a program, amit az eredeti.
4 hétig kiír egy-egy nevet, aztán 6 napig azt, hogy szelektív.
Ha bármi miatt újraindul, a te neved lesz kint, ahogy már írták, de ezen nem is tudsz változtatni. Akár elemcsere vagy egy jóindulatú szomszéd miatt állandóan ti lesztek a Soros
Miért újraindulással nullázod a számlálót, miért nem használod ki, hogy az rtc memória nem veszik el?
Én a mostani helyett naponta ébreszteném fel, kiírnám rá a dátumot, hogy látható legyen, ha valamiért lefagyott volna vagy bármi (nem változik a dátum).
Egyszer, újraindításkor wifiről frissíteném az időt. Utána csak akkor, ha nagyon elmászik (állítólag nem túl pontos, nekem nincs tapasztalatom vele, de ha következetesen pontatlan, azt lehet korrigálni programból is).
Nem az eltelt napokat venném alapul, hanem mikor lejár egy mandátum, kiszámítanám a következő változás napját és azt írnám a RTC memóriába. Ezzel azt lehet elérni, hogy soha többet nem kell piszkálni, ha újraindul, ha bármi történik (két napra kiveszed az akkut tölteni) mindig jó adatot fog mutatni.
-
válasz
lanszelot #19972 üzenetére
1. Ahogy a kolléga írta, a bootloader nem feltétele a blink programnak. Bár ha demó program feltöltésére vették a fáradságot, talán az is rendben van.
2. Az is a gyártói leírásban volt, hogy az UNO-t kell kiválasztani a listából (szerinted).Ha a leírás jobban tudja, mint én, akkor ne itt kérdezd, hanem kövesd a leírást.
-
válasz
lanszelot #19962 üzenetére
Nem lesz com port!
Feltöltés előtt ki kell húzni a lapot, és amikor végzett a fordítással, írni fogja, hogy dugd be a cuccot a gépbe, na akkor dugd be újra. Lesz rá 60 másodperced.
Nincs itt semmi hiba.szerk.: csak most láttam, hogy az előzőt még kiegészítetted. A driver telepítés probléma amiatt lehet, amit írtam korábban, tudniillik vagy nincs rajta bootloader, vagy valamiért nem szereti azt az usb portot, amire dugod. Utóbbi esetben próbáld meg egy 2.0-s USB hub-ra dugni, de semmi más ne legyen bele dugva, csak ez. Nekem ez jött be, pár évvel ha visszaolvasol, láthatod mennyit qrvaanyáztam, mire rájöttem, mi a gond
-
válasz
KoVee84 #19938 üzenetére
Ez jól hangzik.
Nem ismerem ezt a kütyüt, csak a fotó alapján látom, hogy ESP32 van rajta, és abban van RTC modul, ha nem is a legpontosabb. Arra viszont szerintem pont jó, hogy felébressze a cuccot mondjuk minden éjszaka, NTP szerverről frissítse magát és visszaaludjon. Szívesen segítenék, de ESP-ben nem vagyok különösebben jártas, és a kütyü nélkül tesztelni sem tudnám, de ha ide beteszed (ha hosszú, töltsd fel valahová) akkor biztos megoldjuk.
-
válasz
lanszelot #19933 üzenetére
Van 6 darab GPIO, ebből alap esetben a 0-4-ig használhatod, az 5 a reset, amit egy flag segítségével átbillenthetsz normál módon használható GPIO pin-re viszont ezzel megszűnik a program feltöltés lehetősége (nem végleg, egy speciális programozó segítségével ilyenkor is lehet programozni, de 12V kell hozzá, szóval vedd úgy, hogy az 5-ös GPIO nincs
).
Mind az 5 pin alkalmas digitális ki és bemenetnek.
A 2,3,4 pin emellett analóg mérésekre alkalmas (ADC).
A 0,1 PWM jelet tud kiadni, vagyis például ledek analóg meghajtására alkalmasak (a belső timer-rel vannak összeköttetésben, ezen a két lábon van hardveres PWM, a többin csak szoftveres)
A 2 pin külső megszakításokat tud kezelni (INT0), ez például arra jó, hogy felébreszd deep sleep módból. Ezt szokták serial kommunikációra használni, RX lábnak.
PinChangeInt amúgy tudtommal van minden lábon, de az máshogy/kevésbé használható.
MOSI/MISO/SCLK ha jól tévedek az ISP programozáshoz kell, egyéb funkciója nincs.Jut eszembe: ha nem ISP-n keresztül, hanem az USB portba dugva, a rajta lévő bootloader segítségével cserélsz rajta programot, akkor a reset lábat tudod saját célra használni (azt hiszem csak bemenetként használható, kimenet nincs rajta), mert az USB feltöltéshez nincs szükség a reset lábra. Persze ha véletlenül törlődik a bootloader valami okból (ami nem is annyira ritka ennél a megoldásnál), akkor kuka
-
válasz
lanszelot #19927 üzenetére
Hogy jött meg neked az AliExpress-ről két nap alatt?
Digispark telepítése
De ma délután több órányi kínlódás után arra jutottam, hogy érdemesebb lehet az attinycore-t telepíteni: [link]Amennyiben van bootloader a Digispark-on, akkor sem biztos, hogy elsőre fogod tudni csatlakoztatni a gépre usb-n keresztül. Én úgy jártam vele, hogy a laptopra csak úgy tudtam rádugni, ha kihúztam az egeret.
Kellett egy usb hub, akkor működött rendesen. (Ez azért van, mert nincs rajta hardveres usb támogatás, szoftveresen emulálja az usb kommunikációt).
Amennyiben van rajta bootloader, ugyanis én úgy kaptam Kínából az enyémet, hogy nem volt rajta, ISP-n keresztül kellett rá tenni, csak utána lehetett usb-n keresztül programozni. -
válasz
lanszelot #19923 üzenetére
Na, az derék. Azon igazából csak 3 lábat fogsz tudni használni saját célra, ha az USB-t is használni szeretnéd, mert összesen 5 GPIO van, amiből 2-t az USB foglal. Ha nem, akkor tudj róla, hogy azon a két lábon (asszen 4+5) van 1-1 zener dióda, és 1-1 felhúzó ellenállás, ami nem minden esetben, de néha tud váratlan dolgokat művelni.
-
válasz
Wolfram #19920 üzenetére
Ugye milyen meggyőző vagyok?
Nem, illetve infra ledekkel csináltam hasonlót, csak nem idő, hanem intenzitás alapú méréssel, meg sokat játszottam ultrahangos modullal.
Amúgy meg zenész vagyok és teremakusztikából írtam a szakdolgozatomat.
Nem írtad, hogy 2 vagy 3 dimenziós iránymeghatározást szeretnél? A leírt elrendezés alapján feltételezem, hogy 2 dimenzióst.
Ha én csinálnám, én XPS lapokból ragasztanék össze egy sarkai mentén, átlóban félbe vágott kockát (vagyis 3 oldalt, ami egymással 90°-os szögben találkozik), mondjuk 15cm-es oldalakkal, azt belülről beburkolnám valami puha, szálas anyaggal, például vattával, vagy vatelinnel (esetleg puhább szivaccsal vagy vastagabb filccel) mondjuk 2-5cm vastagon, és a sarokba tenném a mikrofont valami rugalmas felfüggesztéssel, például gumikra vagy kötelekre akasztva, mint a stúdió mikrofonoknál.
A mérésnél 10cm térbeli eltérés két csatorna közt ~3ms időbeli különbséget jelent. Kérdés az, hogy impulzus-szerű zaj vagy mondjuk folyamatos beszélgetés irányát szeretnéd meghatározni. Előbb esetben nyilván sokkal egyszerűbb a dolgod. Utóbbi esetben szerintem a nullátmenetek közti idő különbséget kell mérni, meg értelemszerűen a hangerőbeli különbséget is fel lehet használni.
Szerintem az 1m távolság sok, a kettő közt nagy lesz a holttér, de ez csak tipp. -
válasz
lanszelot #19918 üzenetére
Amennyiben próbálkozol vele, javaslom, hogy ha nem a Digispark USB-s kütyüt veszed, akkor is annak a library-jét töltsd le, mert tele van Attiny85 specifikus library-vel, amit pucér Attiny85-tel is tudsz majd használni (feltöltéskor figyelj majd, hogy többféle órajel is lesz a listában, és van olyan digi library, ami csak 16,5MHz órajel mellett működik, ami az USB kommunikáció miatt van megemelve, de alapból te majd nem ezt szeretnéd használni).
-
válasz
lanszelot #19916 üzenetére
Újra, persze. Rengeteg dologra használható (pl usb eszközt is lehet vele emulálni!), nekem a kedvencem.
Azért tudj róla, hogy sok mindent nem tud, amit a nagyobb testvérei, és ugyan integrálva van egy ideje az Arduino-ba, de csomó mindenhez vagy nincs library, vagy keresni kell hozzá külön erre megírt library-t.
-
válasz
lanszelot #19913 üzenetére
Jajjaj, itt valami nagy zavar van.
Vagy a szakkörön mondtak hülyeséget, vagy te értettél félre valamit.
IC: azintercityintegrated circuit-> integrált áramkör rövidítése. Minden szilíciumlapra integrált logikai vagy analóg áramkör IC, az 555-ös időzítőtől az Intel processzorig. Az is, ami a képen van, IC, de nem minden IC programozható, csak ami CPU-t valósít meg. Ebből aztán tényleg rengeteg fajta van, a processzor (asztali PC) ami önmagában nem tud működni, kell hozzá ram meg egyéb cuccok, a mikrokontroller, ami önmagában tartalmazza a működéséhez szükséges ramot és flash tárhelyet a program tárolására, egész a SoC-ig (System on Chip), ami már egy rakás perifériát is tartalmaz (wifi, LTE, GPS stb), ezekből építik a mobiltelefonokat.Aztán ugye a tokozás, ami esetleg megtévesztett téged, hogy lehet DIP, vagy QFP tokozás, de létezik TO-92 tokozású IC is, például hőmérő szenzor.
Amit te videón láthattál, az Attiny85, amit előszeretettel használnak kisebb projektekben, DIP-8 tokozású, klasszikus IC kinézetű, és semmi nem kell hozzá (pl külső órajel), csak táp kell neki és kész, igénytelen és robusztus, na meg olcsó és ahhoz képest sokat tud:
Ha megnézel egy eredeti Arduino UNO lapot, azon is DIP tokozású μC van (sokkal több lábbal):
Csak az újabb lapokra már inkább QFP chipet tesznek, mert olcsóbb és egyszerűbb a gyártása. -
válasz
lanszelot #19910 üzenetére
Ez a képen fogalmam sincs, hogy micsoda, de talán sejtem, mire gondolsz. Az Arduino előtt pár évig foglalkoztam PIC mikrokontrollerrel (PicKit2, 16F877 μC), a hozzá való szoftvert és programozót mai napig használom attiny μC-k felprogramozására, illetve debugolásra. Na most, hasonlóan az Arduino-hoz, azt is C-ben kell programozni, igaz ahhoz saját fejlesztőkörnyezet volt, és közel sem ennyi library és példakód, de a logikája némileg hasonló (regiszterek használata, portok kezelése). De azt azért túlzás lenne állítani, hogy aki az egyiket tudja, az a másikat is, kb mintha azt mondanám, hogy aki tud biciklizni, az tud repülőt is vezetni.
Más kérdés, ha egy adott μC-t integrálnak az Arduino ökoszisztémába (STM32, ESP).
-
válasz
t72killer #19894 üzenetére
mi van, ha az alany éjszakai fürdőszobába menéskor esik el? Jellemzően nem okoskütyükkel a nyakunkban alszunk
Dehát pont ezért csinálok karórát, ami mindig a kezén lesz, második eset, hogy a telefon az ágyon maradt, ő meg a földön feküdt, amíg gyanús nem lett, hogy nem hív egy teljes napja... 😶 Nyomni tudná, ha lenne mit.
Talán egy kibelezett régi óra tokját fogom használni, vagy 3D nyomtatok egy tokot hozzá.
spektrométert építek éppen
Jópofa projekt! -
válasz
Wolfram #19884 üzenetére
Nem hiszem, hogy ez túl nagy matekozást igényel. A hangsebesség ismert, a jel beérkezési ideje közti különbséget kell mérni, meg a hangerőt.
A csatornák legyenek hangszigetelő anyaggal rendesen elválasztva/körbevéve, hogy ne legyen crosstalk, és maga a helyiség is, amiben ezt a dolgot szeretnéd megvalósítani, legyen csillapított, különben a visszaverődések megnehezítik a dolgod. Érdemes mélyvágást csinálni, mert a magas hangok irányát lehet jól meghatározni.
-
-
Tud valaki olyan vezeték nélküli megoldást, ami elfér egy karórában ?
Anyukámnak szeretnék egy karra csatolható vészjelző eszközt csinálni, ami elmegy egy darab CR2032-es elemről. Attiny85 (Attiny12?) + IR LED + nyomógomb a terv, csak az a gond, hogy az IR nem megy át a falon. A vevő oldalon egy ESP8266 lenne IR vevővel, wifire kötve.
A másik ötletem, hogy magát az ESP8266-ot tenném az órába, van egy pucér ESP8266 modulom. Csak szemben az Attiny-vel, ami szépen elműködik 2,5V-ról is, ennek kellene stabilizátor és egy nagyobb áramot leadni képes táp, a wifi miatt.
Szóval valami rádiós eszköz kellene, ami méretben nem nagyobb egy gombelemnél. Az egyetlen, amit tudnia kell, hogy ~10m távolságban falon át egyetlen jelet/impulzust tudjon megbízhatóan átvinni a vevő oldalra.
-
válasz
ReFleXx #19860 üzenetére
Sajnos már nem emlékszem, hogy hol olvastam, de az a lényeg, hogy engem az zavart meg, hogy a * operátornak két funkciója van, ezen az oldalon például ezt le is írja.
Ebben a kódban látszik is:int myAge = 43; // Variable declaration
int* ptr = &myAge; // Pointer declaration
// Reference: Output the memory address of myAge with the pointer (0x7ffe5367e044)
printf("%p\n", ptr);
// Dereference: Output the value of myAge with the pointer (43)
printf("%d\n", *ptr); -
válasz
Janos250 #19861 üzenetére
Nem arról van szó, amikor én döntök arról, hogy mit használok
Hanem amikor például egy függvénynek kell valami speciális módon paramétert átadni, illetve az átvett adattal dolgozni, mert ugye a referenciaként átadott változónál a globális változóhoz tartozó memóriarészhez férek hozzá, de utána hogy kell rá hivatkozni a függvényen belül stb. az nem mindig világos elsőre. De próbálgatással eddig még mindig megoldottam az ilyen helyzeteket. -
Annyira nem értem a pointereket, hogy három nap után esett le, hogy mi van a képen.
Mentségemre szolgáljon, hogy elsőre azt hittem, hogy értem, mert más jelentést tulajdonítottam neki.Egyébként valószínűleg az lehet a gond, hogy egy olyan könyvből tanultam (teljesen autodidakta vagyok), ami valahogy rossz nyelvezettel írta le, ami rosszul rögzült, aztán évekig nem használtam, és végül nemrég olvastam egy jó leírást róla, ami végre talán tisztába tette a fejemben a dolgokat.
-
válasz
Harcipocok84 #19854 üzenetére
Sokkal könnyebb lenne, ha elmondanád a feladatot, amit szeretnél megoldani, mert most a gombhoz keressük a kabátot.
A hardveres UART nem igényel processzoridőt magához a kommunikációhoz, robusztusabb, de már egy 8MHz proci is elég gyors ahhoz, hogy gyakorlatilag semmit ne vegyél észre belőle. Persze vannak határai, ha jól tudom talán 57600baud fölött már nem ajánlják, de ha mondjuk 9600b/s sebességgel szeretnél valamivel kommunikálni, akkor teljesen jó. Ellenben problémát jelenthet, ha megszakításokat szeretnél használni. -
válasz
lanszelot #19855 üzenetére
Na most gondolod rosszul, nem tud több szálon futni (kivétel mondjuk az esp32 ahol két mag van), ezt miből vontad le?
A program futása soronként történik, kivéve ha megszakítást használsz (de valójában ott is soronként fut a kód).
Ami téged félrevezetett, hogy a megoldás, amit adtam neked, egy modern oprendszer időosztásos módszeréhez hasonlóan látszólag egy időben, de valójában felváltva csinál több dolgot. -
válasz
Harcipocok84 #19851 üzenetére
Szia! Nem írtad, hogy mekkora sebességre/RAM méretre van szükséged, de a leírt kritériumoknak egy attiny85 is bőven megfelel. 8 lába van, könnyű beépíteni, illetve van belőle olyan modul is, amit USB-n keresztül is lehet programozni (Digispark), itt csak 3 lábat tudsz szabadon használni, cserébe a cucc képes usb eszközöket (mouse, keyboard, midi) emulálni.
5 szabadon felhasználható lába van, 3 analóg, 2 PWM lába van, ICSP (SPI) keresztül lehet programozni, hardveres UART ha jól tudom nincs benne, de szoftveresen megoldható, illetve szoftverből tudsz half-duplex UART-ot is csinálni, tehát 5 lábon 1 pwm, 1 analóg, egy teljes értékű és egy half-duplex UART elfér. -
válasz
lanszelot #19848 üzenetére
A kolléga már szépen elmagyarázta (
neki ), én csak a beszúrás részéhez szólnék hozzá:
A hozzászólás írásakor a szövegmező fölött van egy "Váltás a régi szerkesztőre" link. Ez azt csinálja, amit ígér.
Ezzel hibátlanul lehet kódot beszúrni:#include <Adafruit_SSD1306.h>
#include <splash.h>
uint32_t lastms = 0;
bool blink = true;
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void setup() {
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x32
display.display();
delay(2000);
}
void loop() {
int sensorValue = analogRead(A0);
int isgas = digitalRead(2);
String gas;
//delay(1000);
display.clearDisplay(); //this line to clear previous logo
display.setTextSize(2); /*text size 3*/
display.setCursor(3, 0); // ez tartja egy helyben a szöveget
display.setTextColor(WHITE); //without this no display
display.print("Gasmeter");
display.setTextSize(1); /*text size 2*/
display.setCursor(0, 50); // ez tartja egy helyben a szöveget
display.setTextColor(WHITE); //without this no display
display.print("CO2 = ");
display.print(sensorValue);
display.print(" PPM ");
if (sensorValue < 90) {
gas = "No Gas";
}else {
gas = " Gas";
if (millis() - lastms > 4000) {
lastms = millis();
blink = !blink;
}
if (blink)
display.drawRoundRect(80, 47, 40, 15, 2, WHITE);
else
display.drawRoundRect(80, 47, 40, 15, 2, BLACK);
}
display.print(gas);
display.display(); //to shows or update your TEXT
}Ez javított kód, minden loop ciklusban kirajzolja a keretet, csak a színét változtatja 4000ms-onként (ez szerintem sok, én 500-at állítanék be).
Ez a két sor a rendszeres törlés miatt valószínűleg nem is kell:
else
display.drawRoundRect(80, 47, 40, 15, 2, BLACK); -
válasz
lanszelot #19823 üzenetére
Ha törölné a fekete tovább lenne.
v.s.
Kijelzőt a loop elején törli.Ha a loop végén rajzolsz valamit a kijelzőre, amit a loop elején azonnal törölsz, akkor miért csodálkozol, hogy csak egy pillanatig látszik?
Továbbra sem értem ezt a "fekete keret látszik, a fehér nem" helyzetet, mikor monochrome a kijelző, fekete alapon te hogy látod a fekete keretet?
A megosztott oled linkemben is ott van.
Én nem láttam, hogy bármikor linkelted volna a teljes programot.
Szóval ha minden loop ciklus elején törlöd a kijelzőt, akkor mindent újra kell rajzolni, a keretet is, sőt, ez esetben nem is kell fekete keret, hiszen a ciklus elején a fehér keret törlésre kerül... Jó, hogy úgy kell kibarkóbázni belőled a részleteket.
-
válasz
lanszelot #19819 üzenetére
Miután nem láttuk az egész programot, nem is lehet így megmondani, hogy okozza a "bugot". Amit írtam, logikailag nem hibás, valószínűleg a te programod törli a kijelzőt ezért a fehér keret eltűnik kirajzolás után. A másik megoldás azért "nem bugos", mert az minden ciklusban rajzol.
-
válasz
lanszelot #19811 üzenetére
uint32_t lastms= 0;
bool blink = true;
void loop() {
if (sensorValue < 90) {
gas = "No Gas";
}else{
gas = " Gas";
if (millis() - lastms > 200) {
lastms = millis();
if (blink)
display.drawRoundRect(80, 47, 40, 15, 2, WHITE);
else
display.drawRoundRect(80, 47, 40, 15, 2, BLACK);
blink = !blink;
}
}
} -
válasz
gordonfreemN #19779 üzenetére
ezek szerint az ismétlés kódja a -1 ?
Akkor nyertem az 0xffffff-el, előjelesen az -1
(valójában 0xffffffff, nem tudtam hány byte-os az IR kód).
Így akkor egyszerű a megoldás:
...
case -1:
break;
default:
Serial.println("Waiting ...");
digitalWrite(pausePin, LOW);
digitalWrite(playPin, LOW); -
válasz
gordonfreemN #19760 üzenetére
Ha jól értem azt szeretnéd, hogy amíg tartod a gombot a távirányítón, addig világítson a LED, de írtam, hogy azért nem fog menni, mert a távirányító nem ismétli a kódot (nem küldi újra és újra amíg a gombot nyomod) csak bizonyos gomboknál, például a hangerő gombok. Illetve van olyan távirányító, ami ilyenkor nem a kódot küldi újra, hanem egy általános "ismétlés" kódot, ami azt jelenti, hogy "az előző gomb még nyomva van". Ha ez a helyzet, derítsd ki, mi ez a kód (például 16777215, ami 0xffffff-nek felel meg, úgy emlékszem egy távirányító ezt küldte ilyenkor). Egy telefon kamerájával könnyen tudod ellenőrizni, hogy a távirányító egyáltalán küld-e valamit: irányítsd a távot a kamera felé, a kijelzőn lilán fogod látni villogni a ledet.
-
válasz
Janos250 #19756 üzenetére
Azért nyilván van egy ésszerű határ, amit mondjuk telefonról nézve már sokáig tart átgörgetni (én például szinte kizárólag telefonról nézem a fórumot, írni is arról szoktam), de aki asztali gépről nézi az oldalt, ott is zavaró lehet, ha egy beszúrt kód egyetlen hozzászólásban hosszabb, mint az oldalon lévő összes 49 további hozzászólás együtt.
-
válasz
gordonfreemN #19751 üzenetére
Szia! Szerintem ebből ne csinálj gondot, egy ilyen rövid kód simán elfér itt (hiszen pont ezért is van kódbeszúrás funkció az oldalon), ami hosszabb mondjuk 1-2 oldalnál, azt meg tedd fel mondjuk ide.
A kolléga már leírta a megoldást, én annyit tennék hozzá, hogy így viszont nagyon rövid ideig fog a LED világítani, hacsak a távirányító nem ismétli a kódot amíg a gombot nyomva tartod, de pont a play/pause gombokat nem szokták újraküldeni, inkább a hangerő, programváltó stb ahol számít, meddig nyomod, úgyhogy én tennék oda egy
delay(500);
sort minden felkapcsolás után:case 6072407:
Serial.println("Play");
digitalWrite(playPin, HIGH); // sets the LED on
digitalWrite(pausePin, LOW);
delay(500);
break;
case 6066287:
Serial.println("Pause");
digitalWrite(pausePin, HIGH); // sets the LED on
digitalWrite(playPin, LOW);
delay(500);
break;Ha ez a késleltetés zavarja a program működését (ugyebár ennyivel később fog kapcsolni) akkor állapotgépet kell használni helyette.
-
válasz
VMatteo #19734 üzenetére
Szia! A kit mellé szoktak adni oktató anyagot, a tiédhez nem adtak?
Nézz szét itt: [link] az összes lényeges alap kapcsolás le van rajzolva. Valahol megvan összefűzve pdf formátumban, keress utána "Arduino basic connections by pighixxx" néven.
Példa programokkal tele van maga az Arduino IDE is, de ha valami konkrétan érdekel, a Google nagyon jól el tud látni tutoriallal és példa programokkal is. -
Jó ötlet! Ez esetben a
myMem.put(1000, (float) 60.0);
működhet. Nem kellene a fordítónak hibát jeleznie? 🤔Volt egy oldal, ahol leírták, hogy melyik Arduino boardon melyik adat típus hány bites, de nem találom. Arra emlékszem, hogy az UNO-n a float és a double is egyformán 32bit volt, de a Due-n már biztos nem így van.
-
válasz
Blasius #19716 üzenetére
Nem tákolt ez attól, hogy tettél bele késleltetést, miért lenne? Figyelembe kell venni a hardverek sajátosságait. Ha jól értelmezem, a GPS modul az adatot adagokban küldi az UNO-nak. Az UNO több sort vár a feldolgozáshoz, de a GPS egy sor után nem kezdi meg a következő adag küldését, hanem vár valamennyit (nyilván műszaki okból, nem kitolásból
). Neked ezt ki kell várni a fogadó oldalon.
-
válasz
Dißnäëß #19712 üzenetére
Én nem tudok mindenre válaszolni, csak örülök, hogy benéztél.
Esp32-n van permanens tár, ami nem EEPROM, de pont ilyen beállítások tárolására találták ki, még a hozzá való library-t is ennek megfelelően nevezték el (Preferences.h).
Én sem tudom, mit kell folyton állítgatni egy termosztátot...
Amikor kazános fűtésű házban laktunk, vettem egy okosabb termosztátot, ahol időzítve minden nap minden órájára be lehetett állítani a hőfokot. Eleinte élveztem, játszottam vele, aztán elkezdtem szépen törölgetni a beállításokat, míg egyszer csak azt vettem észre, hogy mindent kitöröltem és már hónapok óta ugyanaz az egy a hőfok van beállítva.
-
válasz
its_grandpa #19695 üzenetére
Hát ha nem is egyszerre 255, de ha minden eszköznek fix ip címet adsz, ahogy én teszem, előbb-utóbb el tud az fogyni, főleg, ha sok IoT eszközöd van.
-
-
válasz
vargalex #19687 üzenetére
Az ESP eszközeid nem akkor kapják a 192.168.4.1-et, ha ők AP-ként és DHCP szerverként működnek és te rájuk csatlakozol
De, tényleg, de hülye vagyok
egyébként nem egyszerűbb a PC-den 192.168.2.0/24-ből beállítani egy statikus IP-t
Az a baj, hogy ezt a mondatot nem értem.
a 192.168.2.0 után mi az a 24? De, valószínűleg ez lesz a megoldás, majd ha megértettem.
-
válasz
Janos250 #19682 üzenetére
Srácok, baromira off téma, de az előzőekhez kapcsolódik és most eszembe jutott megkérdezni, mert látom ti eléggé vágjátok ezt a kérdést.
Láma kérdés, de sajnos ez a téma nálam nagy fehér folt.
A régi routeremet (Asus n14u) beállítottam repeater módba, és saját ip címnek a 192.168.2.1-et találtam neki adni. Azóta képtelen vagyok elérni a router beállítások menüjét, közvetlen lan kapcsolaton se, se a wan, se a lan portokon, ráadásul wifin sem lehet rá kapcsolódni valami okból, viszont a vezetékkel rádugott eszköz kap netet rajta keresztül. Sőt, a másik routerre (Asus ac57u) belépve azt se látom, hogy fel van rá csatlakozva.
Jól sejtem, hogy ha az alap routeren átírom a subnet mask-ot 255.255.0.0-ra, akkor a másik routert el fogom tudni érni a 192.167.2.1 címen? Nem szeretném resetelni, mert amúgy egy csomó beállítás van benne (pl. mac címek a mac szűrés miatt). De ha ez így van, hogy emiatt nem tudom elérni, akkor mégis miért tudom elérni az ESP eszközeimet, amik meg alapból a 192.168.4.1 címet kapják? -
válasz
ReFleXx #19676 üzenetére
Igen, cellux-szal.
Ha egy fokkal igényesebb megoldás kell, akkor húzd vissza az egyik vezetéket a lyukból, és vezesd végig az akku mellett, alul, a tartó sarkában (simán elfér a kerek akksi mellett), tágítsd ki a lyukat a másik vezeték mellett, és fűzd ki ott, vagy fúrj neki egy lyukat mellette. Így egy picit hosszabb is lesz a vezeték. -
válasz
razorbenke92 #19661 üzenetére
Na, akkor mégiscsak van benne valamiféle step-down
-
válasz
razorbenke92 #19657 üzenetére
Tehát amennyiben csak a piros színt hajtod maxon, akkor 5V-on akár 60%-a is lehet a mért áram. (5Vx12mA ≈ 2.8Vx20mA + veszteségek)
Kivéve, hogy 5V-on is 20mA lesz az áramfelvétele (vagy több, ha nincs áramkorlát, és akkor kiég). Amit leírtál, csak abban az esetben lenne igaz, ha step-down modul adná a tápot. De kizártnak tartom, hogy abban az icipici kontrollerben lenne ilyesmi.
-
Miért okoz problémát, ha valami kevesebbet fogyaszt, mint kellene?
Vagy az van, amit írsz, hogy gyártási szórás/különböző gyártók közti különbség, vagy a következő:
Ezekben a WS2812B LED-ekben egy gombostűhegynyi pici IC gondoskodik 3db LED vezérléséről. Mind 3 színnek más a nyitó feszültsége, ez 3 különböző előtét ellenállást igényelne, de ezt a chipen belül csak nagyon pontatlanul tudják megoldani, gyanítom valami más megoldást alkalmaznak az áramgenerátoros meghajtás érdekében. Szóval szerintem az van, hogy a piros meg a zöld LED miatt a kék nem kap annyi kakaót, mint ha csak egymagában világítana, és vagy emiatt, vagy mert a chip kompenzálja ezt a különbséget azzal, hogy visszaveszi a másik két színt az arányok megtartása érdekében. -
válasz
gordonfreemN #19645 üzenetére
A leírásod alapján teljesen felesleges az alvó módot erőltetni.
Egy mcu fogyasztása mérési hibahatáron belül van (a tévémben például a standby áramkörben van egy mcu abból a célból, hogy az IR szenzor jelére felébressze a tévét). Alvó móddal csak akkor van értelme foglalkozni, ha elemes/akkus táplálással szeretnéd használni a cuccot.
Ha egyszer mégis szükség lenne ilyen pulzáló effektre, és altatni is szeretnéd, a delay(30); helyére kellene tenni egy alvást, 30ms-re, időzítve. Esetleg csökkenteni a lépések számát, növelni a lépések közt az időt úgy, hogy az élvezeti értéke ne csökkenjen. -
válasz
gordonfreemN #19638 üzenetére
Nyugodtan tegyél be pár sor programot
De hosszabb kódokat, log-okat pastebin-re vagy hasonló helyre szoktunk beszúrni és azt ide linkelni, mert praktikusabb.
A LED kezelést illetően az a baj, hogy az a loop többszöri futását igényelné, te viszont a loop közepén elaltatod a lapot. Megoldás: a kikapcsolás LED effektet egy for ciklusba tedd bele, a ciklus lejártával jöhet az altatás. -
válasz
gordonfreemN #19629 üzenetére
Nem akarlak kiábrándítani, de csupa idegen által megírt valamit töltesz fel amúgy is.
-
válasz
razorbenke92 #19587 üzenetére
De még ha pont ugyanott tartana is mind a műsorban, tehát a puffer tartalma ugyanaz is lenne, akkor is lehet olyan pici eltérés, ami miatt "visszhangos" lesz a lakás.
Ez a HA megoldás érdekesen hangzik. -
válasz
razorbenke92 #19585 üzenetére
Az nem baj, hogy nem lesznek szinkronban?
-
válasz
Laurencius #19580 üzenetére
Egyelőre kipróbálni még nem tudom a javaslatokat, mással van teli az asztalom.
Nekem ez nem probléma.
a képernyő jobbra-balra mozgatása nem egyenértékű-e a képernyő görgetésével
Nem, ha vertikális scroll-ról van szó. Neked horizontális kell.
vajon a korábban jelzett színes kijelző helyet tudnék-e alkalmazni monokróm LCD-t?
Elméletileg nincs akadálya szerintem, a kódban van mód grayscale kijelzőt beállítani, de ha látni is szeretnél rajta (monokróm=1bit színmélység) valamit, akkor ditherelni kell a képet.
-
válasz
its_grandpa #19575 üzenetére
Ebből kéne egy ebook, csak sehol sem találtam.
-
válasz
gya/352 #19566 üzenetére
Ha máshogy nem, akkor meg kell kínálni kicsit a programot.
Az adó behangolásáért és a lejátszásért felelős kódot addig kell ismételni, amíg a Song stopped incorrectly! hiba jelentkezik. Persze észszerűen: néhány próbálkozás után abbahagyni, különben egy nem létező/hibás link után végtelen ciklusba futna a program.
Új hozzászólás Aktív témák
- Apple iPad A16 128GB,Újszerű,Dobozával,12 hónap garanciával
- MACBOOK PRO M1 8G/256G KIFOGÁSTALAN, KARCMENTES, 91% AKKU, ÜZLETBŐL, GARANCIÁVAL
- Samsung Galaxy Z Fold 4 256GB,Újszerű,Dobozával, 12 hónap garanciával
- Macbook Air 2020 M1 8GB/500 GB Roze Gold, nagyon jó akku, üzletből, garanciával
- Apple iPad Mini 6 64GB,Átlagos,Töltővel,12 hónap garanciával
- LÉZEREZÉS! külföldi billentyűzet magyarra kb. 20-30p alatt!
- HIBÁTLAN iPhone 14 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3237
- GYÖNYÖRŰ iPhone 12 Pro Max 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS2107, 100% Akkumulátor
- LG 32GS95UE - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Logitech Lift for MAC ergonomikus egér
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest