- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Argos: Szeretem az ecetfát
- vrob: Az IBM PC és a játékok a 80-as években
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Fűzzük össze a szavakat :)
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
-
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
-
And
veterán
válasz
Tomika86 #17399 üzenetére
Én úgy oldottam meg, hogy az adott oldal preinitialize event szekciójában szépen feltöltöttem a változókat megjelenítő mezőket a vételi pufferből ( u[ ] tömbből ) kivett adatokkal. Mondjuk nálam a normál megjelenítés is hasonlóképp történt, csak akkor egy időzítő által indított timer event script végezte ugyanezt. Eleve reparse-módban használtam a kommunikációt, vagyis pufferből halásztam elő az adatokat (master felőli parancsküldés helyett).
Gondolom olyan módon is megvalósítható - alapértelmezett / parancsküldős kommunikáció mellett -, hogy az 'új' oldal változóit globálisként definiálod, és az 'előző' oldal elhagyásakor (page exit event segítségével) azokba beleírod a szükséges értékeket. -
Tomika86
senior tag
Sziasztok
Meg lehet oldani valahogyan hogy az első képernyő váltásoknál ne villanjanak be a default értékek egy pillanatra? Ha már voltam az adott oldalon, akkor utána jó.
[link]
Köszönöm -
sonar
addikt
válasz
razorbenke92 #17392 üzenetére
Saját tapasztalat, hogy ha többen jelentitek a hirdetést, hogy kifogásolható akkor mindenféle értesítés nélkül, de eltűnik a rendszerből.
Amúgy néha beesik egy egy erotikus megkeresés azokat is jelenteni szoktam, de eddig mindig az jött vissza, hogy semmi kifogásolható nincsen. De 2-3 nap után már nem létezik a profil. -
vegyszer
addikt
válasz
Janos250 #17391 üzenetére
Nekem 2020 azzal indult, hogy a PayPal a hitelesítő SMS-eit a néhai Yodafone-nál beregisztrált számomra hiába küldte el, nem jöttek meg (mert valójában már telenyomoros voltam azon a számon). Vagy három hónapig nem tudtam belépni.
Csináltam egy másik accot, a Revolut virtuális kártyát hozzá kötve, de valami miatt mégis kellett az eredeti fiók. Asszem egy refund összege oda futott be valamiért, el kellett költeni.
Egy (látszólag) magyar számot hívva egy talán ír hölggyel beszéltem. Gyenge negyed óra alatt sikerült megértetni magam, hogy mi a hasfájásom. Megoldotta, hogy az SMS az előzetesen már regisztrált másodlagos számomra jöjjön.
A hétvégén meg a Revolut kezdett azzal zaklatni, hogy lejárt (az ősszel) az az okmányom, amivel anno oda mentem. Persze most vagy a szelfi nem jó neki, vagy az okmány képe. Folyton visszadob.Jó dolog ez az informatika, míg a Skynet az öntudatára nem ébred...
-
Janos250
őstag
válasz
razorbenke92 #17392 üzenetére
Most például vagy háromszor tolta nekem egy eszterga hirdetését 69.99 dollárárt, ami mondjuk ezer dollár. A FB-nál is a pénz beszél. Aki fizet, bármit megjelentethet!
Ha nem akarjuk, hogy letiltson a PayPal, és utána Bangoodon, meg Alin se tudunk vele fizetni, akkor nem szabad FB-n hirdetett dolgot venni. -
válasz
Janos250 #17391 üzenetére
Elképesztő bosszantó a facebook hozzáállása ehhez.
Egyszer vettem a fáradságot, és felgöngyölítettem egy komplett csalásra specializálódott csapatot. Úgy kezdődött, hogy az arcomba tolt a fb egy hirdetést, ami kamu volt, de mégis sokan írták alatta, hogy "Szuper ajánlat, épp egy hete használom" stb. Ellenőriztem a profilokat, és egyértelműen látszott, hogy erre a célra létrehozott profilok. Vagy 10-15 darab. Internetről származó profilképek, kommentek 8-10 nyelven itt-ott, teljesen belterjes ismerettségi kör. Az aktivitásukat visszatrackelve találtam még 4 hasonlóan csaló hirdetést, amiken keresztül találtam még 30-40 darab kamuprofilt.
Mindet jelentettem a facebook felé, és 0, azaz 0 db profilt töröltek. A hirdetések is sokáig fent voltak, valószínűleg nem a fb vette le őket.
Egyszer már komponáltam egy bejelentést az NMHH-nak, de végül elengedtem.
-
Janos250
őstag
A franc enné meg. Nem tudok PayPal fizetéssel rendelni, mert karácsonykor megrendeltem egy átverős Facebookon megjelent hirdetés a alapján egy cikket (igen, én hülye), ezzel a PayPal le is tiltott. A feloldáshoz mindenféle igazolvány , egy másik rendelés számlája, meg ilyesmik szükségesek. Beszkenneltem a személyim, ami épp most járt le, de ugyebár meg lett hosszabbítva, vagyis elvileg érvényes. Visszaírták, lejárt. Semmi baj, akkor megy a jogosítvány. Elment, de ahhoz meg útlevél másolat is kell, önmagában nem elég. Az meg otthon van, és nem is tudom, nem járt-e le az is.
Persze addig fizethetek kártyával, de van, ahol inkább kivárom.
Olyan ez, mint az autóban a riasztó. A tolvajt nem akadályozza meg a lopásban, de a tulajt időnként megszívatja.Ha szoktatok PayPallal fizetni, vigyázzatok, nehogy így járjatok!
-
And
veterán
Ez egyébként igaz (ipari PLC-k sem szokták óriási impedanciával fogadni a DI-jeleket), de nyákon vagy készülékházon belül megteszi a belső fel/lehúzó. Lehet persze bolondbiztosra tervezni, de azért túlzásokba nem kell esni. Egy hidegítő, pl. kerámia kapac lehet, hogy hasznosabb a bemeneten, mint a túl alacsony felhúzó.
-
vargalex
félisten
válasz
Janos250 #17385 üzenetére
Az jogos is lenne, de ez a forráskód részlet:
String htmlstring = htmlHeader ; // csak Arduino String (nagybetus) jo, string (C++ kisbetus string) nem!
htmlstring += "<body>" ;
htmlstring += "\n Hello, World!\n <br>\n" ;
htmlstring += " ide jonnek a feldat szerinti dolgok\n <br>\n" ;
//egy minta: https://lastminuteengineers.com/creating-esp32-web-server-arduino-ide/
htmlstring += "</body>\n</html>" ;
semmivel nem tagoltabb, mint ez:
String htmlstring = htmlHeader ; // csak Arduino String (nagybetus) jo, string (C++ kisbetus string) nem!
htmlstring += "<body>" ;
htmlstring += "Hello, World!<br>" ;
htmlstring += " ide jonnek a feldat szerinti dolgok<br>" ;
//egy minta: https://lastminuteengineers.com/creating-esp32-web-server-arduino-ide/
htmlstring += "</body></html>" ;
-
-
ekkold
Topikgazda
Az arduino irányából nézve nem olyan nagy a különbség. Valóban van néhány specifikus dolog, de ezeken kívül a programok felépítése kb. ugyanolyan. Nekem az tetszett meg az STM32-ben, hogy egy sima arduinohoz képest nagyon gyors, az ára meg kb. ugyanaz (kicsit még olcsóbb is volt, amikor vettem). Nem csak az órajel, és a 32bit miatt gyorsabb, hanem hardveresen tud szorozni, és osztani, ami gyakran csak egyetlen órajelet igényel (14 nanosec!), (az osztáshoz időnként több kell). Mindez együtt nagyon gyorssá teszi.
-
And
veterán
válasz
Tomika86 #17374 üzenetére
Már csak az a kérdés marad, hogy ezekhez ilyen célra minek egyáltalán bármilyen külső ellenállás? Az ESP32 adatlapja szerint a portok nagyobbik része fel- és lehúzásra is programozható (45 / 45 kΩ), az MCP23..-as sorozatnál pedig mind a 8 vagy 16 porton támogatott a belső pull-up (100 kΩ), ha az adatirány inputnak van állítva..
-
ekkold
Topikgazda
A forrasztóállomásom szoftverét átírtam úgy, hogy a külső eeprom helyett a flash-be mentse a beállításait (így nem kell hozzá az eeprom a nyákra). Most ez úgy megy, hogy a 64k flash végére írom ki az adatokat (a program sokkal rövidebb). Viszont ha előre le tudnám foglalni a szoftverben a flash egy adott területét, akkor már fordításkor bekerülhetnének oda a default értékek, és később a flash-nek ezt a területét a programban lehetne írni is. Ehhez viszont az kellene hogy 1024-el oszható címen legyen a változó, mert csak egyben, 1k-s lapokat lehet törölni a flashben. Igazából enélkül is jól működik a program, de ügyesebb lett volna így.
-
And
veterán
válasz
Tomika86 #17372 üzenetére
Látatlanban, a konkrét áramköri részletek ismerete nélkül nehéz meghatározni a 'jó' értéket, de a korábbiak értelmében a tartomány elég tág lehet, inkább csak a nagyságrendet kell belőni. Például egy nagy impedanciás uC bemenetére kötött nyomógomb fel/lehúzója széles ellenállás-tartományban rendben lesz. Ilyen helyen a rajz szerinti 4,7 kΩ simán helyettesíthető 10 kΩ-mal. De mondjuk egy I2C-busz felhúzóinál már necces lehet ekkora eltérés (relatív nagy busztávolság és sebesség esetén különösen).
-
And
veterán
válasz
Tomika86 #17370 üzenetére
Értelemszerűen változik tőle a fel- vagy lehúzóáram. Ezen túl a következőket befolyásolja: bemeneti impedancia ill. áram (ha bemenetet van), kimeneti terhelőáram (ha pl. OC / OD-kimeneten). Alapértelmezett szinttől és az elhúzás irányától függően a nyugalmi fogyasztásra is hatással van, ami telepes / akkus táplálásnál lehet érdekes. A fel- vagy lehúzó értéke általában kompromisszum eredménye: az ellenállás nem lehet túl alacsony a nagy áramigény miatt, de adott körben túl magas sem, mert akkor a feladatát - határozott szintre húzás - sem feltétlenül látja el.
-
Tomika86
senior tag
Sziasztok!
Mi a különbség ha 4,7kohm vagy 10kohm fel-lehúzó ellenállásokat használok? -
Janos250
őstag
Az a baj, hogy nem tudsz címet, hogy hova tedd. Ha tudod a címet, közvetlen címzéssel bárhova lerakhatsz bármit, de honnan tudod, hogy hova? A regisztereit az ESP32-nek például közvetlen címzéssel érem el.
Assemblyt én az ESP32-n még csak egyetlen dologra használtam:
Van egy regiszter az ESP32-ben, ami a 80 Mhz-es ciklusokat számolja, ezzel elég pontos időzítést lehet csinálni. Viszont ez a regiszter cím olvasással nem érhető el, csak van egy assembly utasítás, ami ezt kiolvassa. Elég hülye ötlet, de így van. -
-
Janos250
őstag
válasz
ekkold #17364 üzenetére
Nem tudok róla, hogy meg lehetne adni a címet. Igazából azt se tudom, hogy a sima konstansokat hova teszi, a programszövegbe-e.
Én néha így adok meg, pl. az említettet:const char httpHeader[] PROGMEM = R"=====(
de igazából nem tudom, hogy van-e jelentősége.
Még soha nem néztem meg, mi a címe akkor, ha van PROGMEM, vagy ha nincs. -
ekkold
Topikgazda
Arduino-ban lehet olyat csinálni, hogy az adott string konstanst a Progmem-be teszem, de úgy, hogy azt is meg akarom adni, hogy milyen címen legyen tárolva ?
-
Janos250
őstag
A C++11 hozta be a raw string (R string) kezelését, és az ESP32 tudja.
A hagyományos stringnél csak macerásan oldható meg pár dolog, pl:\n
a sorváltás, és nem azt látod a programszövegben, ami majd ténylegesen lesz.
A raw string esetén nem kell escape-elni, hanem nyugodtan írhatod bele a sorváltást, tabulátort, miegymást, pontosan azt látod a program szövegében, ahogy az majd megjelenik például kinyomtatva. Én ezért szeretem használni. -
dzz
aktív tag
válasz
Janos250 #17355 üzenetére
Köszönöm, ezt majd kipróbálom, bár nem tervezek webszervert használni, inkább kliensként csatlakozni egy webszerverhez vagy sql szerverhez. Illetve esetleg egy másik módban, talán amikor az egység nincs mozgásban, oda akár wifin keresztül is jó lehet... ezt még át kell gondolnom.
-
-
Janos250
őstag
Ígértem leegyszerűsített ESP32 WEB szerver mintát.
Nem tudom aktuális-e még, itt van egy végletekig leegyszerűsített változat:// felhasznalva:
// https://lastminuteengineers.com/creating-esp32-web-server-arduino-ide/
// reszletesebben lsd ott
#include <WiFi.h>
#include <WebServer.h>
using namespace std;
const char* ssid = "********";
const char* password = "********";
IPAddress ip(192, 168, 0, 30); // ez lesz az ESP32 IP cime
IPAddress dns(192, 168, 0, 1); // ehhez az IP-ju WiFi routerhez fog kapcsolodni
IPAddress gateway(192, 168, 0, 1); // a router a gateway is
IPAddress subnet(255, 255, 0, 0); // a Wifi router maskja. ha nem tudod, akkor ez tobbnyire jo
IPAddress primaryDNS(8, 8, 8, 8); //optional lehet a router is
IPAddress secondaryDNS(8, 8, 4, 4); //optional
WebServer server(80);
const char htmlHeader[] = R"=====(
<!DOCTYPE html>
<html lang = hu >
<head>
<meta charset="UTF-8">
<title>minta WEB szerver</title>
</head>
)=====";
void serverValaszolHTMLtexttel() {
String htmlstring = htmlHeader ; // csak Arduino String (nagybetus) jo, string (C++ kisbetus string) nem!
htmlstring += "<body>" ;
htmlstring += "\n Hello, World!\n <br>\n" ;
htmlstring += " ide jonnek a feldat szerinti dolgok\n <br>\n" ;
//egy minta: https://lastminuteengineers.com/creating-esp32-web-server-arduino-ide/
htmlstring += "</body>\n</html>" ;
server.send(200, "text/html", htmlstring);
} ;
void handle_NotFound(){
server.send(404, "text/plain", "Not found");
} ;
void setup(void) {
//************************************
// Ez a szokasos
Serial.begin(115200);
delay(2000);
WiFi.begin(ssid, password);
if(!WiFi.config(ip, gateway, subnet, dns, secondaryDNS)) {
Serial.println("STA Failed to configure");
}
Serial.print("Connecting to ");
Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Print local IP address and start web server
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address(ESP32): ");
Serial.println(WiFi.localIP());// this will display the Ip address of the Pi which should be entered into your browser
//*************************************************
// mit kuldjon, ha egy client bejelentkezik
server.on("/", serverValaszolHTMLtexttel);
// mit kuldjon, ha hibas az URL
server.onNotFound(handle_NotFound);
server.begin();
Serial.println("HTTP server started");
Serial.print ("ezt ird be a bongeszo cimsoraba:http://");
Serial.println(WiFi.localIP()) ;
} ; // end setup
void loop(void) {
server.handleClient();
delay(50);
} ; // end loop -
dzz
aktív tag
válasz
Janos250 #17351 üzenetére
Mindkettő jó lehet, illetve mind a kettővel futok pár kört még
Arduinoval elég sok dolgot megoldottam már, de GUI-t QT4-el (annó) más volt programozni
Amit most szeretnék az teljesen más lesz/lehet. A hw ami itt van előttem, az adott, ezt szeretném mindenek előtt megismerni, konkrét célom van vele. Mobilneten szeretnék pozícióadatokat küldeni a saját szerveremre, erre van kitalálva. A SIM7000-et AT parancsokkal lehet késztetésre bírni, amint ezek eredménye megvan, van ideje a procinak mással is foglalkozni. Ha eddig eljutok, akkor esetleg még egy CAN buszos olvasást is megpróbálnék. A WiFi szerintem sosem lesz használva ebben a projektben, a ble talán egy soros konzolként, hogy ne kelljen a motorháztetőt se felnyitni ha amúgy működik a készülék. Ezek jó lenne ha mennének multiban, szóval a freertos gondolom kelleni fog. Hogy mindezt az arduinoban vagy az idf-ben lehet kényelmesebben megoldani, azt még nem tudom, ezért kell ismerkednem mind a kettővel. Az eddigi pc-s ismereteimben nem kellett a multitaskkal foglalkoznom, az arduinoban meg még annyira sem.
-
Janos250
őstag
A freeRTOS mindenképpen fut, és nem is kell róla tudomást venni, ha nem akarod, pont ugyanúgy használhatod, mint ha mondjuk UNO lenne.
Ugyanúgy van a main.cpp lényege (kikeresheted):setup();
for(;;) {
A mindenféléket beállítja neked, nem kell vele bogarászni, el is felejtheted, hogy freeRTOS alatt fut, ha nem akarod a két magot kihasználni.Nem nagyon van a freeRTOS-hoz használati utasítás a espressifen kívül
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos.html
de nem is igen kell .
Igazából az ember a xTaskCreatePinnedToCore API-t használja, ha meg akarja adni, hogy melyik magon fusson, vagy ha ráhagyod az oprendszerre, akkor meg az xTaskCreate.
Ha nem akarod, nem is látod ezeket a függvényeket, ő automatikusan az 1-es magon futtatja, ha nem beszélsz bele, hanem mondjuk egy UNO programot futtatsz.
Esetleg a vTaskDelete, vTaskDelay ( de a delay is erre fordítódik) , az xTaskDelayUntil, uxTaskPriorityGet, eTaskGetState, vTaskGetInfo, vTaskPrioritySet. Ezek nevei magukért beszélnek, a leírásuk , és a paramétereik a linken ott vannak.
Én akartam még használni a vTaskList-et, de az meg az Arduinora fordított verzióban nem működik, mert az meg csak akkor működik, ha valami debug módot is beállítottak volna, azt meg utólag - állítólag - nem lehet.
A WiFi-re majd írok konkrét példákat, és felteszem valahova.
Többféle módon használhatod. -
dzz
aktív tag
válasz
Janos250 #17346 üzenetére
Az elejét nem igazán értettem, mármint a WiFi részt.
A micropythont kipróbáltam közben, valamiért nem érzem, hogy átütő lenne, csak az egyik magon fut - legalábbis eddig amit hirtelen elolvastam róla. Nem rossz, hogy azonnal ki lehet próbálni a python kódot, de hogy a multitask hogyan használható az rövid olvasás után nem egészen tiszta számomra.
A FreeRTOS -ha jól értelmezem- mindenképpen fut és erre kerül a program ami vagy használja a képességeit vagy nem, attól függően, hogy a megírt program mit használ. Remélem jól tévedek(Ez az OS nem OS dolog fura, a mai világ szülötteinek valódi fogalma sincs az OS definíciójáról. Az OS feladatait fel se tudja sorolni az aki a grafikus-csilli-villi rendszerekbe született
. Az OS nem attól OS, hogy felhasználókezelés van benne, hanem ellátja az operációs rendszerfeladatokat, hogy ne kelljen még azt is megírni -> ergo, ezen nem akadok fenn
). Van esetleg valahol valami könnyen emészthető gyorstalpaló a FreeRTOS-hez?
-
-
Janos250
őstag
Erre mindenki mást javasol.
Az én véleményem:
Elsődlegesen a WiFi használata. Szerverre van többféle verzió a neten, mind kicsit más.
Én nem azokat használom, hanem az alapot, tömören a lényege:WiFiServer server(80);
WiFiClient client ;A loopban pedig a lényeg:
client = server.available();
if (client.available()) { // if there's bytes to read from the client,
char c = client.read();Természetesen még jönnek hozzá a sallangok, például, hogy vége akkor van, ha két cr/lf jön egymásután.
client.println(protocolHeader);
client.println(httpHeader);
client.print(body01);A végén:
client.stop();
Ezt így alapszinten használom. Ha valamelyik kész httpserver kezelőt használod, az egyszerűbb, de nekem ez kényelmes, és rugalmas.
Olyasmi, mint a PHP, hogy írod azt, amit a WEB lapodra akarsz tenni.Aztán ott van az OS, a freeRTOS, amire sokan mondják, hogy igazából nem is OS, mert pl. nincsenek benne userek.
Ezzel az esetek zömében nem kell foglalkozni, nem kell, hogy a user lássa.
Ha párhuzamosan akarsz taskokat futtatni, akkor vagy a szabványos C++ módon teszed, és az OS eldönti, melyik magra teszi:thread szal1(helloWorld1);
thread szal2(helloWorld2);
szal1.join();
szal2.join();A join akkor kell, ha be kell várni az adott szál befejezését,
vagy kreálsz neki külön taskot, például:
xTaskCreate(
readTempr,
"homersekletOlvas",
5000,
NULL,
6,
&homeroTaskHandle
);Én ezzel például olvasom a hőmérsékleteket mindentől függetlenül a "readTempr" függvénnyel, és belerakom globális változókba, ezért nincs szükség paraméterekre, azaz NULL nullpointer. Itt szokott egy kis gubanc lenni annak, aki először használja, mert ide a paraméterekre (pl töm, struktúra) mutató pointert írunk, de az xTaskCreate void típusú pointert kér, ezért kényszerítéssel voidosítani kell, majd a függvényben ismét kényszeríteni az adott típusra. Ha el akarod dönteni, hogy melyik magra tedd, akkor azt is megadhatod. Én például szeretem az ilyen mellékes dolgokat a 0-ás magra tenni, mert ott fut magas prioritással a WiFi kezelés, az üresjáratokban pedig az én "mellékes" függvényeim, egymástól függetlenül. Például amit az előbb írtam, abban végtelen ciklus van. Beolvassa a hőmérsékleteket, beleteszi globális változóba, vár egy időt, majd újra olvas. Ilyen esetben a wait az nem tényleges várakozás, hanem a többi tasknak adja át a vezérlést. Mivel a hőmérsékletek byte-ban vannak, nem kell semmiféle zárás, hogy ne akkor olvasson az egyik, amikor már az adatok felét átírta a másik, és akkor hülyeséget kapjon, de ha több byte-os az adat, akkor kizárás szükséges..
Aztán célszerű a rengeteg hardver perifériát kipróbálni.
-
dzz
aktív tag
Sziasztok!
Beszereztem egy LilyGO-T-SIM7000G panelt, de eddig még nem volt esp a közelemben (illetve igen, de nem programoztam). Szeretném a lehetőségeit kihasználni, pozíciót lte hálózaton szerverre feltölteni, esetleg telemetriát a saját állapotáról vagy kap egy gyorsulásmérőt, de ez még képlékeny. Nem vagyok nagy programozó, néha kisebb dolgokat csinálok arduinoval és linux alatt scriptelek, néha egy kis C, de nem hivatásom a programozás.
A kérdésem az lenne, hogy mi az amivel érdemes egy esp-32-n ismerkedni? Arduino keretrendszeren gondolom menni fog, de mi van a freertos-el meg a micropythonnal? Mennyire használhatóak ezek rajta? Érdemes ezeken a vonalakon keresgélni? Esetleg van még valami érdekesnek tűnő OS szerű projekt amit érdemes megnézni? Teljesen hobbyprojekt lesz, az idő mellékes tényező, szívesen ismerkedem új lehetőségekkel és itt inkább az esp lehetőségei érdekelnek, nem is annyira a pontos board lehetőségei. -
-
Tomika86
senior tag
válasz
Tankblock #17341 üzenetére
Írtam, hogy van egy oled kijelző, ami a panelból ki van vezetékkel vezetve kb 60cmre a fő paneltől.
Arra gondolok akkor ezt külön venném a többitől, talán ez foglalja le leginkább a buszt, az u8g2 könyvtárral és kiiratásokkal.A többi pedig maradna a mostani buszon, közel az esp32höz. Eeprom, io bővítő, adc, giroszkóp.
Jól gondolom?
Köszi -
Tomika86
senior tag
válasz
Tankblock #17339 üzenetére
[link]
Megszakítás 2 bemenete marad az esp32őn.
Csak a többi menne erre a bővítőre.
Mit jelent a gyorsan kell?
Bemenetek:
Számláló nullázás, olajnyomásgomba figyelés, fékfolyadék kifogyott, 2 tartalék.
Kimenetek:
Hűtőventilátor
Izzítás
VilágításEgyiknek sem kell megszakítással kapcsolni.
Az aggaszt, hogy az i2c vonalon van több dolog, ezek nem fognak belassulni vagy bármi romlás lesz?
Pl analóg kiolvasás Ads7828 icvel ciklikusan történik. Eeprom olvasás/írás
Oled kijelző ciklikusan van írva folyamatosan
Giroszkóp is folyamatosan van olvasva
Busz 400khzre van állítva, csak 2,7kohm van az sda és scl buszon.
Eddig működik minden -
Tankblock
aktív tag
válasz
Tomika86 #17338 üzenetére
Ha olyan típusút választasz akkor igen.
Amit néztél annak is több verziója van, oylat nézz ami a 1.8V - 5V működik.
Csak Pull-up lehet húzni, ha pull down kell azt kívülről szükséges megoldani.
Van benne interrupt ami hasznos.Sima ledek, optók, stb működtetésére simán. Ha gyorsan kell akkor csakis SPI al.
-
-
válasz
Tomika86 #17333 üzenetére
Persze, hogy maradhat, csak figyelj, hogy azokat a lábakat jó irányba húzd. Kimeneteket úgy kell tervezni, hogy figyelembe veszed a default állapotát, ha kell, invertálod. Ha csak feltöltésnél okoz gondot, az a könnyebb eset, mert ha egyszer beépítésre kerül, gondolom már nem nagyon fogsz rá feltölteni.
-
Tomika86
senior tag
válasz
Tankblock #17332 üzenetére
Igen, expaner kellett volna, de ezért nem tervezném újra a panelt, ha maradhat. Ez még mindig az autós műszerfal 😀
Van sd kártya spi buszon, van i2c, uart2, 3 kimenet, 6 kimenet, can transreceiver is 2 láb.Gpio2 lehúzva tökéletesen működik eddig, gpio12 is működik.
Csak az érdekelne, hogy hosszú távon jó e ez így?
Köszönöm -
Tomika86
senior tag
válasz
Tankblock #17330 üzenetére
Szia
GPIO2 most lehúzva földre működik (feltöltés is)
GPIO15 szabad, ahogy néztem az se a legjobb választás valamelyik helyett
GPIO12 pedig 1kohm-al sorban az optocsatoló diódája.GPIO12 okozhat gondot így? Kimenetet kapcsolok vele optoval
GPIO2 maradhat így?Sajnos minden láb el van használva
De eddig működtek ezek, csak most a 2es miatt nem ment -
Tankblock
aktív tag
válasz
Tomika86 #17329 üzenetére
Szia
nézd meg hogyan is használod, ahogy nézem pont belenyúltál abba a 2 lábba amik a boot meghatározzák:
GPIO2 must also be either left unconnected/floating, or driven Low, in order to enter the serial bootloader.
GPIO12:
If driven High, flash voltage (VDD_SDIO) is 1.8V not default 3.3V. Has internal pull-down, so unconnected = Low = 3.3V. May prevent flashing and/or booting if 3.3V flash is used and this pin is pulled high, causing the flash to brownout. See the datasheet for more details.Mi van akkor ha hanyagolod ezen lábakat?
-
Tomika86
senior tag
Sziasztok!
Ezt az üzenetet kapom program feltöltésnél, egy új panelen.
Mit nézzek meg?
GPIO12 kimenetnek van használva, egy optocsatolót hajt meg.esptool.py v3.1
Serial port COM4
Connecting........___
Chip is ESP32-D0WD (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 30:ae:a4:d4:83:18
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x000defff...
Compressed 17104 bytes to 11191...
A fatal error occurred: Timed out waiting for packet content
*** [upload] Error 2Köszönöm!
-
válasz
tonermagus #17322 üzenetére
"a feszmérő áramkör és az arduino áramköre nem volt közös GND-re kötve"
Azt meg hogy? Úgy nem is működhetne az egész.
-
And
veterán
válasz
tonermagus #17322 üzenetére
Itt egy lehetséges és igen általános védőáramkör: [link]. A graetz híd felesleges (meghamisítaná a mérést), viszont az ellenállásosztó a mérendő tartomány miatt nyilván nem hagyható el a linkelt megoldás bemenetéről. Arra ügyelj, hogy a kontroller analóg bemenete felől nézve a forrásimpedancia - az Rs ellenállás plusz a rajzon nem szereplő feszültségosztó tagjainak párhuzamos eredője - lehetőleg ne legyen nagyobb 10 kΩ-nál.
-
tonermagus
aktív tag
válasz
razorbenke92 #17323 üzenetére
Maradnék a passzív alkatrészeknél.
Azokban valahogy jobban bízom -
válasz
tonermagus #17322 üzenetére
Mindenképpen csak passzív elemekkel szeretnéd kiegészíteni az Arduinot?
Nekem erre a felhasználásra első körben egy SPI-on kommunikáló izolált IC jut eszembe. Ott nem lesz gond a visszatáplálással, és talán olyat is találni, aminek van polaritásfüggetlen verziója.
-
tonermagus
aktív tag
Sziasztok!
Tudtok valami jó példát feszültség mérő áramkörre?
Arduino-val szeretnék ~7-20V-ig DC feszt mérni analóg porton.Bolond biztosat szeretnék, a delikvens két vezetéket kap (piros-fekete) és ha fordítva dugja be akkor se süljön meg, illetve ha kikapcsolja az Arduinot attól még a feszmérő áramkör része él, az analóg portra feszültség esik, ez is okozhat gondot. Ezt eddig feszültség osztó ellenállásokkal és graetz híddal oldottam meg. De hátha van egyszerűbb, pontosabb megoldás...
Pl. a graetz híddal az volt a gond, hogy ha a graetz hid GND-jét és az Analóg portra vezetett VCC-t mértem össze akkor pl. 2V-ot mértem, ha az arduino GND-jét mértem az analóg porttal akkor meg 2,4V-ot mértem. (a feszmérő áramkör és az arduino áramköre nem volt közös GND-re kötve)
-
leveesoft
friss újonc
Sziasztok,
Van valakinek tapasztalata NRF24L01-es kommunikációval?
Átolvastam rengeteg leírást, azt gondolom, hogy értem, de mégsem működik a teszt program.
Mi lehet a hiba? Illetve hogy lehetne kideríteni, hol a probléma?
Adó:#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // CE, CSN
const byte address[6] = "00009";
void setup() {
radio.begin();
Serial.begin(9600);
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
}
void loop() {
radio.stopListening();
const char text[] = "Your Button State is HIGH";
radio.write(&text, sizeof(text));
Serial.println(text);
delay(20);
}Vevő:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // CE, CSN
const byte address[6] = "00009";
void setup() {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, address);
//radio.setPALevel(RF24_PA_MIN);
}
void loop() {
radio.startListening();
if (radio.available())
{
while (radio.available())
{
char text[32] = "";
radio.read(&text, sizeof(text));
}
}else
{
Serial.println("Not Receiving !!!");
}
}Köszönöm a segítséget!
-
quigon
tag
Megvan és ebben már benne van minden időzóna. HTML file-t miként tudok az esp-re feltölteni?
Talán rájöttem.
-
quigon
tag
Ezek szerint nem.
-
quigon
tag
A kód feltöltési ideje tavaly december, viszont a javítás tegnapi.
Letöltöttem de ezeket a sorokat nem láttam sehol.Átnéztem mind a kettő kódot és az új meg a régi között 12 sor eltérés van.
Itt a javításban lényegesen több. Nem annyival kellene a kódban változni? -
válasz
quigon #17304 üzenetére
Igen! Itt lehet követni a változtatásokat.
Azért előtte, biztos ami biztos, mentsd el a régi kódot, mert, ahogy írta, már nincs meg neki a hardver, nem tudta kipróbálni, hogy megfelelően működik-e a módosított kód, így ha vmi gond van, vissza tudsz térni az előző verzióhoz. -
quigon
tag
Akkor ez csak afféle magyarázat, hogy mit javított?
-
quigon
tag
Sziasztok!
Segítséget szeretnék kérni. Megcsináltam ezt az órát [link] ami tökéletesen működik. A baj, hogy code-ban nincs benne az európai időzóna és emiatt visszaáll bizonyos időközönként pl a Hawaii időre. Az alkotó küldött nekem javítást [link] , de én nem értek a programozáshoz így nem tudok mit kezdeni vele. Gondolom be kellene az eredeti kódba illeszteni. Megpróbáltan de az ellenőrzés hibával végződik.
Esetleg valaki megoldaná ezt a problémát nekem? A feltöltése már nem okoz gondot.Előre is köszönöm.
Új hozzászólás Aktív témák
Hirdetés
- Iphone 15 Plus 128GB Pink Dobozos 12 Hónap Garancia
- Samsung Galaxy A13 64GB, Kártyafüggetlen, 1 Év Garanciával
- A Panasonic Toughbook CF-54 i5-5300u i5-6300u TN, IPS touch Budapest, MPL Foxpost
- Csere-Beszámítás! Prémium vizhűtéses számítógép! I9 11900K / RTX 3090 / 64GB DDR4 / 1TB SSD
- Bomba ár! Lenovo ThinkPad T15 G1 - i5-10GEN I 16GB I 256GB SSD I 15,6" FHD Touch I Cam I W11 I Gari!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged