- Bemutatkozott a Poco X7 és X7 Pro
- Yettel topik
- Magyarított Android alkalmazások
- Hónap végén érkezik a Xiaomi Band 10, ára is van
- iPhone topik
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Google Pixel topik
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
-
Mobilarena
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
gya/352 #19436 üzenetére
Ahogy írtam korábban, az NVS memóriával van valami gubanc:
22:58:11.630 -> D: nvs_get_str failed 1102 for key preset, keylen is 6, len is 150!
22:58:11.630 -> D: Contents:
22:58:11.630 -> D: updateNr 0 <= 0 to 0, relative is 0
22:58:11.630 -> D: updateNr result is 0
22:58:11.630 -> D: nextPreset is 0Valamitől nem lehet bele írni (tartós memória, ide menti a beállításokat).
ESP_ERR_NVS_NOT_FOUND (0x1102): A requested entry couldn’t be found or namespace doesn’t exist yet and mode is NVS_READONLY
[link]Itt találtam rá valamiféle megoldást, most túl fáradt vagyok értelmezni, hátha neked sikerül
-
válasz
its_grandpa #19415 üzenetére
Én ehhez nem tudok hozzászólni, csak annyit tudok erről az eszközről, az amit tegnap óta gugliztam róla
A config.h-ban ez volt leírva:
// Define (just one) type of MP3/AAC decoder
#define DEC_VS1053 // Hardware decoder for MP3, AAC, OGG
//#define DEC_VS1003 // Hardware decoder for MP3ezek szerint midit is tudnak, csak azt nem írták oda.
Mindenesetre vicces dolog lehet egy ilyen eszközt rákötni egy midi keyboardra.
-
válasz
tibi-d #19410 üzenetére
anélkül, hogy az egészet kétszer le kéne gépelni.
Persze, CTRL+C, CTRL+V
Persze, ezer féle megoldás lehet rá.
Ha ilyen egyszerű a feladat (csak egy összeadás-kivonás csere), akkor a legegyszerűbb a matematikai megközelítés:
int szorzo=a?-1:1;
c=a+b*szorzo;
d=a+c*szorzo;
e=b+d*szorzo;vagy
c=a+b*(a?-1:1);
d=a+c*(a?-1:1);
e=b+d*(a?-1:1);Ha bonyolultabb, akkor függvénnyel:
int muvelet (bool a, int egyik, int másik) {
return a? egyik-másik : egyik+másik;
}
c= muvelet(a,b,c);
d= muvelet(a,e,f);
e= muvelet(a,x,y);vagy csak beteszed a fenti műveletet a kódba:
c= a? egyik-másik : egyik+másik;
d= a? egyik-másik : egyik+másik;
e= a? egyik-másik : egyik+másik;Vagy ha gyors kódot szeretnél, és keveset gépelni, a kettőt lehet kombinálni, ha függvény helyett makróba teszed azt az egy sornyi kódot:
#define MUVELET( a, egyik, másik) ({ a? egyik-másik : egyik+másik; })
c= MUVELET(a,b,c);
d= MUVELET(a,e,f);
e= MUVELET(a,x,y);vagy
#define SGN(a) ({a?-1:1;})
c=a+b*SGN(a) ;
d=a+c*SGN(a) ;
e=b+d*SGN(a) ; -
válasz
its_grandpa #19411 üzenetére
Ha jól láttam, a VS1003-nak nincs midi módja, mert kizárólag mp3-at tud lejátszani. Ettől függetlenül lehet a firmware-ében ugyanaz a bug, mint a VS1053-nak.
-
válasz
Laurencius #19408 üzenetére
Hát, látod kellett hozzá a több szem
de legalább tanultam valami újat én is.
-
válasz
gya/352 #19398 üzenetére
Hoppá.
Találtam egy ilyet:Slow SPI, Testing VS1053 read/write registers...
19:04:19.827 -> D: This is not a VS1053, but a VS1003 instead!
19:04:19.938 -> D: Fast SPI, Testing VS1053 read/write registers again...
19:04:21.637 -> D: This is not a VS1053, but a VS1003 instead!A setupban át van ez javítva?
#define DEC_VS1053 // Hardware decoder for MP3, AAC, OGG
//#define DEC_VS1003Bár a log szerint így is felismeri, de hátha.
-
válasz
Laurencius #19390 üzenetére
Próbáld már ki, hogy az ExampleTftBufferedCameraFrame.cpp fájlban ezt a részt módosítod:
void sendLineToDisplay() {
if (screenLineIndex > 0) {
screenLineStart();
#if GRAYSCALE_PIXELS == 1
for (uint16_t i=0; i<camera.getLineLength(); i++) {
sendPixelByte(graysScaleTableHigh[camera.getPixelByte(i)]);
sendPixelByte(graysScaleTableLow[camera.getPixelByte(i)]);
}
#else
for (uint16_t i=0; i<byteCountForDisplay; i++) {
sendPixelByte(camera.getPixelByte(i));
}
#endif
screenLineEnd();
}
}úgy, hogy a for (uint16_t i=0; sorokban a 0-t átírod például 20-ra! Ez elvileg a képet 20 pixellel balra fogja tolni. Ha ez működik, akkor lehet tovább lépni.
-
Ilyenkor jövök rá, mennyire csak a felszínét piszkálgatom én ennek az egésznek...
Honnan a fenéből tudja, hogy mivel kell összelinkelődni, ha a setup.h-ba nincs include-olva és még csak nem is egy könyvtárban vannak?
Arról nem is beszélve, hogy pl az initializeScreenAndCamera() 6 fájlban fordul elő, de ezek közül egyik sem a library-ben fordul elő, hanem example fájlok: -
válasz
Laurencius #19390 üzenetére
Ez nekem magas, remélem valaki el tudja nekem magyarázni, hogy hogy tud lefordulni ez a gyakorlatilag üres fájl...
-
válasz
Laurencius #19388 üzenetére
-
válasz
gya/352 #19386 üzenetére
Nagy dolog nem lehet, mert alapvetően működik a cucc.
Vannak különböző memóriasémák, abban a menüben ahol a lapot kiválasztod, meg a portot stb. Ki tudod választani, hogy mennyi legyen az app, az OTA, és a SPIFFS. Ha nem szeretnéd OTA frissíteni a firmware-t, azt ki is lehet hagyni. Próbálj végig többféle sémát, hátha ott van a kutya elásva.A kódot megnézve elég beszédes debug ügyben. Tedd már meg, hogy nem csak a hiba jelentkezése utáni debug szöveget, hanem bekapcsolástól az összes kiírást (a hiba jelentkezéséig, illetve az első sikeres lejátszásig) lemented a terminálról mondjuk ide hogy meg tudjuk nézni.
-
válasz
gya/352 #19384 üzenetére
A routerre vonatkozó kérdést már másodszor ugrod át elegánsan...
Feltöltéskor milyen memóriamodellt választottál ki? Úgy tűnik az adatok tartós tárolása hibádzik valahol. Viszont a kezelő felület html része is a SPIFFS-ben van tárolva, és az működik, tehát SPIFFS van.
-
válasz
gya/352 #19378 üzenetére
Volt már téma korábban.
Anélkül, hogy beleásnám magam a szoftver részébe: ha azzal gond lenne, annak valószínűleg nyoma lenne a github oldalon az issues fülön, de nincs. Tehát valószínűleg hardveres gond lehet. Elsősorban a táp résszel lehet valami gubanc: milyen tápot kap az egész cucc és külön-külön az összetevők?
Ha az rendben van, akkor az összeköttetés az esp és az mp3 modul közt (rövidzár, laza forrasztás, esetleg külső zavar). És nem tudom, hogy a router, amire az egész kapcsolódik, volt-e már újraindítva, de az is tud problémát okozni. -
válasz
Laurencius #19372 üzenetére
Tedd már meg, hogy belinkeled, hogy pontosan mit és honnan töltesz/fordítasz (*.ino fájlt), mert ilyen zavaros github oldalt még nem láttam.
Mit nyersz egyébként a kép mozgatásával? -
válasz
ekkold #19363 üzenetére
Mert az ARM ismeri a lebegőpontos műveleteket, az AVR meg nem.
Mikor csináltam az oszcilloszkópomat (UNO), ciklusidőre ki volt számolva a program, és a lefordított asm alapján faragtam le további értékes μs-okat meg pontosítottam az időzítéseket.Akkor láttam, hogy milyen ügyes optimalizációkat csinál a fordító.
-
válasz
ekkold #19361 üzenetére
Esetleg még érdekességképpen annyit, hogy ha egy feltételt többször is meg kell vizsgálni (pl.: if(feltétel1 && feltétel2)
...
if(feltétel1 && feltétel3)
...) akkor előzetesen a feltétel1 vizsgálatának az eredményét érdemes egy változóba menteni, mert azt tudja úgy optimalizálni a fordító, hogy a processzor egyik regiszterét használja cache-nek (a lassabb RAM művelet helyett) és így magát a vizsgálatot is csak egyszer végzi el. -
válasz
razorbenke92 #19347 üzenetére
Mindig tanul az ember
-
válasz
razorbenke92 #19342 üzenetére
Az atmega tartalmaz egy beépített feszültségreferencia adót, ami kvázi egy ultrapici 1.1V stabkocka
...
Ha megméred az internal vref feszültségét, abból vissza tudsz skálázni a tápfeszre.Ezt meg lehet csinálni? Hogy? Úgy tudom a beépített 1.1V feszültséget csak referenciaként lehet használni analóg méréshez, de azt magát nem lehet megmérni. 🤔
-
válasz
Harcipocok84 #19340 üzenetére
Azért ne ess kétségbe, nem áll meg itt a tudomány.
Meg lehet ezt kvázi bolondbiztosra is csinálni.Tegyél egy nagy kondenzátort a táp és a gnd közé, a kondenzátor elé nyitó irányban pedig egy schottky diódát.
Az egyik szabad analóg pinre kösd rá a tápfeszültséget a dióda előtti részről egy áramkorlátozó ellenálláson keresztül. Az 5V tápot osztás nélkül rá tudod kötni, az ellenállás azért kell, hogy bekapcsoláskor ne azon keresztül töltődjön a kondi.
Minden EEPROM írás előtt nézd meg, hogy kap-e még (kívülről) megfelelő tápot a cucc. Ha elég nagy kondit teszel oda, a tápfesz elvétele után még akár pár másodpercig is képes üzemelni, így biztonságosan le tudod állítani. Ez a véletlen brownout-okat is ki tudja küszöbölni (bizonyos szintig), de a megoldás igazából az lenne, ha stabil tápot kapna és nem kapcsolgatná ki senki random módon, ha már fontos automatizált folyamatot vezérel.
-
válasz
tibi-d #19338 üzenetére
Nem a timert állítod le, csak letiltod az interruptot. Annyi mellékhatása lehet, hogy egy interrupt kicsivel később fog kiváltódni, mert két flag egyszerre szükséges hozzá: a timer interrupt és az interrupts enabled. A timer lefutásával beállítja az interrupt flag-et, az úgy is marad, amíg a másikat újra nem engedélyezed.
Ha a timert az interrupton belül inicializálod, akkor értelemszerűen onnantól annyival el lesz csúszva. -
válasz
Harcipocok84 #19328 üzenetére
Szia! Ha ez egyedi eset volt, akkor bármi lehet. Az EEPROM írás viszonylag hosszú művelet, az is lehet, hogy éppen akkor áramtalanítottad, mikor írt volna, és még egy korábbi értéket kaptál vissza.
Az is lehet, hogy az egyik cella egyik bitje elérte a maximális írási mennyiséget és csendben elromlott. Talán 10ezer írást bír egy ilyen EEPROM cella, te tudod, hányszor írtál bele. Próbáld a hibát reprodukálni, ha tudod melyik cella volt. -
válasz
#68216320 #19323 üzenetére
Kell egy darab nyáklap, amire alkoholos tűfilccel rárajzolod az érintkezőket méretarányosan, és valaki kimaratja neked. Szerintem csak akad itt a topikban is valaki helybeli, aki sörért/csokiért segít.
Utána valószínűleg le kell csiszolni a másik oldalát, hogy ne legyen vastagabb, mint egy microSD kártya. -
-
Megnéztem, nagyon jó kis kezdő szett annak, aki nem szeretne forrasztással bíbelődni, csak plug-and-play.
Sajnos semmilyen részletet nem ír az alkatrészekről, de a motor a videó alapján talán a nagyobbik (1:120) áttételű lehet. Én mégis azt mondom, hogy pont neked való lenne. -
Na, összeszedtem pár javasolt alkatrészt kifejezetten smart car témában:
UNO/Mega kompatibilis cuccok:
TB6612 Mosfet Stepper Motor PCA9685 Standard IIC I2C PWM Servo Driver Shield V2 For Arduino Robot PWM Mega R3 Replace L293D
[link]
Én ilyet használok a mega boarddal, de akkor még nem volt ennyire drágaElőnye, hogy van rajta egy kisebb proto pcb, ahová fel lehet forrasztani kisebb dolgokat, kijelzőt, LED-eket.
2Pcs 1:120 electric TT Motor Durable Dual Shaft DC 3V ~ 9V DC Geared Motor for Robot Toys Smart Car Replace DIY Kit
[link]
Ahogy írtam, egy vonalkövető robothoz jobb a lassú motor, mert hiába lehet PWM-mel szabályozni, de bizonyos kitöltés alatt nem mozdul meg, csak zúg.Optokapu az encoderhez (a kerék sebességét lehet vele mérni):
[link]Reflektív opto, ütközés/közelségérzékeléshez:
[link]Vonalkövetéshez nem kifejezetten alkalmas, oda színes LED + fototranzisztor kell, ilyet készen most nem találtam, az enyémen sincs amúgy, de lenne rá igény
I2c RGB szenzort találtam, de a vonalkövetéshez legjobb 3-5 szenzort egymás mellé tenni, a vonal vastagságától függő távolságban. Ezt egyszerűbb és olcsóbb otthon legyártani.Bluetooth modul:
[link]
A HC06 csak vevő, telefonnal lehet párosítani, a HC05 az master-ként is tud működni, saját távirányítót lehet belőle építeni.D1 mini/ESP kompatibilis cuccok:
360 fokos szervó
[link]A hangsúly a 360fok / folyamatosan körbe forgó (continuous) tulajdonságon van, ezek át vannak alakítva, hogy ne csak oda-vissza tudjon forogni, hanem folyamatosan is. Nem kell hozzá driver, a fentihez még kereket is adnak.
D1 mini motor shield
[link]
Ha mégis DC motort szeretnél használni (janos250 linkelt egy kis méretű motort, ami jó hozzá).Ha majd még eszembe jut valami, megírom.
-
válasz
Janos250 #19298 üzenetére
Asszem pont a felső volt az alap az enyémhez is.
A hozzá adott két motor nem az igazi, túl kicsi az 1:48 áttétel. 1:120 áttételes motorokra kellett cserélnem, mert túl gyors volt a mozgás, nem lehetett finoman irányítani.
Nem adtak résoptót se az encoderhez, külön kellett rendelnem hozzá. -
-
válasz
Janos250 #19291 üzenetére
A smart car link nekem nem működik!
Igen, jumper kábel és breadboard mindenképp kell a teszteléshez, vannak kisebb méretű, beépíthető breadboard-ok is, amit a kocsira lehet rögzíteni és azon dugdosni a szenzorokat forrasztás nélkül.
A legtöbb alkatrész, amit írtál, kísérletezéshez jó, smart car-hoz annyira nem kellenek 😄
-
Ha van D1 mini, azzal is el lehet indulni, sőt, kimondottan pici, akár tenyérnyi "autót" lehet építeni belőle, csak hasonlóan pici motorok kellenek hozzá. Az egyszerű DC motorok helyett lehet például 360 fokos szervó motorokat is használni, ha kimondottan a méret a lényeg! Előnye, hogy a driver és az áttétel is már bele van építve, ráadásul jól szerelhető. Hátránya, hogy kicsit nehezebben irányítható, rá kell érezni.
-
válasz
Wolfram #19276 üzenetére
Én szögegyszerű törhető/vágható, egy soros IC foglalatot (0.1" tűsor/hüvelysor), ha kell, forrótakonnyal körbenyomva, hogy ne törjenek el a forrasztások a használat során. Nem szép, de legalább
csúnyamegbízhatóan működik.Ki szoktam hagyni egy pint valahol, hogy egyértelmű legyen, milyen irányból kell bedugni (poka-yoke).
-
Először is azt kéne eldönteni, hogy milyen lap köré épüljön az egész!
5V TTL jelszinttel dolgozó lapok:
- Arduino UNO: nagy, és elavultnak mondható, mégis kezdésnek talán a legjobb, mert a világ összes neten található példakódja tulajdonképpen erre íródott vagy kompatibilis vele, és nagyon sok shield kapható hozzá, ami egy forrasztás nélkül a boardra dugható másik alaplapot jelent. Ezenkívül igénytelen és kb. elpusztíthatatlan.
A neten készen kapható szenzorok nagy része kompatibilis vele.
- Arduino Mega 2560: még nagyobb, hasonlóan "elavult" lap (ár/érték arányban), de a fenti board minden jó tulajdonságával: az UNO shield-ek ugyanúgy rádughatók, viszont sokkal több GPIO van rajta, több memóriát tartalmaz, és több hardveres extrát tud (több PWM láb, timer, soros port stb). Az én robot autóm e köré épül. Egyébként az összes 8 bites 3D nyomtatót, CNC gépet stb. erre a lapra szokták építeni, sztenderdnek mondható sokoldalú lap.
- Mega2560 mini / 2560 Mega Mini Pro: ugyanaz, mint az előbbi, csak forrasztgatni kell, mert a shield-ek már nem kompatibilisek vele (fizikailag, műszakilag igen!). Ez akkor jöhet jól, ha kis méretű robotot szeretnél építeni.
3,3V jelszinttel dolgozó lapok:
- ESP32 (ebből már több generáció van: wroom, s1, s2, s3): modern, az egyik legjobb és legolcsóbb lap, de más CPU köré épül. A neten szintén nagyon sok példakód található hozzá, és a legtöbb UNO-ra írott kód is fut rajta, módosításokkal (külön ehhez íródott library-kre lesz szükség). Beépítve tartalmaz Wifi-t és Bluetooth-t!
- STM32 Bluepill: ARM alapú, gyors és sokoldalú board, talán a legkomolyabb tudásban az összes felsorolt lap közül. Sajnos én nem kerültem eddig kapcsolatba vele, úgyhogy nem tudok róla írni (hülyeséget meg nem akarok
).
Hogy miért fontos, milyen jelszinttel dolgoznak ezek a lapok? Mert a szenzorokat/drivereket/tápot ehhez kell megválasztani. Itt kezd bonyolódni a dolog.
A processzorok köztudottan füsttel működnek. A nem összeillő jelszinteket illeszteni kell egymáshoz, különben valamelyikből kijön a füst, és nem működik tovább. -
Még egyszer mondom:
- nem fog megállni ennyiből, ha komolyan csinálod
- komolyan fogod csinálni, mert függőséget okozHolnap vagy a hétvégén, ha lesz időm, összeszedem neked az ajánlott alkatrészeket!
Nincs olyan, ahol az első kereket lehet kormányozni?
Megoldható, csak minden szempontból nehezebb vele bánni, építeni is és programozni is. Ha 4 kerék, akkor úgy szokták inkább, hogy 2-2 oldalsó kerék egyszerre van hajtva, mintha lánctalpas lenne. A kormányzott kerék külön mechanikát igényel, hogy a két kerék egyszerre forduljon.
-
válasz
User_2 #19266 üzenetére
Vannak erre kifejezetten Arduino UNO alapkészletek, amiben össze vannak szedve amiket leírtál, ledek, potik, hőmérséklet meg egyéb szenzorok, kijelzők minden féle fajta stb. Ezeket kényelmes egyben megvenni, főleg amíg az ember nem ért hozzá, szoktak lenni hozzá kísérletek/kapcsolások, amivel el lehet indulni, de ha valaki már tudja, mit keressen, nyilván olcsóbb külön megvenni mindent.
-
válasz
Cyborg #19265 üzenetére
Nézd, én azért kezdtem el Arduino-zni, mert a LEGO mindstorms robotot túl drágának találtam. Most ott tartok, hogy egy mindstorms készlet árát kb 3x kifizettem már az alkatrészekre
Egy jó tanács: vegyetek LEGO robotot, mert hosszútávon olcsóbb, és sokkal előbb lesz vele sikerélmény.
Egyébként van ilyenem is, sokkal többet tud, mint a LEGO és scratch-ben lehet programozni, de a gyerekeimet sajnos nem érdekli sem ez, sem az Arduino, úgyhogy eladó, ha esetleg érdekel valakit...Ha ezek után még érdekel valakit, az AliExpress-ről összekeresek minden alkatrészt, amire szükség lehet. Ha van pénz lóvéra, esetleg érdemes lehet egy lánctalpas alap készletet venni, a kerekesekkel nehéz boldogulni, mert 4 kerék nem igazán tud fordulni, 2+bolygókerékkel szokták ezeket megoldani, de a lánctalpas jobban is néz ki és nem annyira érzékeny a terepre/koszra. Ezek viszont elég drágák tudnak lenni.
-
-
Nem kapott 5V-ot a chip a 3,3V táp lábára valamilyen rövidzárlaton vagy ellenálláson keresztül? Nem kapott 6V-nál többet valamelyik pin felől? Az GPIO-k 6V-ig toleránsak, afelett megfőzi a flash chipet a boardon.
Ha ki tudod mérni, nézd meg, hogy megvan-e a 3,3V táp a megfelelő pin-en (működik-e az onboard regulátor)? -
A SELECT-et 1024-600 értékre módosítva
Dehát így nincs olyan állapot, amikor azt érzékeli, hogy fel van engedve minden gomb! 800 fölött elvileg azt kellene érzékelni, hogy semmi sincs benyomva. Vagy ha nem 800, akkor mérd végig az összes gombhoz tartozó értéket, ha jól raktad össze, kell lenni egy jól megkülönböztethető nyugalmi értéknek.
-
válasz
tibi-d #19213 üzenetére
Talán megvan.
A kiértékelés részt (if (NumString.length()...
) előre tenném, és returnnel lépnék ki belőle, ugyanis a számbevitel rész most nem tartalmaz vizsgálatot az idő lejártára vonatkozólag, időn túl is elfogad még egy billentyű leütést.
Szerintem így a várt módon fog működni:void Numpad() {
int I;
float F;
if (NumString.length() > 0 && (millis() - KeyTimer) > 2000) {
I = NumString.toInt();
NumInteger = I * Inv;
F = NumString.toFloat();
NumFloat = F * Flo;
NumString = "";
Inv = 1;
Flo = 1.0;
return;
}
//Billentyű leütésre várás
key = keypad.getKey();
//Leütött billentyű kiértékelése
if (key) {
KeyTimer = millis();
if (key == '#' && Inv == 1) {
Inv = -1;
Flo = -1.0;
}
if (key >= '0' && key <= '9' || key == '.') {
NumString += key;
}
}
} -
válasz
tibi-d #19211 üzenetére
Hát a kód ismerete nélkül erre esélytelen válaszolni
Talán nincs pergésmentesítve a bemenet.
Nem tudom mit kezdesz a bevitt számokkal, én az A B stb gombokat kineveztem + - műveletnek, nem időre megy a bevitel, hanem addig, amíg meg nem nyomom az egyiket. A C a törlés, nyilván -
Ha jól értem kimérted a gombokat és módosítottad a kódot az értékeknek megfelelően.
akkor nincs lenyomva az a gomb, valahol 400 és 600 közötti értéket mutat az A0.
Ez nem jó, akkor valami nincs jól bekötve. Gombnyomás nélkül a select gomb értéke fölötti értéket kellene mutatnia.
Hogy vannak bekötve a gombok? -
válasz
#68216320 #19199 üzenetére
Így van.
A nyákon lehet látni, hogy az sda/scl sávja mindig egy ellenálláshoz fut először. Az ellenállás másik vége meg a tápra (5V/3,3V).
A belső felhúzó 10k-30k közti érték, éppen meg lehet próbálni, ha csak 1-2 cm lesz a vezérlő és a szenzor közt, de nem tudom, hogy a wire library nem kapcsolja-e le mikor elkezd forgalmazni. Sebességproblémák is lehetnek miatta.
-
válasz
ViZion #19195 üzenetére
Pull-up azért kell, hogy a digitális 0-1 ne legyen "bizonytalan"
Általában igen, I2C-nél viszont azért kell a felhúzó ellenállás, mert a vonalak mindkét vége open collector-os, a master és a slave is, felhúzó ellenállás nélkül nem működik a busz mert mindig alacsony szinten lenne.
És azért 4,7k, mert az I2C szabványban ez az érték szerepel hivatalosan.Ettől magasabb érték sebesség problémát okoz, alacsonyabb pedig túlzott energiafogyasztást/melegedést/nagy vörös lángoszlopokat.
-
válasz
Wolfram #19187 üzenetére
2db 4,7kΩ, egyik az SDA és a 3V, másik az SCL és a 3V közé. De ezt ne csináld, ha már van az 5V felé, bár lángoszlopok nem lesznek, az álmoskönyv szerint nem jelent jót két tápfesz összekötése
A két eszköz párhuzamos bekötésétől a következő eredmény várható:
1. normál esetben, ha minden jól működik, mindkét eszköz látható az i2c scanner számára
2. ha az RTC chip döglött, vagy zárlat van rajta, az oled nem lesz látható a buszon, mert megakadályozza a kommunikációt
3. ha az RTC busz nincs felhúzva tápra, az oled-del párhuzamosan kötve működni kezdNem ártana multimétert beszerezni, mert valamivel ki kellene mérni a buszt
-
válasz
Wolfram #19184 üzenetére
Rá tudod kötni mindkettőt egyszerre? Kíváncsi lennék, hogy akkor látná-e az oledet! Illetve csak jó lenne egy multimétert szerezni és kimérni vele az adatlábakat, hogy az 5V-ra vagy a 3V-ra vannak húzva (vagy sehova?), nehogy az oled tönkremenjen.
Ha máshogy nem, szemmel lekövetni, hogy az sda meg scl lábaktól a vezetősáv egy ellenálláshoz visz (az látszik a fotón is), de az ellenállás másik vége melyik tápfeszre van vajon kötve?
-
válasz
Ton-ton #19138 üzenetére
Milyen motor, mekkora áramfelvétele van és milyen tápról (hány volt) menne? 2 méter nem nagy távolság, igazából egyik megoldásnál sem okozhat problémát, de ha nagy áramokról van szó, akkor esetleg túl vastag vezetékekre lenne szükséged a driver és a motor közt. Szerintem amelyik végéről egyszerűbb a tápot adni, oda tedd a drivert, hogy ne kelljen annyi vezeték.
-
válasz
vargalex #19107 üzenetére
Sajnos az enyémre nincs openwrt, de amúgy a kérdés csak elméleti, egyelőre nincs ilyen igény, hogy domainnevet adjak az eszközöknek mert annyi van belőlük
Külső publikus DNS szolgáltató nemigen tudná ezt megoldani, hiszen belső hálózatról van szó, belső, nem publikus ip címekkel.
Az Asus egyébként ad a routereihez dyndns szolgáltatást (*.asuscomm.com), használom is, kívülről ez alá lehetne aldomain szinten pakolni az eszközöket, ha lenne ilyen lehetőség, de amúgy sem engedek ki semmit közvetlenül a netre, saját vpn szerveren szoktam kívülről belépni az otthoni hálózatba, onnantól pedig már a belső ip címek játszanak. -
válasz
ViZion #19113 üzenetére
Igen, a telefon beállítások/Kapcsolatok/Egyéb kapcsolat beállítások/Privát DNS
+ Chrome böngésző beállításokban is van lehetőség saját DNS-t megadni.
Ha ezek közül valahol meg van adva más, mint a routerben megadott DNS szerver, azt fogja használni.Nekem a routerben és a telefonon is az AdGuard adblocker van megadva (dns.adguard.com), így nem csak otthon, hanem mobilneten is nyugtom van a legtöbb reklámtól (sajnos a videók előtti reklámokat van szűri, de így is nagy szolgálatot tesz).
Azt most hallom először, hogy a cloudflare DNS is tud reklámszűrést, melyik a jobb, ez, vagy az AdGuard?
-
válasz
Janos250 #19099 üzenetére
Épp most bonyolítod.
Legutóbb a Te kódodból indultam ki, mivel van egy laza 20 év full stack webfejlesztő tapasztalat mögöttem, ez a felépítés hasonlított legjobban egy klasszikus PHP szerver oldali programhoz.
Arra amit írtál, van kész megoldás, a kliens által küldött változókat aserver.arg("valtozo_neve")
egyszerűbben visszaadja, mint hogy a header parse-olásával kellene bajlódni.
Ez ugye megfelel a PHP_GET['valtozo_neve']
változójának.
Új hozzászólás Aktív témák
Hirdetés
- Törött, Hibás iPhone felvásárlás!!
- Bomba ár! Lenovo X1 Yoga 3rd - i5-8GEN I 8GB I 256GB SSD I 14" FHD Touch I W11 I CAM I Garancia!
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- Huawei P20 Lite 64GB, Kártyafüggetlen, 1 Év Garanciával
- ÚJ HP EliteBook 840 G8 - 14"FHD IPS - i5-1145G7 - 32GB - 512GB SSD - Win10 - 6 hónap Garancia
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged