- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gurulunk, WAZE?!
- Kempingezés és sátrazás
- Viber: ingyen telefonálás a mobilodon
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
-
LOGOUT
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
-
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. -
-
válasz
lanszelot #19517 üzenetére
Hát... Akkor már csak két lehetőség van.
1 eleve rossz a lap, vagy hamis chip van rajta
2 véletlenül elkötötted a tápvezetékeket próbálkozás közben és kijött a füst, ami működteti a chipet
Esetleg keresni kellene egy régebbi verziójú avrdudess-t, hátha. Egy régebbi például ismeri a pickit2 programozót, de az újabbakból már kivették a támogatást, hátha az Arduino ISP is csak egy régebbi verzióban van. Én egyszer kaptam attiny85 helyett attiny12-t, de az avrdudess azt is felismerte, asszem pont egy UNO volt a programozó mert nem volt akkor még rendes ISP-m... De hogy semmi ne ismerje fel -
válasz
lanszelot #19514 üzenetére
Töltsd le az avrdudess-t. Felül ki tudod választani a portot és a programozót (Arduino as ISP), jobb felső sorban a Detect gombra nyomva fel kell neki ismerni a CPU-t akkor is, ha nincs rá feltöltve bootloader. Ha felismerte, akkor minden jól van összekötve. Töltsd le ezt a hex file-t, tallózd be a Flash sorban, nyomd meg alatta a Gombot
Ha minden jól megy, kész. -
válasz
lanszelot #19510 üzenetére
Tedd már meg, hogy csinálsz egy fotót az összedugott két lapról, ahogy utoljára próbálkoztál vele.
A mega boardon nem a 10-13 pineken van az SPI, mint az UNO-n meg a Nano-n, hanem az 50-53 pineken, ezeket kell összekötni a Nano 10-13 pinjeivel, vagy az ICSP headerrel, ami ugyanez a 4 láb csak máshol kivezetve. -
válasz
lanszelot #19501 üzenetére
Na akkor sorban:
1 kiválasztottad a mega boardot
2 feltöltötted rá az Arduino ISP programot
3 kiválasztottad a nano boardot
4 beállítottad programozónak az "Arduino as ISP"-t
5 össze kötötted a megfelelő lábakat:
6 bekötötted a kondenzátort a reset lábraés ennek ellenére sem sikerült?
-
válasz
Tankblock #19483 üzenetére
Nekem az a bajom, hogy az *.ino fájlban csak a setup.h van #include-olva, a setup.h fájlban viszont nincs egyáltalán #include, tehát még mindig nem értem, hogy honnan tudja, hogy melyik library fájlban keresse a meghívott class-okat.
Ha én írok egy *.ino fájlt, hiába van a szükséges library installálva a library mappába, ha nem #include-olom a program elején, nem fogja megtalálni. -
válasz
lanszelot #19474 üzenetére
Nincs rajta bootloader azt tudom
Csak azt nem mit jelent.Azt jelenti, hogy a rajta lévő usb-uart porton keresztül nem fogsz tudni rá programot feltölteni, csak egy ún. ISP segítségével. Hát, nem jó eszközzel kezded az ismerkedést... Ilyet miért árulnak egyáltalán?
A mostanit azért nem szúrtam be mert rengeteg sor hiba.
paste.bin-re szúrd be és azt linkeld ide. De amúgy amíg nem lesz felprogramozható lapod, addig mindegy is.
Meg tudsz kérni valakit? Esetleg egy Nano-t/UNO-t ha tudsz kölcsön kérni, azzal is életre lehet kelteni.Egyébként a library-knek eléggé meg van szabva a könyvtárszerkezete, ha nem úgy töltöd fel a fájlokat, ahogy az Arduino szereti, akkor előfordulhat, hogy nem találja meg. Egy screenshot kéne a /library könyvtárról.
-
válasz
lanszelot #19469 üzenetére
Nem is kerestem.
Google, első találat: [link]
Második találat:
How to install Adafruit sensor in Arduino?
Open Arduino IDE and go to Sketch, include library, add . zip library and open the . zip file that you have just downloaded. Now theAdafruit Sensor library should be installed. -
válasz
gya/352 #19457 üzenetére
esptool.py -p com4 erase_flash
Ezzel is próbáld meg, ahogy a linkelt oldalon írják.
Próbáltál már különböző memória kiosztásokat (APP/OTA/SPIFFS) beállítani feltöltés előtt?
Az oldalon egyébként írják az okokat is:
SOLVED:
We are now 99% sure this problem is actually caused by a hardware design issue with our USB programming board.
During the condition where the main power supply to the board is OFF but the programmer is still connected to USB, we see stray voltages on the pins connected to the ESP32, including the MTDI pin. This pin has an internal pull down in the ESP, but it is not active until after power is applied. Where it has floated high during power down, it looks like the pin is not pulled low fast enough at power on, and gets read as "1". This causes the VDD_SDIO to be set to 1.8v instead of 3.3v. We observe that the pin strapping shown by the bootloader is 0x33 or 0x3f instead of 0x13. The condition persists a software reboot, and our testers were usually experiencing a recurrence of the problem if they cycled the power. However, reprogramming the board would reset it until some future power interruption caused it to recur.
The problem did not happen on our original boards because the flash still worked correctly even at the lower voltage. However, more recent boards have a later ESP module with a different flash chip (Manufacturer: c8; Device: 4017). I have now confirmed that on these boards, the flash can be read but cannot be written when VDD_SDIO has been set to 1.8v.
I have worked around the problem on our dev boards by running this espefuse command to set the VDD_SDIO to 3.3v via the e-fuses:
CODE:python path\to\esp\tools\espefuse.py -p comX set_flash_voltage 3.3V
Van neked kötve valami az MTDI pin-re (GPIO12)? Ha jól értem egy külső lehúzó ellenállás (pl 10kΩ) esetleg megoldhatja a dolgot.
-
válasz
its_grandpa #19453 üzenetére
Pedig nyugodj végre bele, hogy az csak a buffer size:
String nvsgetstr ( const char* key )
{
static char nvs_buf[NVSBUFSIZE] ; // Buffer for contents
size_t len = NVSBUFSIZE ; // Max length of the string, later real length
nvsopen() ; // Be sure to open nvs
nvs_buf[0] = '\0' ; // Return empty string on error
nvserr = nvs_get_str ( nvshandle, key, nvs_buf, &len ) ;
if ( nvserr )
{
dbgprint ( "nvs_get_str failed %X for key %s, keylen is %d, len is %d!",
nvserr, key, strlen ( key), len ) ;
dbgprint ( "Contents: %s", nvs_buf ) ;
}
return String ( nvs_buf ) ;
} -
válasz
its_grandpa #19449 üzenetére
Nekem sajnos itt megállt a tudományom.
-
válasz
gya/352 #19440 üzenetére
Nem vagyok benne biztos, hogy feltöltés előtt is törli a flash-t, mert a SPIFFS adatai például úgy emlékszem megmaradnak, ha nincs piszkálva. Az NVS is.
Hogy mi triggereli a read only módot, azt kéne megtalálni és megszüntetni, különben flash törlés után újra ugyanez lehet a helyzet.Szerintem első próbálkozásra az NVS-ből kiolvasott információk alapján próbálja elindítani a streamet, azért nem megy, másodikra viszont azt az adatot használja, amit a webes felületen te megadsz.
-
válasz
its_grandpa #19438 üzenetére
Az rendben van:[link]
Szerintem az lesz a megfejtés, amit eggyel előtted linkeltem, az NVS valamitől read only lesz a boot alatt.
Új hozzászólás Aktív témák
Hirdetés
- Milyen légkondit a lakásba?
- sziku69: Fűzzük össze a szavakat :)
- BestBuy topik
- Kazy Computers - Fehérvár - Megbízható?
- Óra topik
- Apple asztali gépek
- Hálózati / IP kamera
- Kertészet, mezőgazdaság topik
- gban: Ingyen kellene, de tegnapra
- Egyéni arckép 1. lépés: ARCKÉPHEZ VALÓ JOGOSULTSÁG
- További aktív témák...
- DDR5 8/ 16/ 32GB 4800-5600MHz SODIMM laptop RAM, több db- számla, garancia
- Samsung Galaxy Xcover 5 64GB, Kártyafüggetlen, 1 Év Garanciával
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
- BESZÁMÍTÁS! Asus TUF B450M R5 5600X 32GB DDR4 512GB SSD RTX 3060 XC 12GB Rampage SHIVA Chieftec 600W
- Csere-Beszámítás! Sapphire Pure RX 7900XT 20GB Videokártya! Bemutató darab!
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest