- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Google Pixel topik
- Poco X5 Pro - ránézésre jó
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Beárazták az projektoros Ulefone-t
- iPhone topik
- Samsung Galaxy A56 - megbízható középszerűség
- eSIM, a kártyamentes szabadság
- Milyen okostelefont vegyek?
- Apple Watch Sport - ez is csak egy okosóra
-
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
-
_q
addikt
válasz
Tankblock #15829 üzenetére
Ez egy aliexpresses amiről szó volt, amit még Janos250 linkelt régen. Nem pont ez, de hasonló: [link] Ez a kód amúgy: [link] Most nézem, hogy nekem is bent maradt egy Serial konfig, ami felesleges. Deepsleep simán csak a gyári arduinos függvénnyel van megoldva.
Igazad van, a kapacitásra nem is gondoltam. Szintén aliról rendeltem 3400mAh aksit, ami nem panasonicnak volt hirdetve, gyakori a "noname", de közben szerencsére valós kapacitású aksi. Eddig mindig sikerült ilyet rendelnem a visszjelzéseket erősen figyelembe véve. Szóval valószínű valami pana féle amit rendeltem, amúgy teszteltem és tényleg tudja a 3200-3400mAh kapacitást.
Jó ötlet az ULP, jobban utána kellene járni, de talán egyszer ezt is kipróbálom köszi az ötletet.
-
Janos250
őstag
válasz
Tankblock #15687 üzenetére
Igazad van, visszanéztem, tényleg csak C-t írt a srác. Én - lévén Arduino topic - automatikusan C++ -t gondoltam. Bár sose tudom, hogy az UNO, Mega, stb hol tart a C++ verziókban. Az ESP32-re tudom, hogy az a 2011-nél. Ha valaki tudja, leírhatná, hogy okosabb legyek! :-)
-
Tomika86
senior tag
válasz
Tankblock #15680 üzenetére
Szia!
Az igazából nem fontos, ha ezeket megtudom oldani az elég:
const byte PulsesPerRevolution = 2;
const unsigned long ZeroTimeout = 100000;Itt csak ez miatt vagyok gondban, hogy itt is szerepel, vagy ez nem gond?
volatile unsigned long PeriodBetweenPulses = ZeroTimeout+1000;
Köszönöm a segítségeket!
-
válasz
Tankblock #15542 üzenetére
Igen, ez lenne a legjobb és legpontosabb megoldás, de csak nagyobb fordulatszám tartományban, például 500-8000 közt. És mondjuk az utolsó 3 mérés átlagát kéne kijelezni, így simább lenne a mutató mozgása.
Kisebb fordulatszám esetén nem lenne túl pontos, nem ártana tudni a mérési tartományt. -
válasz
Tankblock #15451 üzenetére
Igen, azt tudom, de nekem a gyári 16MHz-es kiépítésben is elment.
Persze nyilván kritikus feladatokat nem bíznék így rá, de vonalkövetésre és más hasonló komoly feladatokra így is lehet használni.
És a hobbisták is gyári UNO lapokat üzemeltettek 2db AA elemről. Vagy 3db-ról? Hmm... 🤔 Talán rosszul emlékszem. Mindegy, végülis az is 5V alatti tápfesz, lemerült elemmel pedig 3V közelébe kerül.
De az Attiny-k kisebb órajellel határozottan elmennek egész alacsony tápfeszről, ez biztos. -
Janos250
őstag
-
Janos250
őstag
válasz
Tankblock #14937 üzenetére
Köszi!
A jelen problémát megoldottam a korábbi segítségetekkel, így felfogtam (nagyjából) a neten leírtakkal kiegészítve.
A programot majd átbogarászom, vannak benne érdekesnek tűnő részek.
A linken is vannak érdekes dolgok
Azt még nem tudom, hogy egy táblázatban:<td style="width: 20 ;background-color:red" >
annak a 20-nak hogyan adok ID-t, ott benn a mindenség közepén,
de ez most nem is sürgős, de majd ha ráérsz, a későbbiek miatt erre még kénék tanácsot.
Köszi! -
Janos250
őstag
válasz
Tankblock #14900 üzenetére
A WEB lap szerkezete is változik a beérkezett válasz szerint.
Mondhatnám, hogy másik lapot kell küldeni egy bizonyos érték alatt/felett.
Vagy egy egyszerűbbik:<tr>
<td style="width: 40%;background-color:red" > </td>
<td style="width: 60%" > </td>
</tr>
Itt a 40 a 14863-ban szereplő value érték, a 60 pedig a 100-value.
Hiába mondod nekem, hogy oldjam meg javascipttel, ha egyszer nem tudom. Szájbarágósan, mint a hülyegyereknek: konkrétan milyen javascript utasítást írjak hova, hogy ez változzon a lap újratöltése nélkül?A socket dolgot nem értem: ha összekészítem a socket csomagot, mit kell beletennem, hogy:
- elküldve, a böngésző ezt fogadja is anélkül, hogy kérte volna
- és csak az adott részt változtassa meg
Mindezt úgy, hogy a böngésző nem kéri az adatot. -
Dißnäëß
nagyúr
válasz
Tankblock #14900 üzenetére
Sziasztok, bocsánat az off-ért, hátha mégsem az teljesen.. kezdő fejlesztést tanulóként felkaptam a fejem a websocket-ekre, mert most indul nálam is pont ez a tananyag: konyhanyelven elmondva, mi ez ? TCP/UDP alapú valami ? Vagy http/https-en történő kommunikáció ? Szinkron, aszinkron ? Bocs, ha nagyonhülye kérdések, ha valaki el tudná mondani, hálás lennék. Node.JS-ben és python-ban jövöget most szembe velem vagy 2 napja.
-
-
kesztió
aktív tag
válasz
Tankblock #14592 üzenetére
Azért kérdezz meg egy villanyszerelőt, hogy mit szeret jobban behúzni a falba: tizenvalahány helyre UTP kábelt vagy helyettük tizenvalahány helyre 1,5 mm²-es érpárt.
És a Raspberry-t akkor hova tenném? A termosztátba vagy szervernek? Nem értem.
Valóban faszább lenne, ha a termosztátot lehetne 230V-ról üzemeltetni, de nem találtam olyan lehetőséget eddig, hogy 230V AC → 3.3V DC és elhanyagolható legyen a hőtermelése (90%+ harásfok). -
dew28
aktív tag
válasz
Tankblock #14592 üzenetére
65mm a kotodoboz. ebbe egyreszt egy rpi nem fer be, masreszt egy rj45 csati sem fer el benne a (dobozmelyseg minusz eszkozmelyseg) miatt. harmadreszt ami poe-bol csinal neked 3.3v-ot az ugynugy hot termel. nem is kicsit. (ok, lehet passziv tapfelados 3.3v betappal, de akkor meg mi ertelme?
)
-
kesztió
aktív tag
válasz
Tankblock #14534 üzenetére
300+ nm betonházban felejtsd el a Wifis megoldást, ha saját a ház.
Ez a vonat már sajnos elment. Nemhogy lejárt a villanyszerelés, de a festés is megvolt mindenhol. Csak a táp, valamint a relé két kábele vannak a termosztátok falidobozaiban.
Nem beszélve arról, hogy ha már ennyi kínlódtam vele, lehet, hogy ipari termék is lesz belőle valaha, és egy UTP kábeles termosztátot a kutya se fog megvenni, mert nagyon keveseknek van meg hozzá a falban a hálózat.
-
Janos250
őstag
válasz
Tankblock #14300 üzenetére
Köszi, "int16_t"-nél maradok, mert spéci esetben hosszabb is lehet.
Adott esetben elég, mert a bejövő csomag első sora tartalmazza a paramétert, ami mindig egy kérdőjellel kezdődik, így csak arra keresek rá, és aztán nézem meg a paraméter(ek) nevét, és értékét.
Persze ha a lökött user nem a gombokat nyomogatja, hanem begépel valami általa kigondolt URL-t, akkor túlszalad.Közben rájöttem, hogy nem irigylem a foglalkozásszerűen WEB programozást végzőket. Csináltam egy csúszkát (slider) egy beállításra az ESP32-n. Ahány böngésző, annyiféle kinézet az eredmény.
Korábban egy "Incitatus level"beállítást használtam, ami egy egysoros táblázat, és az értéket az egyik színű oszlop hosszúsága mutatja, és -1,-10,+10,+1 -el lehetett változtatni. Primitív, de minden böngészőben egyformán jelenik meg.
-
Janos250
őstag
válasz
Tankblock #14296 üzenetére
Hogy így ketten is rákérdeztetek, írni akartam egy valós egy példát, tényleges eredménnyel. Valamit elszúrhattam korábban, mert most működik, jó indexet ad vissza.
Természetesen így próbáltam:string header ;
.
.
.
int8_t indexOf ;
indexOf = header.find("heat") ;
Most visszaadja JÓL az indexet.
Így a kérdésekkel sokat segítettek nekem, köszi!
Az rejtély, hogy mit csinálhattam rosszul, de most már mindegy is
Így már könnyebb lesz a feldolgozás, mintha a String osztálynál maradtam volna. -
Janos250
őstag
válasz
Tankblock #14254 üzenetére
Köszi.
A websocket nekem egy ismeretlen terület, de ahogy látom van hozzá infó a neten. Belenéztem a forráskódjába, és - úgy látom - ugyanarra a Client osztályra épül, amit én gyalog módszerrel használok. Mindenesetre kipróbálom. ESP8266-on nem volt problémám, legalábbis nem vettem észre. Az úgy tűnik, ment rendesen, nem akadt ki.
Az ESP8266WEBserver-t használtam, az kényelmes, és kedveltem. Régebben az ESP32-n is ment, de mostanában nem bírtam működőképes állapotba hozni, ezért mentem le az alapokhoz, mert a többi WEB szerverrel is csak kevés megnyitást lehetett csinálni, utána kiakadt.
Korábban csináltam egy "echo" szervert ESP32-re ugyanígy az alapokra építve (netről az alapjai) és tökéletesnek tűnt a működése.
Be lehetett rá akárhányan egyszerre jelentkezni valamiféle put teletype programmal (putty), vagy telnettel, és ha valaki bármilyen karaktert küldött, azt egyből elküldte mindenkinek. Ez jól működött ebből gondoltam, hogy menni fog. Valahogy a http (html) protokollt kellene ügyesebben kezelni, hogy ne minden alkalommal szakítson meg.
Egyébként azt láttam, hogy valamicskét javít a helyzeten, ha se a String (nagybetűs, azaz spéci Arduino), se a string (kisbetűs, azaz szabvány C++) osztály példányaira nem használom a c+="akármi" gyűjtögetést. Úgy gondolom, hogy utólag azokat a szanaszéjjel tárolt darabjait nem tudja rendesen felszabadítani, vagy legalábbis elaprózott lesz a felszabadított terület.
Ezt az irodalomból vett programot próbáltam használni, de valamiért nem sikerült. Rákerestem a hibajelzésre, és mindenütt csak a megválaszolatlan kérdést találtam, vagy legfeljebb annyi választ, hogy ez nem megoldott. Nem a net kezelésében lehet a hiba, hanem valahogy a heap kezelésben, csak itt jön elő látványosan, és csak akkor tapasztalom emberi mennyiségű (100 alatti) elérésnél, ha nagy a program. Kis programmal 180-ig próbáltam, addig nem jött elő hiba. Akkor meguntam, és nem folytattam.WiFiClient client = server.available(); // Listen for incoming clients
if (client) {
string currentLine = ""; // make a String to hold incoming data from the client
string header = "";
while (client.connected()) { // loop while the client's connected
if (client.available()) { // if there's bytes to read from the client,
char c = client.read(); // read a byte, then
header += c;
if (c == '\n') { // if the byte is a newline character
// if the current line is blank, you got two newline characters in a row.
// that's the end of the client HTTP request, so send a response:
if (currentLine.length() == 0) {
// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
// and a content-type so the client knows what's coming, then a blank line:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE html><html>"); // Display the HTML web page
stb.
client.println("</body></html>");
client.println(); // The HTTP response ends with another blank line
client.stop();
-
válasz
Tankblock #14227 üzenetére
Úgy emlékszem, hogy ami a kezembe került, azon volt, de most már nem vagyok benne biztos. Valószínűleg igazad van, és csak az UNO-t védi polyfuse, a nano-t nem, vagyis a méret oltárán fel lett áldozva a biztonság.
Egy érvvel több, hogy miért UNO board-on tanuljunk és kísérletezzünk.
-
válasz
Tankblock #14210 üzenetére
A nano-n is van polyfuse, ha jól tudom, az megvédi a portot meg a schottky-t is. Két pici sg90 szervóval terhelés nélkül amúgy simán elbír a lap is, usb-ről, tehát üresjáratban, ha csak teszelgeti, lassú mozgás, pici terheléssel, de ha terhelést kap, hirtelen nagy szöget kell mozdulni, vagy megakad (stall), akkor már brownout lesz, leold a polyfuse. Tapasztalat, legalábbis UNO boarddal.
-
-
kesztió
aktív tag
válasz
Tankblock #14032 üzenetére
UPDATE: Az azért nem teljesen igaz, hogy érzékelhetetlen a 3 mm-es plexin keresztüli érintés, csak meg kellett növelni maximumra a mérési időt. Ez 8,19 ms, ami még mindig úri, azaz egy teljes ciklus belefér 20 ms-ba (50 Hz).
De még így is 841 vs. 858 a számlálóérték, ami finoman szólva a megbízhatóság határán billeg. A CAP1203 még mindig játszik, naná, csak érkezzen meg, hogy tudjam egy kicsit próbálgatni. -
CHIPman
nagyúr
válasz
Tankblock #14033 üzenetére
A WLED WiFi AP-t csinál az ESP-ből első alkalommal, és alkalmazással lehet kommunikálni vele, ezek működnek gond nélkül, tehát a flasheléssel valószínűleg nincs gond. Meg tudom változtatni a színt és a fényerőt, illetve alapból sem fehér maxon kapcsol be, de tökmindegy mire állítom, semmi nem történik. Nem ezekkel van a gond, valami más lesz.
-
EvilNside
csendes tag
válasz
Tankblock #13753 üzenetére
Lehet, hogy ez kicsit gáz, de nincsenek jól definiált elvárásaim, inkább csak ötletelni akartam, hogy milyen úton módon lehet megközelíteni egy ilyen problémát. Felmerült bennem, hogy a macskánk nyakába lehetne egy gps trackert kötni (nem nyomvonalat rögzíteni, csak a pillanatnyi pozit lekérdezni), ami csak rövid távon működik, mondjuk wifi/433/bt/loran küldené a koordinátákat, de mivel nem akarom óránként tölteni, jó lenne, ha keveset fogyasztana, mikor nem érdekel a holléte. (Érzésem szerint ez a terv több sebből vérzik, kezdve az én képességeimmel..) Mondjuk mivel nem kritikus, hogy azonnal jöjjön az infó, lehetne hogy a lekérdezést addig ismételgetem, amig bele nem találok egy olyan ablakba, amikor éppen aktív a vevő.
-
tonermagus
aktív tag
válasz
Tankblock #13558 üzenetére
Juj, tényleg...
Array[1]-el nem az Array[0] és az Array[1]-es elemet hozom létre, hanem csak Array[0]-át
Köszi szépen!
Viszont sokszor még most is felcserélve küldi a koordinátákat. Bár ez megoldható úgy, hogy megnézem melyik a nagyobb szám az lesz a latitudeLegalábbis Magyarországon és a környező országokban
-
tonermagus
aktív tag
válasz
Tankblock #13552 üzenetére
Nagyon szépen köszönöm!
A sör tényleg kijárHa adsz egy címet akkor a belgasörmestertől küldök is
Már csak azért is, mert nem vágom pontosan hogy gondoltad. Nem vagyok profi programozó
De így csináltam:
Deklarációs részbe még a setup elé betettem ezt:NeoGPS::Location_t base (gpsadat,gpsadat1);
// amit Nrf-en kapunkNeoGPS::Location_t rover (lan,lon);
// amit helyileg nyer ki a NEO 8M
A loopba pedig:float range = rover.DistanceKm(base);
Így gondoltad? -
Yodafon
őstag
válasz
Tankblock #13547 üzenetére
Ez se tud akkor bluetooth-t?
https://store.arduino.cc/arduino-nano-33-ble-senseA célom
az hogy jó legyek, hű társak oldalánegy arcfelismerő ami kamera alapján megnézi hogy nyitott vagy csukott a szeme az illetőnek és az alapján kapcsol egy lámpát.
A linkelt hivatalos cucc pont jó lenne mert
1. kicsi
2. van benne BLE
3. van hozzá TinyML machine learning okosság
Miért nem ajánlott a Bluetooth Arduino-ra?
Wi-Fi-t nem preferálom mert kis fogyasztás lenne a cél + ágyúval verébre effektus lenne -
tonermagus
aktív tag
válasz
Tankblock #13522 üzenetére
Teljesen megfelelt. Köszönöm szépen a válaszod!
Más: szeretnék összehozni egy GPS-es távolságmérőt. Ha jól emlékszem Janos250 ennek a nagy tudója...
A tervem az lenne, hogy lenne egy Fix pont, ami gyakorlatilag egy állvány lenne amin egy Arduino + NEO-6M + NRF24L01+PA+LNA kombó lenne. Illetve lenne egy mozgó tárgy, amin szintén az előbbi Arduino + NEO-6M + NRF24L01+PA+LNA kombó lenne. A fix pont beolvassa a GPS koordinátát, azt Nrf24-en továbbküldi a mozgó tárgyhoz, a mozgó tárgy szintén lekéri a saját GPS koordinátáját, majd fogja a két koordinátát és a megfelelő függvénnyel kiszámolja a kettő közötti távolságot és megjeleníti azt egy kijelzőn. Ez lenne az elképzelés
Lehetőleg szeretném elérni az 1-2m-es vagy jobb pontosságot.
Viszont megfogalmazódott bennem pár kérdés:
- Melyik modul a legjobb erre a célra? Neo-6m, Neo-8m? Esetleg egy komolyabb, mint pl. ZED-f9p. Ez borzasztó drága lenne, kérdés hogy Neo-6m-el elérhető-e a kívánt pontosság.- A fix pontot azért terveztem bele, mert bízom benne hogy a két GPS ami relatív közel van egymáshoz (max. 200-300m-re egymástól) ha téved is akkor azt egy irányba teszi. Így ha azt használom origónak akkor talán nő a pontosság. Vagy tévedek? Van egyáltalán haszna ennek a fix pontnak?
- Egy Arduino Mega képes arra, hogy megfelelő sebességgel olvassa be a GPS koordinátát és ezután Nrf24-en kiküldje? Vagy lassú lesz? Illetve a kérdésem a másik oldalon is él? Elbírja a Mega hogy fogadja a másik pont GPS koordinátáját, lekéri a sajátját és kiszámolja a távolságot és kiírja egy kijelzőre? Vagy érdemes betenni arra az oldalra egy másik Ardu-t ami végezné a számítást és a kiírást és a két ardu serialon küldené egymásnak az adatot?
- Ezeknek az NRF24L01+PA+LNA-nak mekkora a valóságban a hatótávja? Próbálta már valaki? 1km elvileg a gyári adat, akkor gondolom 500m-et simán bírnia kellene
Bocsi a sok kérdésért
-
tonermagus
aktív tag
válasz
Tankblock #13519 üzenetére
Csak hogy értsem is mit miért csinálok: miért van szükség arra a diódára/ellenállásra?
Azt írja, hogy ha csak 1 szenzort használok (mint pl. esetemben az arduino) akkor a diódát lecserélhetem egy 1.2K-s ellenállásra amit a Serial2 TX portjára kell tennem. Ha kihagyom a diódát/ellenállást mi történik? Ha csak a TX-et dugom be nem kellene működnie?
You need to include a diode (such as 1N4148) between the Arduino TX pin and the wire between the iBUS pin and the Arduino RX pin (cathode/solid ring of diode connected at Arduino TX pin) to handle the half-duplex protocol over the single iBUS wire. See example wiring below. If you only have one sensor connected to the iBUS (i.e. only the Arduino board) you can replace the diode with a resistor of 1.2k Ohm. -
tonermagus
aktív tag
válasz
Tankblock #13510 üzenetére
Elméletileg mindent jól csináltam... Egy dolgot kivéve amit most vettem észre:
IBusSensor.begin(Serial2);
helyettIBus.begin(Serial2)
-t használtam
Nagyon remélem hogy ez lesz a hiba. Ahol csak szervóvezérlés van ott az Ibus.begin(Serial1)-t használja. Ahol már vegyes (szervó+szenzor) ottIBusServo.begin(Serial1);
ésIBusSensor.begin(Serial2)
-t használ.
Egyébként Te használtál már ilyet? Így megfelelően összerakva a távirányítón látnom kellene 2 újabb szenzort ami az Arduino által küldött növekvő sebesség és hőmérséklet változó értékeit jelenítené meg? -
Gergosz2
veterán
válasz
Tankblock #13418 üzenetére
Local GITnek nem sok értelmét látom, mert oké hogy valamilyen szinten verziót követsz, de a remote nyújtotta lehetőségeket pedig nagyon szépen bukod. Nem is kell beszélni róla hogy ez a távoli, más gépen lévő backup, másrészt remote/masterben rendszerint a tényleg forduló verziót szoktuk tartani, localban meg a kismillió branchen lehet fejleszteni amit kell. Jómagam egy rasberry pin hostolom a saját GIT szerveren, egy minőségi SD kártyát használva. Igen, sajnos ugye az utóbbi sem triviális, volt vele tapasztalat (szivás) anno.
-
gyapo11
őstag
válasz
Tankblock #13412 üzenetére
Igen, volt már rá példa. Inkább az a kérdés, hogy észreveszem-e ha meghal a hdd, igen, és mekkora a valószínűsége annak, hogy a munka hdd és a mentésre használt hdd egyszerre hal meg. Ez nagyon kicsi esély, mindig van időm az egyik meghalt wincsit cserélni, és a másikról a mentést újra létrehozni. Bár mostanában már olyan gyorsak a flash-ek is, hogy akár pendrive, akár microsd kártya is megfelel a lokális mentésre. Sokkal egyszerűbb és gyorsabb, mint felhőbe szinkronizálni. Ha programot írok, akkor én akár percenként is mentek egyet, általában sorszámmal megkülönböztetve a mentéseket, aztán addig megyek vissza ameddig akarok, mind ott van. Egy 32 GB-os drive-ra 32 millió db 1 kB-os program változat fölfér.
A githubot nem használom, egyszer néztem valami verziókövető programot lokális változatban, az nem tűnt túl egyszerűnek, nyilván időt kell rá szánni és megtanulni. De nekem jól bevált a helyben mentés sorszámmal. -
gyapo11
őstag
válasz
Tankblock #13398 üzenetére
Milyen régóta kesergek én ezen a pc-vel kapcsolatban. Hello world program 1 MB meg ilyenek, assemblyben 20 byte. Most néztem egy esp32-re épülő okosórát, megy arduino IDE-ből is, de már tolják az arcomba az összetologatós, scratch-re hasonlító cuccot. Akkor már lenne legalább olyan AI, hogy elmesélem neki mit szeretnék, és írja meg. Most vagy programozok, vagy minél kisebb munkával/tudással el akarom érni a célt.
-
Janos250
őstag
válasz
Tankblock #13387 üzenetére
Kösz a linket!
Ezt kerestem egy darabig, de a windows keresése class String-re minden olyan fájlt jelzett, amiben mindkettő előfordul, attól függetlenül, hogy nem közvetlenül egymás után.
Én is az operátor overloading írására gondoltam, azért kerestem, de aztán hagytam a fenébe. Nem tudtam a fájl nevet, hogy WString.
Mostanában nemigen volt vele dolgom, de régebben én átálltam a C++ (kisbetűs) string használatára, de valamelyik tagfüggvénye - már nem emlékszem melyik, talán valamelyik konvertáló - nem jól működött az ESP32 aktuális rendszerében. Írták neten, hogy a compilert kell lecserélni, de elég bonyolultnak tűnt, így hagytam a fenébe, inkább használtam a nagybetűs Arduino Stringet. -
zsolti_20
senior tag
válasz
Tankblock #13376 üzenetére
Közben találtam egy alternatív megoldást. Igaz nem a legjobb de elmegy egynek.
char text2;
text2 = 40;
if(text2 == 40){
csináljon valamit
}Csak nem annyira esztétikus sajnos. Úgy szerettem volna megoldani, hogy különböző gombok nyomásakor különböző értékekkel tölt fel egy string változót, amit utána kiíratok a kijelzőre. De megteszi ez is. Nem tudom miért lehetett üres a változó. Nem kaptam semmi hibát.
Köszönöm. -
csongi
veterán
válasz
Tankblock #13226 üzenetére
Sajnos nem tudom kiszamolni, mert nem tudom mi kellhet hozza meg.
Tapegyseg megvan. Kezdo csomag megvan.
6rele, vagy fet, a zona szelepek egy egy doboz ami kell, ahogy en latom.
Ma elkezdtem nezegetni az alapokat. De eleg kinai. Lehet ketesek valakit aki megirja. A kotest es kapcsolasokat megcsinalom en.
Ha mar itt tartunk, valaki elvallalja ennek a programozasat? :).
Persze nem ingyen kerem. :)A nyak miert kell?
Amiket adtak a keszletbe szerelt kabelek nem jok az uzemeleshez?
Bele akarom rakni egy muanyag dobozba, IP vedett es ennyi. :)
Nezegetni nem akarom.
A wifis 6 csatornas kesz termek 70 ezer korul mozognak.
Es se kijelzo, se azokat a programokat nem tudja amit en szeretnek. Plusz a kiegeszitok sem olcsok.
Csapadek erzekelo stb.Androidos aplikacio meg majd idodvel, elobb az arduino mennyen magaban.
-
Gergosz2
veterán
válasz
Tankblock #13084 üzenetére
Ez a CAN driver IC-d függvénye lesz. Maga az MCU ha támogat CAN-t hardveresen akkor 0-5 vagy 0-3v3 jelet fog fogadni, de a fizikai layered mehet 12 vagy akár 24V -on is.
BTW, nem biztos, hogy CAN-nek állnák neki. Ha mindenképp 12V-os fizikai layert akarsz akkor RS485-ö választanék mert olcsóbb. A protokollt meg magad válaszod.
-
Janos250
őstag
válasz
Tankblock #13084 üzenetére
Szerintem igen, bár még nem használtam. Majd aki használni akarja, lehúzza magának. A CAB busz OC. Ha nem az lenne, nem működne a prioritás.
A CAN buszt nem ismerők kedvéért: a buszra először az állomás kódját kell kiküldeni. Ha több állomás jelentkezne egyszerre, a prioritás dönt. Ha a kódban az első néhány bit meg is egyezik, azé az elsőbbség, akinek a kódjában az első különbözö bit alacsony. Ezt a másik is érzékeli, és abbahagyja az udvarlást. -
fpeter84
senior tag
válasz
Tankblock #12410 üzenetére
Természetesen ott van a 0x44 címen - de közben rájöttem hogy hol van a gond - ott hogy bár nincsen rendesen ledokumentálva, de úgy tűnik hogy az összes beállítás regisztere write-only, mindössze egyetlen byte-ot lehet belőle lekérdezni:
Azért kapok mindig 2-t, mert a softmute nem aktív (SM==0) és softstep nem busy (BZ==1) vagyis b10==2... ha a softmute-ot aktiválom a 0x04-es címen, akkor onnantól 3-at kapok vissza, ha kikapcsolom akkor ismét 2-t
Ez nagyban megnehezíti a dolgomat... Adott 2 autós androidos fejegység. 2 különböző platform de az audio proci IC ugyanaz a TDA7729-es. Az egyik kifejezetten jól szól, szeretem a hangját, a másik bár hardverben sokkal bikább, de a hangjával elégedetlen vagyok... Szerettem volna összehasonlítani a regiszterek beállításait első körben, hátha ott rontja el a hangot az erősebb vas - de így ez a verzió bukta...
Saleae Logic-al kissé macerás visszafejtegetni a nagy tömegű kommunikációt, úgyhogy most összerakok egy ilyen i2c_sniffer-t, és írok hozzá egy programot ami valahogyan könnyen összehasonlítható módon megjeleníti a különbségeket a két eszköz buszain küldött beállítások között. B terv, hogy veszek valami DSP-t (mint az ADAu1701), és megpróbálom azzal ráncfelvarrni a hangot...
-
Alu
senior tag
válasz
Tankblock #12258 üzenetére
Ideiglenesen csak egy második UART -ra volt szükségem.
Egyetemi tárgy keretein belül kellett terveztem egy eszközt, amiben egy 328P mcu van. Viszont a program fejlesztése során a debughoz szükségem volt egy második UART vonalra, ezért a fejlesztést egy 2560 -on csináltam (Arduino Mega). A kész program az UART 2 utasítások kivételével a 328P -n fog futni. És most a dokumentációnál kellene megindokolnom, hogy két mcu között nincs sebesség különbség, így a 2560 -on fejlesztett kód ugyan annyi idő alatt fog lefutni a 328P -n. -
-
-
Izeka82
csendes tag
válasz
Tankblock #12101 üzenetére
Van itthon egy IRF520-as fet modulom, most kipróbáltam, és sajnos nem jó. A negatív ágat szakítja, és ezzel pont az ellenkezőjét érem el, nagyon megugrik a fogyasztás a kikapcsolás után. Pont a pozitív ágat kellene szakítanom. Lehet feladom ezt a rádiós dolgot, és rendelek egy kisebb méretű esp-t.
-
gyapo11
őstag
válasz
Tankblock #12063 üzenetére
Fetre szavazok én is, nem kell altatni, hanem 5 percenként rákapcsolni a tápot. Elindul, mér, adatot küld és kikapcsolja magát. Fet vezérléséhez cmos ic-k. Így két mérés között nem fogyaszt az arduino, az rf modul, a hőmérő, a táp konverter, csak a cmos ic-k meg a nyitott fet.
-
válasz
Tankblock #12052 üzenetére
Szia!
Így néz ki a forrás eleje:
#define FASTLED_ALLOW_INTERRUPTS 0
#include <FastLED.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <ESPmDNS.h>
#include <Nextion.h>
//kijelző konfig
HardwareSerial Serial2(2); // Activate Serial communication 2 on ESP32 (RX=GPIO16 and TX=GPIO17)
Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port
//wifi kapcoslódási adatok
const char* host="ESP32_controller";
const char* ssid="------";
const char* wifi_jelszo="------";
//ablak nyitas erzekelo valtozok
int ablakPIN1=12; //ablak1 nyitás érzékelő PIN
//mozgaserzekelo valtozok
int mozgasPIN1=14; //erzekelo1 PIN
Ez pedig a hibaüzenet:
Többszörös könyvtárak találhatók ehhez: "FastLED.h"
Használt: C:\Users\User\Documents\Arduino\libraries\FastLED
In file included from C:\Users\User\Documents\esp32\source_code\center_controller\center_controller.ino:6:0:Többszörös könyvtárak találhatók ehhez: "WiFi.h"
C:\Users\User\Documents\Arduino\libraries\Nextion/Nextion.h:5:28: fatal error: SoftwareSerial.h: No such file or directory
Használt: C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi
compilation terminated.Nem használt: C:\Program
Többszörös könyvtárak találhatók ehhez: "ESPmDNS.h"
Használt: C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\ESPmDNSTöbbszörös könyvtárak találhatók ehhez: "Nextion.h"
Használt: C:\Users\User\Documents\Arduino\libraries\Nextion
exit status 1
Hiba a(z) ESP32 Dev Module alaplapra fordításra.A wifi.h-ből csaj 1 van, az arduino library közül töröltem.
A softwareserial probléma is ismerős, ott a nextion.h-ból kell kommentelgetni jó pár helyen, hogy ne software serial legen, hanem az ESP32 hardveres 2. serial lábai legyenek megszólítva közvetlenül.#Janos250 (12043): ha csak a nextion library-t hagyom benne, és a többit kikommentelem, akor is a töbszörös könyvtárra hisztizik a program.
-
válasz
Tankblock #11793 üzenetére
Belső oszcillátorról hajtom.
Megírtam a mérő kódot. Nem is 21us volt, hanem 36! (Úristen, a digitalWrite-nak ekkora lenne az overhead-je?) Átírtam közvetlen portmanipulálásra (köszi a tippet
), ezután lett az általam feltételezett 21us. Ezek után már be tudtam állítani pontosan a ciklust.
A vicc pedig, hogy 16MHz-re állítva az órajelet, majdnem pontosan 26us lett a linkelt kód futásideje (27 egész valamennyi), tehát közvetlen portmanipulálás nélkül nem 1, hanem 16MHz-en futott jól a kód.
Az infra valóban nagyon toleráns, mert 38kHz helyett 27kHz vivőfrekvenciával is átment a jel, igaz csak közelről. Most már jól működik.
Nem is értem, hogy miért nem találtam timert nem használó IR lib-et (attiny-ra legalábbis nem volt). Úgy kellett írni magamnak egyet, ami pinchange interrupttal működik. -
válasz
Tankblock #11393 üzenetére
[link]
Egy ilyen motorvezérlő adta meg magát. Wemos d1r2-vel használtam. Pont azért lenne jó, mert ez tud tápot adni a Wemosnak/Uno-nak is, nem kell külön bajlódni vele. 1db dc motor volt rákötve, először a bal oldali 1-es csatlakozóra, aztán az kinyiffant, majd a 3-asra, de az is kinyiffant. Utána csak annyit csinált, hogy tűzforró volt rajta a két chip, ma a jobb oldali frankón füstölt is. Usb kábel nem volt bekötve, mert már telepítve volt a program.
Tömören: távirányítós autó lego alapokon (1dc+1szervo), lenyestem a koppincs motor csatlakozóját, be lett kötve a motorvezérlőbe. A teszt idején nem is használtam ki a maximális sebességét. Kb. 2 kört ment, az kb 10m összesen.
Távirányító wifin, udp-vel csúszkával küldi az értékeket. (RoboRemo app) -
válasz
Tankblock #11391 üzenetére
Ilyenem volt 4db, de már elpasszoltam rég őket.
Hát, ha nem füstölt volna el az a motorvezérlő akkor nem lenne megint probléma... Lehet, hogy sok volt neki a 3x18650-es cella, bár mentségemre legyen mondva nem voltak fullra töltve. 12V van ráírva, de 25V-os motorokat is meghajt... ez nekem nem tiszta. "4 H-Bridges: per bridge provides 0.6A (1.2A peak current) with thermal protection, can run motors on 4.5V to 36V DC"
Ma még utoljára kipróbáltam, de füstölt a jobb oldali motorokat vezérlő chip... Megnéztem mégegyszer Alin, szerencsére nem 4$ volt csak 1,8. Rendelek... csak ezt megint kivárni amíg ideér... A Wemos megúszta. A kész járműben már csak 2 aksi lett volna, de nem ért ide a 2-es tartó ezért használtam a hármast... kár volt. Ez az Ali hátránya, hogy nem bírja az ember kivárni az alkatrészeket.Van még egy power bankom, egyelőre azzal fogom használni a Wemost, plusz adok külön tápot a motorvezérlőnek. Csak ez így túl sok helyet foglal.
#Aryes: A szervóra visszatérve: az kavart meg, hogy a motorvezérlőhöz tartozó példakódot használtam fel, ami tudja a szervo adott fokra állítását. Nem kell mindig visszaállítani 0-ra, simán megérti hogy 60-80-90-60 fok, ahogy a távirányító küldi a jelet. Ha elengedem, csak akkor áll vissza alapállásba, és megy egyenesen a gép. De akkor nyugodtan használhatom sima pinnel is ezeket az 'osztályokat'.
-
Breaker
tag
válasz
Tankblock #10445 üzenetére
Szia!
Időközben leugrottam a Conradba és vettem R-eket
Nos a helyzet megoldódott. nem kisebb, hanem boven nagyobb ellenalasra volt szukseg. 65kOhm-al kotottem ra 5V-ra az ISET labat mind a kettonel. Es igy mukodnek, ráadásul a halvanyabb fenyeronel, nem vibral egyik led szegmens sem.
Viszont nem jon ki a matek, valamit nem latok at de nem a datasheet szerinti áram folyik az IC-k lábain.
A szegmens lábakon 0.6V feszultség van és 2.6 mA. A LED papirjai szerint a forward voltage 1.95V és 30mA kell a labakra, igaz ezek szeirntem a maximum fényerőnél lehetnek.
Valamit rosszul olvasok vagy nem veszek figyelembe, de nagyon kevésnek tűnik ennyi nafta a mukodeshez.
Köszi
Üdv
Breaker -
Teasüti
nagyúr
válasz
Tankblock #10299 üzenetére
Értem.
Lényegében a felesleges polling-ot célszerű elkerülni xQueue-val és xSemaphore-ral.
Van még egy mutex nevű akármi is, de addig a fejezetig még nem jutottam el.Elöljáróban nincs arra vmi tipped, hogy létezik-e vmi jobb megoldás RTOS-ban az idő elteltét figyelni multitasknál, mint a "hagyományos"
if (millis() > timer) {}
feltételt pörgetni? -
Teasüti
nagyúr
válasz
Tankblock #10291 üzenetére
Jó észrevétel, ezt a bugot ki se szúrtam volna talán, csak telepítés után!
Amúgy nem hiszem, hogy ez volt a gondja. Azért nem, mert most nem tudom reprodukálni a hibát.
Letöltöttem újra azt, amit megmutattam kódot és most az sem hibázik bootoláskor.
Azóta annyi változás történt, hogy frissítettem az Arduino Core-t 1.0.1-re.
(Egyébként az új verzióban már rendesen működik a BT Serial, akit érdekel. Az 1.0.0 eldobálta a küldött adatot.) -
Teasüti
nagyúr
válasz
Tankblock #10289 üzenetére
Két PCNT csatorna van használatban, semmi más nem hívja meg a saját taskján kívül.
Szándékosan nem szeretnék megszakítást használni és elvenni a cpu időt mástól, ha hardverből is mehet.Megpróbálom a volatile változókat és a setup() végére rakom a task indítást. Meg utána nézek a szálkezelésnek, xQueue-nek.
(#10288) Janos250
Még nem olvastam el a linket, de "thread"? Ha ez nem ugyanaz mint a task, akkor most hallok erről először.
Ezt intelligensebben kezeli az RTOS?szerk: na ilyet most látok először! És jóval egyszerűbbnek tűnik, mint az RTOS féle xTask.
Viszont gondolom ez nem ugyanazon az absztrakciós rétegen fut, ugye? -
Teasüti
nagyúr
válasz
Tankblock #10282 üzenetére
Köszönöm a figyelmet!
Most nincs előttem a kód, de az utolsó három tasknál jött elő a jelenség. Nem használnak sok változót, a két PCNT-t használó csak beállít egyet-egyet, a harmadik meg kiküldi PWM-re a beállított változót. (Tudom ez mehetne egy taskba is, de a multitask lényege nem pont az, hogy kismillió folyamatot indíthatok?) Mindegy melyiket veszem ki, külön-külön mindegyiktől pánikol az 1. mag. És a 0. magon futnak.
Úgy tűnik magától a taskok számától jön be a jelenség. -
Teasüti
nagyúr
válasz
Tankblock #10280 üzenetére
Multi tab program, azért .ino az összes. HondaCBR az első a sorban.
Tehát már meghíváskor futnak a taskok mielőtt a végére érne a setup()-nak. Ez új.
Akkor csak átrendezem a setup()-ot.Vannak globális változók, mert végső soron sokminden interaktív lesz. Ha olyan könnyű lenne könyvtárba rendezni mindent, már rég portoltam volna.
A komponenseket természetesen egyesével tesztelem ki, azt is tudom hol jött be a cpu pánik.
Az utolsó három tasknál. Önmagában minden jól fut. Csak együtt nem annyira.Az xQueue és xEvent még új, majd utána nézek. Köszi!
-
Teasüti
nagyúr
válasz
Tankblock #10272 üzenetére
Nem találok megosztás gombot Github-on, így remélem a repo oldalának címe elég lesz.
Mondjuk lefuttatni nem fogod tudni szerintem a függőségei nélkül.
De ha belekukkantasz és látsz vmi gyanúsat, azt megköszönöm! -
válasz
Tankblock #10242 üzenetére
Van ez a jópofa karakteres időjárásjelző oldal, ez a Worldweatheronline adatait használja.
Az előrejelzés pontosságát tesztelni kell -
ecaddsell
aktív tag
válasz
Tankblock #10148 üzenetére
Ha csak ez az egyetlen gondja lenne az ESP32 ADC-jének, akkor igen, de sajnos több sebből vérzik.
A nemlinearitás egyébként máshol jobban vesézve van:
https://github.com/espressif/esp-idf/issues/164Amit linkeltél meg van említve a zaj is, amibe már korábban is belefutottam és amit sokkal nehezebb kezelni.
Amit ajánlgatnak az vicc, 100nF-os kondit csak az tehet oda, aki valami lassú szenzort olvas. Eleve az ESP32 ADC-je nem valami gyors, szóva tipikusan a multisampling se opció.Visszatérve a zajra: A zaj forrása tipikusan a digitális kapcsolási zaj és erősen függ attól, mennyi kimenet változik szimultán módon. Na erről nem szól az ábra.
Ma (meg már 1 ideje) a komolyabb analóg és digitális részt is tartalmazó chipek több tápfeszt igényelnek. Azaz külön kellhet szűrni és stabilizálni a digitális mag tip. alacsonyabb tápfeszét (1V tól 1.8V környéke), a digit interface-t (tip. 1.8-3.3V) ill. az analóg részeket. Ez persze megdrágítja a dolgot és ott spórolnak ahol tudnak.
Kb. ennek az eredménye, hogy a spec szerint 12 bites ESP32 ADC kb. 7 vagy max. 8 bites valójában...Amivel ezzel kapcsolatban mostanában küzdök: Miután az ESP32-vel a 8 digit/s reciprok freki mérőt megcsináltam, elkezdtem áttérni a 10 digit/s-es interpoláló reciprok freki mérőre. Ennek az a lényege, hogy nemcsak azt mérjük, hogy a jel egy adott egész számú periódusára hány egész referencia jel periódus tartozik, hanem a referencia jel tört periódus idejét is mérjük.
Ez úgy történik, hogy a tört periódus ideje alatt 1 kondenzátort töltünk konstans árammal és a töltés végén megmérjuk a kondenzátor feszültségét (ennek a digitális részét CPLD adja nem az ESP32).
Mivel nálam a referencia periódusa 10ns (100MHz) max. ennyi ideig tölt a kondenzátor, ami túl nagy nem lehet, mert akkor nagyon nagy tötlő áram kellene. Szóva a kondenzátor kb. 1 nF, és 30mA körüli töltőárammal kb. 280mV feszültség emelkedést lehet elérni max (azaz normálisan 0-280mV emelkedés, ami nem nulláról indul, szóval lényegtelen, hogy kis értékeket nem tud az ESP32 mérni).
Azaz a két digithez kb. 3mV felbontással kellene mérni. Viszonylag gyorsan, mert a kis kondenzátor gyorsan veszti a töltést még nagy impedancián is.
Na itt az ahol az extra 100nF nem opció.
Oszcilloszkópon frankón látszik a jel. A filléres Aneng 8008 multiméter is konzisztensen tudja indikálni az feszültség emelkedést.
Csak az ESP32 küzd a jellel a saját maga által generálta zajban...Szóval messze nem csak a linearitás a gond. Zajos és a sebessége is megérne 1 külön github részt, hogy mi a teendő, ha normális sebességet szeretnénk (erre is elég sok fórumbejegyzés van már). Talán mégsem véletlen a sok panasz.
-
_q
addikt
válasz
Tankblock #10151 üzenetére
Igen, emiatt vettem külső ADC-t. Költségbe így rosszul jöttem ki.
Az ESP 3v3 regulátorából jövő feszültséget használtam és egy potit, közben multiméterrel mértem. 0-3V között 10-15 pontot vettem fel. A multiméter ami elvileg pontos, ahhoz képest tized voltokat tért el az ESP ADC-jével mérve az érték. 3-3.3V között talán 1 értéket mért az ADC, 3.1 V körül már 3.3V-ot mért, miközben multiméterrel láttam, hogy nem annyi az érték. Közel 0 V-nál is hasonló volt, bár ott pontosabb. Tehát a 0 és 3 V körül levágta az értékeket és nem pontosan mérte, a kettő között pedig tized-század V eltérések is előfordultak. Ahol esetleg a tized V eltérés belefér ott még használható lehet talán.
Sajnálom, mert az uno-n lévő atmel ADC-je elég pontos és általános mérésekre szépen használható, ami nem mondható el az ESP32-ről.
(#10153) tvamos
Én mikor keresgéltem arduinos könyvtár support-ot, akkor az ADS1115-ot találtam, így nekem az lett. -
Attix70
aktív tag
válasz
Tankblock #10148 üzenetére
Teszteltem de nem lineáris, és nem is 0-tól indul a mérés ez a grafikonon is látható (persze attól még lineárisnak tüntetik fel). Ha használni akarom akkor kell egy tartományt keresnem amin belül lineáris (egyéb hardveres trükkökkel). Ez egy nagy hibája az ESP32-nek, remélem megjelenik valami hasonló amin az AD konverter jól működik
-
Janos250
őstag
válasz
Tankblock #10097 üzenetére
Nem jut el odáig, keresi a megadott routert, amint látszik serial monitoron.
Elvileg a 4 gombnyomásra kellene WEB AP-t adnia, de nem reagál rá.
Ha ez így hibásan fordítódik, akkor félő, hogy más fordításnál is így viselkedik.
Tehát az alap probléma nem is az, hogy hogyan kerüljem meg, hanem, hogy hogyan oldjam meg, hogy a javított fájlt fordítsa be.
Új hozzászólás Aktív témák
Hirdetés
- Bomba ár! HP EliteBook 850 G2 - i5-5GEN I 8GB I 256GB SSD I 15,6" FULL HD I Cam I W10 I Gari!
- Újra Akcióban!!! Ducky One 2 Mini és SF billentyűzetek a bolti ár töredékéért! Számla+Gari
- KÖZEL FÉLÁR! Apple Magic Keyboard, Mouse, Trackpad, Pencil, Smart Magic Keyboard Folio, Watch szíjak
- REFURBISHED és ÚJ - Lenovo ThinkPad 40AS USB-C docking station (akár 3x4K felbontás)
- AKCIÓ! HP Victus 16-R1002NF Gamer notebook - i7 14700HX 16GB RAM 1TB SSD RTX 4070 8GB WIN11
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest