Hirdetés
-
LOGOUT.hu
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
-
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.
Kígyó vére, béka hája, pók levedlett ruhája.. kondéromban lepke sül, kívánságom teljesül !
-
Janos250
őstag
válasz Dißnäëß #14902 üzenetére
A websocket a fizikai és a http (vagy egyéb) között van. Persze ez elég nagyjábóli megközelítés. A neten a kommunikáció IP alapon történik, viszont például ugyanazon a gépen egyszerre több program is használhatja a netet, pl. több böngésző is lehet újra megnyitva.
Ezért nem elég, hogy egy szerver csak a cél IP címét adja meg, meg kell hozzá adni még egy 2 bájtos egyedi azonosítót is, hogy a válasznál lehessen tudni, hogy melyik alkalmazásnak kell továbbítani az üzenetet. Ez a plusz 2 bájt a port. Amikor egy böngésző elküld egy kérést egy szervernek, akkor küld hozzá egy port számot is, amit a küldő gép határoz meg úgy, hogy olyat választ, amit ugyanazon a gépen másik alkalmazás éppen nem használ. Ezt az IP+port együttest, mint socketot kezeli egy egység. Tehát pl. ESP32-n: Ha WEB szervert használsz, az kapcsolatot tart egy alacsonyabb szinttel, ami olyan elérést ad, mintha pl. soros port lenne. Lehet rá írni, lehet róla olvasni. Ez a szint egy socketban adja tovább a kérést egy alacsonyabb szintnek. Ez a nem profi rendszereknél gyakran az lwIP szabad felhasználású egység. Ez aztán összerakja a továbbítandó csomagot (legalábbis egy részét), és beteszi egy memória részbe. Utána szól a hardvert legalacsonyabb szinten kezelő résznek, hogy ott van ebben a tárolóban egy csomag. Az fogja, átmásolja a hardver
saját tároló területére, és utasítja a hardvert, hogy küldje el.
Ebben a csomagban már benne van, hogy a választ melyik socket (IP+portot kezelő egység) részére kell visszaküldeni. A hardver még ehhez a saját MAC címét hozzáadva, egy adott MAC címre küldi, amit az ARP nevezetű rész határoz meg. Ezt úgy teszi, hogy egy mindenki számára szóló üzenetben kérdezi az összes, ugyanazon a madzagon lévő gépet, hogy ez az IP cím kié. Ha senkié, akkor a routernek küldi. A user által használt legalacsonyabb szint a socket szokott lenni, azaz megadott szisztéma szerint összekészítesz egy csomagot, és azt adod át neki. ESP32-n én nem használom, mert a serializált szint kezelése sokkal egyszerűbb, de gyakorlatilag ez socket szintű programozás, csak megúszom a csomag összekészítésének a melóját.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
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.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
-
Janos250
őstag
Helló!
Köszi, most jutottam oda, hogy kipróbáljam:
Nekem eredetileg ez van:oninput="document.getElementById('folyamatosKiiras').innerHTML = this.value"
Te ezt javasolod:document.getElementById("folyamatosKiiras").innerHTML = sliderValueForraloFutes;
Bár nekem, laikusnak eléggé hasonlónak tűnik a kettő, de kipróbáltam. Változást nem okozott. :-(Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz Janos250 #14907 üzenetére
Közben megoldódott
Ha azxhr.send();
után beírom:location.replace("/?F="+sliderValueForraloFutes);
akkor azt csinálja, amit szeretnék.
Gondolom, az xhr.send(); így ki is hagyható, de ezzel most nincs időm foglalkozni, majd holnap kipróbálom.
Köszi mindenkinek a rávezetéseket.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz vargalex #14909 üzenetére
Na ez lenne a másik kérdésem, hogy ha beírom ezt a sort, akkor az ajax miért nem küldi el? Mert nem küldi el. Számomra ez érthetetlen.
Mellesleg a netet bogarászva találtam olyan utalást, hogy valahogy a # karakter használatával el lehet azt érni, hogy a lapnak csak egy részét frissítse, de semmi konkrétumot nem találtam arra, hogy ezt a WEB lapon milyen script utasítással lehet elérni, és hogy akkor a szerver mit válaszoljon rá. Jelenleg ugyan számomra nem létkérdés, mert az egész html szöveg 6 kbyte, de a kíváncsiság!
Én azt hiszem, egyre többen fognak Arduino alapon netes vezérléseket csinálni, de semmi megfelelően összeszedett tutorialt nem találtam, ahol egyben le lennének írva a legfontosabbak.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Nem, mert ha az AJAX
xhr.send();
után írom, akkor az AJAX nem küldi el az adatot. Ez az, amit végképp nem értek. Legelőször én is ezt próbáltam, de nem érkezett meg az AJAX adata.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
nagyúr
válasz Janos250 #14913 üzenetére
Leírnád pontosan még egyszer, hogy mi az elvárt működés onnantól, hogy betöltődött a weblap?
Addig világos, hogy van rajta egy csúszka, amit ha állítasz, egy értéket küld az esp felé. Innentől nem világos, hogy a csúszka mozgatása után minek kellene frissülni és milyen okból.
Ugyanazon a weboldalon máshol is megjelenik ez az érték? Vagy másik böngészőben kellene látszódni a változásnak? -
válasz Janos250 #14913 üzenetére
Itt valami olyan van, hogy ezek aszinkron műveletek. Meg kell várni, hogy a send-re megjöjjön a response. Ezt próbáld meg send után berakni.
xhr.onreadystatechange = function(){
if(XMLHttpRequest.DONE === this.readyState){
if(200 <= this.status &&
299 >= this.status){
location.reload();
}
}
}I did nothing, the pavement was his enemy!
-
Janos250
őstag
Ezzel a következő a gond:
Ha nem írom ezt be, akkor a csuszka elengedésekor a Firefox által elküldött kérés első sora ez:GET /?F=40 HTTP/1.1
ha pl. 40-re toltam a csuszkát.
Ez kényelmesen feldolgozható.
Ha beírom amit javasoltál, akkor 2 kérést küld egymás után a FF :
Az első kérés első sora ugyanaz a jó érték:GET /?F=40 HTTP/1.1
De jön pluszban egy második lekérés is, mégpedig a csuszka állítása előtti URL-el.
Tehát ha például előzőleg azt küldtem el, hogyGET /?f=+10 HTTP/1.1
akkor másodikként ezt is megismétli, ami teljesen rossz, mert adott esetben pl. még pluszban megnöveli 10-el.
Ha beírom:location.replace("/?F="+sliderValueForraloFutes);
sort, akkor jó lesz, csak egyszer küldi, és a jót.
Még azt kell kisakkozni, hogy akkor az előtte lévővar sliderValueForraloFutes = document.getElementById("csuszkaErteke").value;
console.log(sliderValueForraloFutes);
var xhr = new XMLHttpRequest();
xhr.open("GET", "/?F="+sliderValueForraloFutes, true);
xhr.send();
-ből mi hagyható el. Csak kisakkozni tudom, mert az utolsó három sort érteni vélem, gondolom, az kihagyható.
Viszont aconsole.log(sliderValueForraloFutes);
sorról fogalmam sincs, az mire jó, kell-e, vagy sem.
Majd próbálgatom.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
"Meg kell várni, hogy a send-re megjöjjön a response."
Hoppá!
Én azt hittem, hogy a
XMLHttpRequest
-nek az a lényege, hogy nem kell rá válasz, ezért nem is küldtem.
Kell rá válaszolni?És mit?
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
-
-
Janos250
őstag
"Ezt nem intézi a lib?"
Nem, mert nem használok libet.
Azon a szinten használom, ahol aWiFiServer server(80);
után a
WiFiClient client = server.available();
a client gyakorlatilag soros vonalként használható.
char c = client.read();
utasítással lehet róla olvasni, és
client.println("akarmi");
utasítással meg írni, akárcsak a Serial soros vonal esetén.
Ez így nagyon kényelmes, mert nem kell azon filóznom, hogy a lib mit csinál. Viszont minden kérést nekem kell lekezelnem, és minden küldésről nekem kell gondoskodnom.
Ez így gyakorlatilag egy WiFi/soros bridge.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Kipróbáltam, hogy írtam rá egy
HTTP/1.1 200 OK
választ, de nem lett jó.
Mindegy, mostmár hagyom, így működik, ha nem is pontosan tusom, hogy miért.
Mindenkinek köszi a segítséget!
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
vargalex
félisten
válasz Janos250 #14916 üzenetére
A console.log csak a javascript console-ra (böngészőben F12-t nyomva a Console fül) ír logot.
Ajax hívásra válaszolni kell (azt hittem, hogy ez világos), hiszen azt szokás figyelni a callback függvényben (ugye aszinkron hívás). Összességében valami ilyen kellene:
var sliderValueForraloFutes = document.getElementById("csuszkaErteke").value;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function()
{
if (xhr.readyState==4 && xhr.status==200) {
document.getElementById("folyamatosKiiras").innerHTML=xhr.responseText;
}
}
xhr.open("GET", "/?F="+sliderValueForraloFutes, true);
xhr.send();
Itt láthatod, hogy az onreadystatechange callback függvényben vizsgálhatod a visszatérési értéket, sőt én ott most direkt az ajax hívásban visszaadott responseText-et állíttotam be a folyamatosKiiras elem innerHTML-ének.Alex
-
Janos250
őstag
válasz vargalex #14922 üzenetére
Az este még nekiálltam egy kicsit tanulmányozni a javasciptet és az AJAX-ot, mert úgy láttam, hogy ezt nem úszom meg.
Kezdem kapisgálni, mi az, amit írtál. Tényleg meg lehet azt csinálni, hogy amikor a csuszkát elengedem, egy táblázatot szőröstül-bőröstül
újratöltsek anélkül, hogy az egész lapot újra kellene töltenem, és így nem villog a töltésnél. (Majd egyszer, ha lesz időm leírom összefoglalva, hogyan is kell az ilyesmit csinálni)
Egyébként megnéztem, a FF-nek nem okoz gondot, ha az AJAX-ra nem válaszolok, hanem csak feldolgozom az általa küldött értéket. A gondot az okozta, hogy ha nem válaszoltam rá, de a lapot egyből újratöltöttem. Akkor nem pontosan tudta, mitévő legyen.
Köszönöm neked is, és mindenkinek a segítséget, így a probléma tényleg megoldva, most már elboldogulok vele.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos46
tag
Sziasztok!
Van egy kis meterológia állomásom NODEMCU-val (ESP8266). Kérdésem, hogy elkészítehetem-e ezt a WiFi ESP-12E chip ESP8266-el. Valamint ezt hogyan tudom programozni? A másikat könnyű a porton keresztül, ezen nincs.
Koszi a segítséget.Artillery, lelkes újonc vagyok, tanulni akarok!
-
Janos250
őstag
válasz Janos46 #14925 üzenetére
El, persze!
Porogramozni a legkönnyebben ilyennel tudod:
https://www.banggood.com/Geekcreit-FT232RL-FTDI-USB-To-TTL-Serial-Converter-Adapter-Module-Geekcreit-for-Arduino-products-that-work-with-official-Arduino-boards-p-917226.html
Ez állítható 3.3V-ra és 5 V egyeránt a jumperrel.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
nagyúr
Muszáj vagyok ezt belinkelni, annyira tetszik:
8bites mikrocomputer arduino alapokon.
Hátha valaki szeretne építeni valamit arduino-ból, de nincs ötlete. -
ekkold
Topikgazda
Sziasztok! Az arduino fejlesztőkörnyezetet át lehet állítani valahogyan, hogy ne utf8-ban tárolja az ékezetes karaktereket, hanem mondjuk használjon iso8859-et, vagy bármi olyat, ahol nem foglalnak két bájtot
az ékezetes betűk?http://skory.gylcomp.hu/ http://www.skory.z-net.hu/ https://skori.hu/ https://skori.spacetechnology.net/ https://www.hobbielektronika.hu/apro/index.php?u=1574
-
-
ekkold
Topikgazda
Több oka is van. Pl. a standard c string függvények (pl. strlen()) is jól működnének, egyszerűbb lenne a konverzió egyes kijelzőkhöz. Kevesebb helyet/memóriát foglalnának az ékezetet is tartalmazó szövegek, nem okozna gondot egyes programok más processzorra való átvitelénél, az eltérő bájt-sorrend kezelés, ilyesmik. Összefoglalva, nekem sok szempontból jobb lenne...
http://skory.gylcomp.hu/ http://www.skory.z-net.hu/ https://skori.hu/ https://skori.spacetechnology.net/ https://www.hobbielektronika.hu/apro/index.php?u=1574
-
nagyúr
válasz ekkold #14928 üzenetére
Szerintem a kódolást maga az IDE, a szövegszerkesztő szintjén kezeli, ezért a legegyszerűbb az lenne, hogy ezeket a szövegeket egy külön .h fájlban tartanád, amit egy olyan külső szövegszerkesztővel írsz és szerkesztesz, ami tud iso8859-2 kódolással menteni. Fordításkor nem fogja átkódolni utf-8-ra, byte-to-byte fogja a lefordított kódba másolni a string-eket. Úgy emlékszem volt már ezzel saját tapasztalatom.
-
gyapo11
őstag
Nem is kell külön csak a .h file-okat, hanem az egész forrásszöveget lehet szerkeszteni külső szövegszerkesztővel, ekkor az IDE csak a fordítás és áttöltés idejére veszi át a szöveget. A preferences/settings-ben be kell pipálni a use external editor checkboxot.
menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
gyapo11
őstag
Azért oda kell figyelni, mert kipróbáltam pár szokásos kódolással, és az ékezetes karakterek nagyon érdekesen néznek ki az IDE-ben ami nem utf-8-cal van mentve. Próbáltam ansi1252, iso-8859-1 és windows 1252-t, egyik se jó, szóval úgy tűnik az IDE ragaszkodik az utf-8 megjelenítéshez. Ki kell próbálni, hogy a nem utf-8 ékezetes üzenetek pl. serial monitoron olvashatók-e.
menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
nagyúr
válasz gyapo11 #14934 üzenetére
Hát ezért írtam, hogy külön fájlba kell tenni, külön a programkódtól, amit csak include-ol az ember, de nem szerkeszti az IDE-n belül.
Én nem várnám, hogy olvasható legyen, de LCD kijelzőkhöz, ahol lookup table-ökben vannak bitmap-ben a karakterek, tényleg praktikusabbak az 1byte-os karakterek.
Esp+webes kezelőfelületekhez igazából mindegy, hogy utf-8 vagy más. -
dew28
aktív tag
-
Tankblock
aktív tag
válasz Janos250 #14905 üzenetére
Bocs, épp mindennel el vagyok foglalva csak fórumozni nincs időm...
Na szóval javascript ugye...
elemnek legyen id ja és akkor scriptből lehet a tulajdonságait módosítani. pl láthatóságot, bármit.lenti példában egy slide switch van
myonoffswitch
néven és loggol is az oldalra vissza."<!DOCTYPE html><meta charset=\"utf-8\" /><title>ESP8266 Test Server</title><style> .onoffswitch { position: relative\; width: 90px\; -webkit-user-select:none\; -moz-user-select:none\; -ms-user-select: none\; } .onoffswitch-checkbox {display: none\;} .onoffswitch-label {display: block\; overflow: hidden\; cursor: pointer\; border: 2px solid #8F8989\; border-radius: 20px\;} .onoffswitch-inner {display: block\; width: 200%\; margin-left: -100%\; transition: margin 0.3s ease-in 0s\;} .onoffswitch-inner:before, .onoffswitch-inner:after { display: block\; float: left\; width: 50%\; height: 30px\; padding: 0\; line-height: 30px\; font-size: 14px\; color: white\; font-family: Trebuchet, Arial, sans-serif\; font-weight: bold\; box-sizing: border-box\;} .onoffswitch-inner:before { content: \"ON\"\; padding-left: 10px\; background-color: #C21515\; color: #FFFFFF\; } .onoffswitch-inner:after { content: \"OFF\"\; padding-right: 10px\; background-color: #C21515\; color: #999999\; text-align: right\;} .onoffswitch-switch {display: block\; width: 18px\; margin: 6px\; background: #A1A1A1\; position: absolute\; top: 0\; bottom: 0\; right: 56px\; border: 2px solid #8F8989\; border-radius: 20px\; transition: all 0.3s ease-in 0s\; } .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {margin-left: 0\;} .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {right: 0px\; background-color: #CC262C\;}</style><script language=\"javascript\" type=\"text/javascript\"> var wsUri =\"ws://"; <ide az IP címe kell>
":81\"\; function init(){ output = document.getElementById(\"output\")\; testWebSocket()\;} function testWebSocket(){ websocket = new WebSocket(wsUri)\; websocket.onopen = function(evt) { onOpen(evt) }\; websocket.onclose = function(evt) { onClose(evt) }\; websocket.onmessage = function(evt) { onMessage(evt) }\; websocket.onerror = function(evt) { onError(evt) }\; } function onOpen(evt) {writeToScreen(\"CONNECTED\")\; doSend(\"CONNECTED\")\; document.getElementById(\"myonoffswitch\").disabled = true\;} function onClose(evt){ writeToScreen(\"DISCONNECTED\")\;} function onMessage(evt){ var received_msg = evt.data\; writeToScreen('<span style=\"color: blue\;\">RESPONSE:' + received_msg +'</span>')\; if(received_msg == \"Connected\"){document.getElementById(\"myonoffswitch\").disabled = false\; document.getElementById(\"myonoffswitch\").checked = false\; doSend(\"GS\")\;} if(received_msg.startsWith(\"GS\")){ var l_tempSwitchStatus = received_msg.split(\":\")\; writeToScreen(\"Medve \" + l_tempSwitchStatus[1])\; document.getElementById(\"myonoffswitch\").checked = (l_tempSwitchStatus[1] === 'true')\; document.getElementById(\"myonoffswitch\").disabled = false\;} } function onError(evt){writeToScreen('<span style=\"color: red\;\">ERROR:</span> ' + evt.data)\;} function doSend(message){writeToScreen(\"SENT:\" + message)\; websocket.send(message)\;} function writeToScreen(message){var pre = document.createElement(\"p\")\; pre.style.wordWrap = \"break-word\"\; pre.innerHTML = message\; output.appendChild(pre)\;} function checkedChanged(message){doSend('WS:'+document.getElementById(\"myonoffswitch\").checked)\;}window.addEventListener(\"load\", init, false)\; </script><h2>WebSocket Test</h2><div class=\"onoffswitch\"><input type=\"checkbox\" name=\"onoffswitch\" class=\"onoffswitch-checkbox\" id=\"myonoffswitch\" onchange=\"checkedChanged(this)\" checked ><label class=\"onoffswitch-label\" for=\"myonoffswitch\"><span class=\"onoffswitch-inner\"></span><span class=\"onoffswitch-switch\"></span></label></div><div id=\"output\"></div>";
Nem kell oldalt töltögetni számomra az idegesítő.esetleg a CNLohr csatornáját ajánlom [link] esp8266 on tol valami 700Hz el weblapot és FFT vel zenéből RBG ledszallagot színez.....
Release the Beast....
-
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![ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Kösz, ezt majd alkalmazom!
Valóban úgy látom, hogy nem úszom meg, hogy alkalmazzam a javascriptet, pedig nagyon nem szeretem őt, mert az összes mocsok reklám ezt használja, hogy előmásszon, és alig tudom megakadályozni. Néha meg sehogy.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
nagyúr
Srácok (lányok?), ha az UNO AREF pinjére kötök egy 5V-nál kisebb referencia feszültséget, vagy a belső 1,1V-ot használom az analóg méréshez referenciaként, de az analóg pin-re annál nagyobb feszültség kerül, annak van valami anyagi kárral járó következménye? 🤔 Sehol sem találok erre utaló információt.
Azt olvastam a leírásokban, hogy ha külső feszültségforrást kapcsolok az AREF-re és nem állítom át mérés előtt a referenciaforrást, akkor rövidzárat csinálhatok a külső és a belső referencia között, ezt egy nagyobb ellenállással ki lehet védeni.
Szeretnék a program futása közben váltogatni a belső 5V, a belső 1,1V és a külső AREF között, amire a board 3,3V-ját kötném referenciának. -
stopperos
senior tag
Ha 5V-ot nem haladja meg, akkor nincs gond. Csak 1024-et fog adni az ADC.
Szerintem jobban jársz, ha veszel referencia feszültségforrásokat, és azokat relével váltogatod.
"What is Linux? I only joined because of the the penguin..." - meanwhile in the linux community. http://9gag.com/gag/arpZGOy
-
Janos250
őstag
válasz Dißnäëß #14902 üzenetére
Marhaságot írtam neked!
Te a websocketot kérdezted, én meg a socketot írtam le.
A socket az valóban alacsony szintű, lehet használni, de elég macerás, szerintem nem nagyon érdemes erre az alacsony szintre lemenni.
A websocket viszont egész más. A neten külön kihangsúlyozzák, hogy semmi köze a sockethoz.
Ez egy protokoll, olyasmi, mint a http (http:// , ws://) a http fölött van, arra épül, erősen támaszkodik a javascriptre. Feladata, hogy aszinkron módon a kliens (pl. böngésző) amikor kedve szottyan, küldözgethessen adatot a szervernek, és viszont. Kidolgozott metódusai vannak a kapcsolódásra, küldésre, miegymásra, így kényelmesnek tűnik.
Eddig én nem ismertem, csak most, hogy Tankblock által küldött mintát próbálom megérteni (próbálom ), és böngészem a netet, most látom, hogy mi ez.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz Tankblock #14937 üzenetére
Hű, ebben sok jó dolog van, lassan haladok vele.
Tetszenek a kapcsoló megoldásai, el is raktam magamnak betördelve, és kommentelve.
Valamit valószínűleg rosszul másoltam ki, mert nekem nem kapcsolódik a szerverhez, de ha lesz időm, foglalkozok vele.
Kösz!
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
bear_
aktív tag
Megvan a probléma, a for ciklust rontottam el.
Viszont itt is a következő problémám:
Azt szeretném, ha nyomógomb megnyomására egyel magasabb értéket jelenítene meg a 7 szegmenses kijelző.
0 az alapállapot, és ha nyomva tartom akkor felugrik 1-re, ha elengedem akkor visszaugrik 0-ra. Gyanítom ez azért van mert végigfut a kód és nullázódik a mikrokontroller. Hogy lehet azt megoldani, hogy a változó megjegyezze az értéket?
kód:
while (1) {
int num=0;
if(HAL_GPIO_ReadPin(SW1_GPIO_Port, SW1_Pin)==0){
num++;
}
HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_RESET);
for(int i = 0; i <= 15; i++) {
HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_RESET);
if(digits[num][i] == 1) {
HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_SET);
}else {
HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_RESET);
}
HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_SET);
}
HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_SET);
}
}
-
PBA
aktív tag
Sziasztok,
remélem, jó helyen járok a kérdésemmel... ESP32 alapon szeretnék egy lebutított SIP klienst üzembe állítani. Azt látom, hogy a kínai webshopokban vannak olyan boardok, ami kvázi fel vannak erre készítve, azaz kezelnek akkut, van benne WIFI, füles ki- és mikrofon bemenet, stb.
Leegyszerűsítve a cél az, hogy az az ESP32 board bekapcs után automatikusan fellépjen egy meghatározott WIFI hálóra, és csatlakozzon egy SIP szerverhez. Így megvalósulna a kétirányú audio kommunikáció.
Nem vagyok otthon a fejlesztési részben, így ehhez keresnék valakit, aki tud ebben segíteni. Nyilván a fáradozását honorálnám. Előre is köszönöm és elnézést, ha nagyon off-topic a dolog. Privát üzenetben elérhető vagyok!
Új hozzászólás Aktív témák
Hirdetés
- iPhone 15 Pro 128GB FEHÉR TITÁN MAKULÁTLAN
- iPhone 14 128GB Lila Független Mint Az Új/1-3 hónap gar./Akku 92%/p3826
- minigép/ i5 6500T 35W/ Dell 3050 micro/ garancia/ ingyen foxpost
- Új Modell Apple Watch Ultra 2 49mm Black/2025.09.21 Apple Gar./p3825/
- Cisco SG200-50 smart switch - 48+2 portos Gigabites
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest