-
GAMEPOD.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
-
Janos250
őstag
IRLB4030, ha nem fake-et küld a kis kínai.
Én használom őket, tényleg igen jók, de kaptam már olyat is, ami félig nyitott ki, zárt le, és olyan forró lett, hogy megégette az ujjam. Mindkét fajtát Aliról, de sajnos már én sem tudom azonosítani, melyik eladó küldött jót, pedig még nekem is kellene. Vannak akik több ezer Ft-ért árulják darabját, de én párszáz forintosakat vettem, abban i van tökéletes.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Ha nem fordítva kötöd be a tápfeszt, vagy nem kap nagyobb feszt 5V-nál, nem szabad, hogy tönkremenjen. Az ESP32 GPIO feszültsége elég neki, biztonságosan, hibázás nélkül kezeli.
A programhoz nem tudok hozzászólni, mert én saját programot írtam rá.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Igen, arról van szó. Való igaz, hogy az egy bika, de nekem 48 V-on kell 8-10 A, így én azt használom, az van a fiókban.
A másikat nem ismerem, ha valakinek van vele tapasztalata, írja le, én is kíváncsi vagyok rá.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 Tomika86 #19502 üzenetére
Hú, ezt így nem tudom áttekinteni, ezért lehet, hogy badarságot kérdek, de akkor bocs.
ESP32-n van hardware bemenő impulzus számlálás. (Én még nem használtam, de van)
Esetleg azzal?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 lanszelot #19597 üzenetére
Én is a PID szabályozást javasolom, ha van rá energiád.
Ha nincs, akkor csinálhatsz "fapados PID" :-) szabályozást kézzel.
P: arányos, azaz, amikor még távol vagy a célértéktől, akkor erősen fűtöd, majd amikor közeledsz, akkor már kevésbé
D: derivált, azaz, ha azt látod, hogy gyorsan melegszik, akkor egy kicsit lassabban fűtöd, mert másként nagyon túlszalad
I: integrál, célértéktől való eltérések összegzése, mondhatnám átlag. Ha azt látod, hogy folyamatosan egy kicsit a célérték alatt van, akkor egy kicsit jobban fűtöd, vagy fordítva.
Nézd meg az alábbi ábrákat, ha érdekel az elmélete:
https://www.eet.bme.hu/~mizsei/mikrorejegy/The%20MEMS%20Handbook(Complete)/0077_PDF_C12.pdf
12.7, 12.10 ábra
Az SSR az "bedobozolt" triak, biztonsági szempontok miatt inkább azt használd, mint a meztelen triakot! Jól nézd meg a típusát, hogy milyen a vezérlő fesz, mert többféle létezik.
Mellesleg, vigyázz a 240 V-os fűtéssel, mert a 240 nagyot tudni ütni!Nekem, amikor kicsit módosítanom kellett egy készüléket, ahol a fűtés 240-ről toroid trafóval volt megoldva, és 80-100 V körül működött, azt mondtam, hogy 48 V fölött nem vagyok hajlandó bármiféle változtatást csinálni rajta, mert olyan szépen süt idekinn a nap, benn a rács mögött meg nem.
Vettem Aliról egy 240/48 V AC/DC tápot (bár erről is a Highway to Hell jut az ember eszébe), középen megcsapoltam a fűtőszálat, így már 48V is megtette a magáét. FET PWM-mel vezérelem.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Ismét előkerült egy fűtésszabályozási dolog ESP32-vel.
Mivel a jómúltkor megtanítottatok a range slider használatára, átvariáltam egy kicsit, hogy demónak (talán) alkalmas legyen, és felteszem ide. Nem Githubra, vagy egyébre, mert a változók neveit átírtam magyarra. Miért szeretem a kezdőknek szánt demót így csinálni? Azért, mert ha magyar az azonosító, azonnal tudja első rápillantásra is, aki a kezébe veszi, hogy azt a nevet szabadon adhatjuk neki.
Jobbat írni szabad!!!!!
Kicsit hosszú, de - mivel szöveg - talán nem terheli nagyon a memóriát.# define IPharmadikSzama 0 // router fuggo
# define IPnegyedikSzama 30 // olyat, ami nem utkozik massal
#include <string>
#include <WiFi.h>
using namespace std;
// PWM minta leddel
const int ledPin = 2;
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8 ;
const char* ssid = "*********";
const char* password = "*********";
IPAddress ip(192, 168, IPharmadikSzama, IPnegyedikSzama);
IPAddress dns(192, 168, IPharmadikSzama, 1);
IPAddress gateway(192, 168, IPharmadikSzama, 1);
IPAddress subnet(255, 255, IPharmadikSzama, 0);
IPAddress primaryDNS(8, 8, 8, 8); //optional
IPAddress secondaryDNS(8, 8, 4, 4); //optional
char inputCode ;
WiFiServer myServer(80);
uint8_t futesSzazalek ;
const char httpHeaderNull[] PROGMEM = R"=====(
HTTP/1.1 200 OK
Connection: close
)=====";
const char httpHeader[] PROGMEM = R"=====(
HTTP/1.1 200 OK
Content-type:text/html
Connection: close
)=====";
char htmlHeader[] PROGMEM = R"=====(
<!DOCTYPE html>
<html lang = hu >
<head>
<meta charset="UTF-8">
<title>Minta csuszkára</title>
<style>
.futesContainer {
text-align: center;
}
</style>
</head>
)=====";
char body[] PROGMEM = R"=====(
<body>
<div class="futesContainer">
fűtés százalék: <span id="FutesSzazalek"></span>
<br>
<input type="range"
id="FutesSlider"
min="1" max="99" value="50"
oninput="FutesSzazalek.innerText = this.value"
onchange="servernekElkuld('F',this.value)"
>
</div>
<script>
/*megallas utan az ertek kuldese a szervernek: */
servernekElkuld= function(keszulekKod,mitKuldErtek) {
var futesXML = new XMLHttpRequest();
futesXML.open("GET", keszulekKod+"="+mitKuldErtek, true);
futesXML.send();
}
/*kezdoertek kiiras: */
document.getElementById("FutesSzazalek").innerHTML = document.getElementById("FutesSlider").value;
</script>
</body></html>
)=====";
void setup(void) {
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: ");
Serial.println(WiFi.localIP());// this will display the Ip address of the Pi which should be entered into your browser
myServer.begin();
// PWM minta leddel
ledcSetup(ledChannel, freq, resolution);
ledcAttachPin(ledPin, ledChannel);
Serial.println("setup lefutott");
} ; // end setup
void loop(void) {
string aktualisSor = "";
char elsoSor[50];
uint16_t karakterszam = 0 ;
uint16_t sorokSzama = 0 ;
unsigned long elozoIdoMilliSec= 0;
const long timeoutIdoMilliSec = 1000; //in milliseconds (example: 2000ms = 2s)
IPAddress tavoliIP ; // = uint8_t tavoliIP[4]
WiFiClient myClient = myServer.available(); // Listen for incoming clients
if (myClient) {
tavoliIP = myClient.remoteIP() ;
// printf("tavoli IP: %d.%d.%d.%d\n",tavoliIP[0],
// tavoliIP[1],tavoliIP[2],tavoliIP[3]);
elozoIdoMilliSec= millis();
aktualisSor = "";
// printf ("aktualisSor1 = %s\n",aktualisSor.c_str());
while (!myClient.available()){
if ( (millis()- elozoIdoMilliSec) > 100 ) {
tavoliIP = myClient.remoteIP() ;
Serial.println(tavoliIP) ;
myClient.flush() ;
myClient.stop() ;
printf ("megszakitva\n");
return;
} ; // if ( (millis()- elozoIdo) > 100 )
} ; // while (!myClient.available())
while (myClient.connected()
&& ( (millis() - elozoIdoMilliSec) <= timeoutIdoMilliSec) ) {
if (myClient.available()) {
karakterszam++ ;
char c = myClient.read();
// Serial.print(c);
aktualisSor += c;
if (c == '\n') {
if (aktualisSor.length() == 0) {
break;
printf (" ures sor \n");
}
else {
sorokSzama++ ;
if ( sorokSzama == 1){
aktualisSor.copy (elsoSor, aktualisSor.length(), 0);
elsoSor[aktualisSor.length()] = 0 ;
};
aktualisSor = "" ;
} ; // end else (if(c == '\n'))
} ; //end if (c == '\n')
} ; // if (myClient.available())
} ; // while (myClient.connected()
inputCode = elsoSor[5];
switch (inputCode) {
case ' ':
printf("IP: %d.%d.%d.%d bejelentkezett, vagy frissített\n",tavoliIP[0],
tavoliIP[1],tavoliIP[2],tavoliIP[3]);
myClient.println(httpHeader);
myClient.println(htmlHeader);
myClient.println(body);
break;
case 'F':
char futesSzazalekChar[2] ;
futesSzazalekChar[0] = elsoSor[7];
futesSzazalekChar[1] = elsoSor[8];
futesSzazalekChar[2] = 0; // terminator
futesSzazalek = stoi(futesSzazalekChar);
myClient.println(httpHeaderNull);
printf("kuldo IP: %d.%d.%d.%d\n",tavoliIP[0],
tavoliIP[1],tavoliIP[2],tavoliIP[3]);
printf (" F=%d\n",futesSzazalek);
// PWM minta leddel
futesszabalyozasMinta () ;
break;
default:
printf (" ismeretlen jott, valami hiba van\n");
break;
}; // end switch (inputCode)
myClient.flush();
myClient.stop();
while (myClient.available()){
delay(1) ;
}; // while (myClient.available())
} ; // if (myClient)
delay(50);
} ; // end loop
void futesszabalyozasMinta (){
// PWM minta leddel
ledcWrite(ledChannel, futesSzazalek/100.0*255);
} ;
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 its_grandpa #19678 üzenetére
Köszi, teljesen igaz, de már nem tudom állítani.
Valóban a routereken a mask harmadik számát általában nem lehet állítani, de ha lehetne, akkor is normális esetben a 255 a logikus, bár én azokon a routereimen, amin lehet állítani, 0-t állítottam be, célszerűségi okokból. De - így első ránézésre, különösebb átgondolás nélkül - úgy tűnik, hogy "véletlenül" 50-el is működne, bár elég idétlen alhálózati szegmensek jönnének ki.
Mellesleg járt már a kezemben olyan router is, ahol az IP harmadik száma egy teljesen idétlen szám volt, de a 0 azt is kivédi.IPAddress subnet(255, 255, IPharmadikSzama, 0)
helyett természetesenIPAddress subnet(255, 255, 255, 0) az általában jó,
de, ha az illető TUDJA, HOGY MIT CSINÁL (!!!!!!), válasszon olyat, ami neki jó.Köszi mégegyszer!
[ 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 vargalex #19681 üzenetére
Offba teszem, mert hosszú lett. Amit feltétlenül jegyezzen meg mindenki, ha ezt elolvassa: kizárólag a saját hálód adatai alapján állítsd be a címeket!
"A subnetben a 0 nem véd ki semmit"
De! Kivéd.
Tételezzük fel, hogy megjött kettő darab vezetékes IP kamerád a kici óccóktól.
Ha szerencséd van, és vagy a rajta lévő címkéról, vagy a netről megtalálod, hogy az egyik IP címe mondjuk 192.168.0.10, a másik meg mondjuk 192.168.1.4.
akkor, ha a routered maskja 255.255.255.0, akkor az vagy a 192.168.1. ..., vagy a 192.168.0. ... tartományt látja, egyszerre mindkettőt nem. Tehát csak az egyik kamerát tudod kezelni, ahhoz, hogy a másikhoz is hozzáférj, át kell állítanod a tartományt a routereden.
Viszont, ha a mask harmadik száma 0, ahogy a példában írtam is, akkor mindkettőt látja, nem kell semmit állítanod a routeren.
Természetesen nem teszünk közzé olyan programot, ahol a user beállíthat pl. 50-et harmadik számként, akkor sem ha véletlenül úgy is működik.
"Utóbbi esetben lesznek olyan IP-k amik eléréséhez az eszközöd nem szeretne a gataway-on keresztül menni."
Természetesen marhaság ilyen maskot használni, de ha valakinek olyan hibbant ötlete támad, mert most látott hálót először, hogy 50-et ad meg, akkor számoljunk egy kicsit. Ha így fejben jól számolom, az 0x32, azaz 0011 00010, és ugyanez igaz az IP-re is. Ha mondjuk a másik IP-d 192.168.50.100, akkor ha a két IP-t maszkorbálod a maszkkal, akkor bizony megegyezik, vagyis nyugodtan belekürtölhetsz a drótba, hogy "hé, fiúk, kié ez az IP, küldje el a MAC címét, mert okosságokat akarok neki küldeni." Ha a keresett IP harmadikja, olyan, hogy nem egyeznek meg, akkor elküldi a 192.168.50.1-re. Persze lehet olyan IP is, amire megegyezik az 50-ben lévő nullák miatt, és akkor vakarhatja a fejét, hogy mit akart ez az ember, aki így szervezte meg a hálót.
Persze, aki annyira ért hozzá, hogy 50-et ad meg mask harmadikként, az egyébként is könnyen bajba kerülhet, mert nem mindenütt a tartomány legalja a gateway, eléggé általános a fordítottja is, hogy a tartomány legtetejét használjuk kijáratnak a világ felé.[ 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 Blasius #19703 üzenetére
Ennyiből nem látom át, de nem az a baj ugye, hogy "máshol is elérhetõ kell hogy legyen:", nincs volatile, hogy ne optimalizáljon a fordító?
volatile char receivedChars[numChars];
Továbbá - nem tudom mitől receive, tehát valahonnan jön - ahhoz is kellhet idő. Ehhez viszont Aryes javaslata a megoldás[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
"Mi az a 24"
Kétféle mask megadás terjedt el:
Az egyik (eredeti), hogy a mask 32 bitjében az első valahány bitet "folyamatosan" 1-re, az utána következőket pedig 0-ra állítod. Ezt használja pl. a windows
Másik, hogy /valamennyivel adod meg, hogy a mask első hány bitje egyes. A UNIX alapú rendszerek ezt használják, és ez persze jobb, mert nem lehet pl. a maskban mondjuk 50-et megadni, bármilyen kezdő is hálózat témában az illető.
A szabály a következő:
Van a Te IP címed, és van az, akivel dumálni akarsz.
A maskkkal mindkettőt bitenként logikai ÉS-eled. Azaz mindkettőben kinullázod azokat a biteket, ami a maskban 0.
Ha az így kimaskolt két cím "maradéka" megegyezik, akkor ugyanazon az alhálón, "dróton" van a két eszköz, azért küldesz egy broadcast (mindenkinek az alhálón szóló) üzenetet,
amivel megkérdezed, hogy kié az az IP cím. Ha valakié, akkor az válaszként elküldi a MAC címét, mert az alhálón nem IP, hanem MAC szerint kommunikálsz majd.
Ha senki nem válaszol, akkor levonod azt a következtetést, hogy nincs ilyen bekapcsolt gép -> hibajelzés. Ha valaki válaszolt akkor az küldi a MAC címét, és indulhat MAC cím alapján a kommunikáció. Ha a két maszkolt cím nem egyezik meg, akkor a gatewaynek (kapu a világ felé) kell küldened, és az ő dolga, hogy megkeresse, hogyan tovább, mert akkor az az állomás nem a Te alhálódon van.
Régen, amikor még nem a csillagpontos topológiát használtuk általánosan, hanem a busz topológiát, ott egyetlen koax kábelre voltak sorban felfűzve a gépek, akkor az szemléletesebb volt, mert akkor ami egy kábelen volt, az volt egy alháló.
Aztán, mivel egy gépen több alkalmazás is csatlakozhat a nethez (pl. két megnyitott Firefox), valahogy meg kell különböztetni, hogy ami válasz jön, az melyik FF-hez menjen. Ehhez az állomásod egyetlen IP címét még "kiegészíted a gépen belül még 2 bájttal", ennek a neve a port, amit a PHP átnevezett, ha jól emlékszem sessionra. Hogy kevesebben értsék meg, miről is van szó. Mivel az IPv6 már rengeteg IP címmel dolgozik, ott már az egy gépen belül is jut mindenkinek külön IP, ezért az IPv6-ban nincs port.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 Blasius #19703 üzenetére
Az is lehet, ha bármi miatt (pl.) interrup, thread több szálú a program futása, akkor mutex ( lock() unlock() ) kéne használni. Nekem az utolsó sor is gyanús, hogy mi van akkor, ha előtte/közben/utána hajtódik végre valami kódrészlet, akár interrupttal.
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 Blasius #19708 üzenetére
Bocs, nem tudom milyen kontrollert használsz. ESP32-n lefordul.
A volatile azt jelenti, hogy ha egy változót nemrégiben használt a processzor, akkor annak a tartalma a cache-ben van még, és ha nincs volatile, akkor onnan kivehető. Ha van volatile előtte, akkor minden egyes használatkor az eredeti helyőről kell beolvasni. Ez akkor létszükséglet, ha "valaki más " (pl. másik szál, interrupt) is változtat a változó értékén. Ilyenkor lehet figyelni pl. arra, hogy ha egy vektorba rakjuk az értékeket, és a foglaltságot növeljük, akkor mi történik, ha a kettő között kéri a program (pl. interrupttal) valamelyik értéket. A legősibb, hogy addig letiltjuk az interruptot, a korszerűbb meg a mutex, hogy nem engedjük, hogy másik szál használja.
Amit linkeltél, ott nem látok bajt a sorrendiséggel, vagy párhuzamos hozzáféréssel.[ 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 Blasius #19716 üzenetére
Én nem látok benne hibát. Viszont most döbbentem rá, hogy én a Serial.begin után mindig teszek egy delay(1000)-t, de már fogalmam sincs, miért.
Valami itt van róla:
https://forum.arduino.cc/t/delay-for-serial-print/954782
Nem látok benne kivetni valót, én legfeljebb az if-eket Case-el oldottam volna meg, mert az jobban áttekinthető, de ugyanarra fordítódik.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 gordonfreemN #19751 üzenetére
Én úgy gondolom, hogy azokat a kódokat, ami még valamikor valakinek hasznára válhat a rá kapott magyarázatokkal együtt, azokat érdemes ide berakni. Nem kép, ami rengeteg helyet foglal, hanem szöveg.
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 Tomika86 #19820 üzenetére
Nem ástam bele magam az ESPAsyncWebserver rejtelmeibe, nem is tervezem, mert én szeretem "gyalog" megoldani a dolgokat.
Ennek ellenére - mivel a kíbicnek semmi sem drága - azért leírom, hogyan próbálnám
Én így próbálnám meg:t.open("GET","/nextion_update",true)
t.send()
vagy:t.open("GET","/nextion_update="+e.target.result,true)
t.send()
bár annyira nem bogarásztam végig, mi az a e.target.result, gondolom valami érték, amit küldeni akarsz.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 #19828 üzenetére
Nem tudom, mennyire érthető, mert a sajátot az emberfia nem tudja megítélni, de itt
https://prohardver.hu/tema/arduino/hsz_19675-19675.html
próbáltam írni egy demót.
Más, persze, de van egy input. Igaz, hogy az is range, de input<input type="range"
.
.
.
onchange="servernekElkuld('F',this.value)"
>
servernekElkuld= function(keszulekKod,mitKuldErtek) {
var futesXML = new XMLHttpRequest();
futesXML.open("GET", keszulekKod+"="+mitKuldErtek, true);
futesXML.send();
}
Ezzel valami ilyesmi érkezik meg
GET F=26 ......[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Én annak idején a pointerekbe keveredtem bele, és el is hajítottam a C könyvet. Szerencsére a C++ -ban már kevesebbet kell használni. Igyekszem is - ha csak egy mód van rá - elkerülni a pointereket. Mivel pointer = tömb, így van is rá lehetőség. A tömb neve a pointer, a tömb[index] pedig a pointer + index. Ahogy a pointernek bármilyen - értelmes - értéket adhatunk, ugyanúgy a tömböt is rádefiniálhatjuk bármire, pl. akár a processzor perifériáinak hardver memóriájára is, akár többféleképp is, hogy ha úgy tartja úri kedvem, akkor uint8_t - ként, vagy uint32_t -ként érem el. Ugyanez megoldható a struktúrával is, az is bárhova definiálható a memóriában, bármilyen más néven használt mezőre is.
Sokkal kisebb a hibalehetőség, mint pointerezni. Mindamellett arra se kell vigyázni, hogy a new által létrehozott felszabadításra kerüljön, mert másként, idővel baj lesz. (Bár ezt már az okospointerek tudják, hogy felszabadítják.)[ 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 lanszelot #19910 üzenetére
Én úgy sejtem, hogy ez a CD4066-nak megfelelő egyszerű analóg kapcsoló, ami egy egészen egyszerű áramkör, nincs rajta mit programozni (nem is lehet).
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Kíváncsivá tettetek ezzel az attiny85-el :-)
Srácok, ez drágább, mint az ARM bluepill!
https://vi.aliexpress.com/item/1005003169244854.htmlAz amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz lanszelot #20035 üzenetére
Ne delay-el old meg, hanem egy max6675 olvasás után tárold el a ms értéket, és csak akkor olvass, ha az aktuális ms, és a letárolt közti különbség nagyobb egy megadott értéknél. A gomnyomást meg állapotban tárolhatod, és ha állapot is, ms is jó, akkor alvasol.
Ha egyszer átállsz ESP32-re, akkor ez egyszerűbb lesz.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 Wolfram #20171 üzenetére
Ezért nem használom én a többféle http fv. egyikét sem. Mivel egyszerű, magam írom meg hozzá kezelést.
Ha minden kötél szakad, akkor be kell tenni a fv-t a .ino mellé, esetleg át is nevezni, azt includolni, mert abba akkor tehetsz magadnak átmenetileg kiíratást, hogy mi a nyűgje.
Az ESP32 16 darab klienst tud kezelni. Nem forduhat elő, hogy többet nyitsz meg, mert még a régiek is élnek, mert nem kaptak választ?
Nincs benne olyan lehetőség, hogy csak akkor get-elj, ha van is ot valaki, aki várakozik?
Próbáld meg kiíratni az FD-jét, ha túlszalad a 63-on, akkor ez a baj.[ 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 Wolfram #20173 üzenetére
Van olyan, hogy:
bool connected(void);
int available();
Meg kellene próbálni, ezeket használni.Az FD-t meg le lehet kérdezni:
int fd()
[ 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 Wolfram #20171 üzenetére
Lehet, azt is nézni kéne, hogy a
http.begin(url);
milyen eredményt ad.
Ha az FD negatív, nem sikerült megnyitni, ne akarj get-elni, ha 48 körüli, akkor minden OK, ha 63-nál tart, akkor baj van, tűl sokat egyszerre megnyitni.[ 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 Wolfram #20199 üzenetére
"Hogy lehet ESP32-n nanosecond-ot /system_get_time()/ dátummá alakítani? "
Az biz' macerás lesz!
1. a 80 Mhz-es perifériális órajelet számlálja (ha az, amire én gondolok)
2. időnként túlcsordul -> átfordul
3. tudni kell valami kezdő időpontot, onnan tudod számolni
Én régen így oldottam meg, lehet, ha ma újra használnám, már másként csinálnám:
http://arduinouser.hu/esp32/ccount/ccount.txt
Ez persze csak a túlcsordulást/átfordulást kezeli, ettől még nem lesz dátum.Elvileg ez létezik, de még nem próbáltam
std::string s = date::format("%F %T", std::chrono::system_clock::now());[ 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 Janos250 #20200 üzenetére
Hopp, nem fogadta el programkódként, de közben meg lejárt a szerkesztési idő.
A kisbetűs stringet ne a Serial.println-nel írasd ki![ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Én már nagyon rég használtam rotary encodert, de én úgy emlékszem, hogy a pergést nem idővel, meg ilyesmivel küszöböltük ki, hanem a változást csak akkor szabad változásnak tekinteni, ha nem ugyanaz a csatorna változik, hanem a másik. Ez kiküszöböli a pergést.
Vagy valamit nagyon rosszul értelmezek?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 lanszelot #20306 üzenetére
Én úgy gondolom, olyan nincs, hogy kétszer egymás után ugyanaz a csatorna változzon úgy, hogy közben a másik nem változik.
https://howtomechatronics.com/tutorials/arduino/rotary-encoder-works-use-arduino/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 lanszelot #20315 üzenetére
Esetleg ezt is érdemes lehet megnézni, bár nem egy túlkommentelt program.
https://prohardver.hu/tema/arduino/hsz_9926-9926.htmlAz amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz fpeter84 #20350 üzenetére
Most nem tudok részletesen elmélyedni a dologban, de nagyon érdekes project.
Az ESP32-n ne csinálj új HardwareSerial példányt (new), mert a Serial-ek már eleve adottak. Serial, Serial1 ...
(HardwareSerial.cpp)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 fpeter84 #20364 üzenetére
Korábban én is terveztem ilyet csinálni, de - mint sok más - ez is csak terv maradt. A fő ok az volt, hogy sikerült Aliról olcsón olyan csatit beszereznem, ami legálisan működik a laptopra tett szoftver ingyenes verziójával. A legfontosabbakat kiírja, de egy részének csak a kódját, szövegben nem, de az meg a neten megtalálható.
Így elült a projekt, de érdekel, mire jutsz vele!Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
ESP32 + SIM800
ESP32 3.3 V, azzal nincs gond, de a SIM800 az 4V-os, és nem megy 3.3-ről, az 5V-ot meg nem bírja el. Viszont STABIL, és 2A (peek) kell neki. Ezeket Li akkukhoz illesztik, de én nem akarok akkut pluszba betenni.
Kinek milyen ötlete van, hogyan csináljak lehetően egyszerűen 4V, 2A-t? LDO-t nem találok 4V-ra, pedig az volna a legegyszerűbb.
DC/DC elég stabil ehhez vajon?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 Tomika86 #20398 üzenetére
Az a gondom, hogy nem tudom, elég stabil-e hozzá a DC/DC. Régebben is említett itt valaki aggályokat, hogy inkább LDO-t használ. Nekem is van olyan tapasztalatom, érzékeny hőmérséklet mérésnél a DC/DC nem jó.
LDO-hoz létezik valami olyan buhera, hogy 4V-ot hozzak ki belőle?Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Köszi, azt hiszem, valami ilyesmi lesz. Ilyen DC/DC-m van pár, de nem is kell a 3 potis, elég az 1 potis is, mert pl. áramkorlát nem kell.
Vagy tényleg 3 potis, és akkor az "indokolatnul nagy kondi", egy Li akku lesz, ami állandóan rajta lesz a töltőn, és az áram lekapcsolásakor is működik egy darabig.
Egyébként egy riasztó része lesz.
A mai "olcsó" kínai kamerák zöme is tudja az emberi alak felismerést, valamint nem csak mailre, hanem riasztó szerverre is tud küldeni egy karaktersorozatot TCP-n.
Ez a szerver egy ESP32 + SIM800 lesz, ami megcsörgeti a zsebemben lévő (buta) telefont, amivel telefonálni szoktam. Nem veszem fel, mert akkor ingyenes. Erre előveszem a táskából az okostelefont, bekapcsolom, és megnézem neten a kamerát, hogy a sok gyerek közül melyik az, amelyik megint le akarja verni kalapáccsal a vasszekrényről a lakatot.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 lanszelot #20424 üzenetére
Kíváncsiságból megnéztem ez a MultiFuncShield-et.
Sikerült olyan példát találnod, amire azt írják, hogy ÍGY NE!
Itt is leírták már párszor, hogy az isrCallBack() legyen a legrövidebb. Erre itt egy példa, ami mindent vizsgál, mindent csinál az ISR-ben. Persze, szegény ember vízzel főz, szegény kontrollerhez bonyolult szoftvert írunk, de a mai kontrollereken azért ennél már többet tudnak a hardverek, nem kell így csinálni.
Továbbá, ha már így csinálták meg, illet volna egy olyan függvényt beletenni, ami lekérdezve megmondja, hogy befejeződött-e az előző feladata, azaz jelen esetben beep-je, hiszen ez az ISR rutin a dolog jellegéből adódóan nem reentrant, azaz nem olyan, hogy futás közben egy másik szál megszakítsa, és újra elkezdje végrehajtani, majd miután ő befejezte, visszakerül a vezérlés az eredetire.
Itt persze alapfilozófiák ütköznek: mivel kezdjen a kezdő? Egyszerű, régi kontrollerrel, vagy modernebbel. Persze - némi artistamutatvánnyal - a régin is megcsinálható hasonló dolog, mint a korszerűbbön, de ez holt tudás lesz, mert idővel úgyis korszerűbbre áll át.Gimnázium első osztályában politechnika órán én is készítettem fémfűrésszel, és kézi reszelővel kalapácsot. Akkor ez egy alapnak számított. Ma inkább azt mondanám, hogy szívatás volt. Még kb 20 évvel ezelőtt is hallottam valakitől, hogy volt, ahol még akkor is csináltatták. Meg lehet persze így is csinálni, de CNC géppel könnyebb.
Én annak a híve vagyok, hogy kezdő is a korszerűbb dolgokkal kezdje, hogy ne holt információkat tanuljon meg, mint ez az interrupt kezelés a MultiFuncShield programjában, mert soha nem fogja így csinálni a későbbiekben. Ha csak nem mazochista.
[ 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 lanszelot #20426 üzenetére
Az ilyen multishieldek alapvetően jók, sok minden van rajtuk. Ha nem a gyári programját használod, akkor valóban jó lesz sok mindenre.
Viszont idővel majd bizonyára átállsz az UNO-nál korszerűbb lapra, és akkor látod majd, mennyivel egyszerűbb lesz az életed, nagyjából ugyanannyi pénzből.
Breadboard:
Én ezért csináltattam az ESP32-mhöz panelt, amin sok minden rajtavan, és ha lehet, azt használom. Terveztem már a neten fennlévő, egészen jónak tűnő panelt is csináltatni, de egyelőre az még elmaradt. A 10 db. panel volt 5 $ (0.5 $ /db. , ha 10-et csináltattam.) igaz, hogy 3-4-nél többet nem használok, a többi megy a szemetesbe, de így is sokat segít. Bár a szállítás sajnos elég drága.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Pl. így hirtelenjében valami hasonló. Lehet persze, szebben is, de maradjunk az eredeti átírásánál.
uint8_t inChar[packetSizeMax] ;
uint8_t i = 0 ;
while (LoRa.available()) {
inChar[i] = (char)LoRa.read());
Serial.print((char)inChar[i]));
i++ ;
// Serial.print((char)LoRa.read());
}
Aztán, amikor már tudod, hogy hol kezdődik, akkor vagy substringgel kiszeded, vagy rádefiniálsz egy másik tömböt arra a területre, ahol van (erre már írtam példát korábban). Én az utóbbit szeretem, de tökmindegy.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 Wolfram #20481 üzenetére
Ha gondolunk egy kódra, akkor egy jóra gondolunk, de neked valamiért nem az van.
Amiket előtte be kell állítani, azokat jól állítottad be? Ezért kellene a tényleges programot látni addig a sorig, ahol megáll.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 Wolfram #20492 üzenetére
Az az antenna elég gyanúsan néz ki. A képen össze van kötve, nálad meg, mintha nem volna. Nincs rajta valahol egy másik antenna csatlakozó, hogy vagy külső antennával, vagy, ha összekötöd, akkor a belsővel lehet használni?
[link][ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
-
Janos250
őstag
Én már találkoztam olyan SONOFF 4CH szerkentyűvel, amin bizony fordítva van felcímkézve. Pár hete ismét hozta az illető, mert elfelejtette, hogy mondtam neki a fordított bekötést, és nem tudott rá feltölteni.
Erre mondta itt valaki, hogy pedig így sokkal logikusabb feliratozni, hogy a Tx-hez amit kötni kell ahhoz Tx legyen írva. Mondtam neki, hogy ha átmész az autópályán az egyikről a másikra, és kimész a kijáraton, akkor a másikra a kijáraton akarsz felhajtani?
Régebben - ha jól emlékszem - itt is volt valaki, aki morgott, hogy miért nem így van feliratozva, hogy mihez kell kötni, mert ez így csak szivatás, semmi logika benne.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Ez itt OFF, de azért elmondom:
Manapság tervezett, sorozatgyártásra szánt panelnál van valami különös oka, hogy UNO-ra tervezted?
Pl. a méretre SOKKAL KISEBB, SOKKAL OLCSÓBB, SOKKAL TÖBBET TUDÓ STM32 blue pill ugyanolyan kiforrott panel, az UNO programok gyakorlatilag változtatás nélkül futnak rajta. Én mindenkinek azt javasolom, hogy ha MOST vesz panelt, háromszor is gondolja meg, hogy tényleg UNO-t akar-e venni! Igaz, hogy azzal indult az azóta de facto szabvánnyá vált Arduino rendszer, és a net ezzel van tele, de ma már relatíve drága, keveset tud, és nagy. Hiába töröm a fejem, egyetlen olyan szempontot sem tudnék felsorolni, ami miatt UNO lenne a kiválasztott.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Új hozzászólás Aktív témák
- -59% HP EliteBook x360 830 G7:i5 10310U,16GB,256GB,vil.MAGYAR bilI.,IR,13.3" Touch,100%sRGB,WWAN 4G
- Sony PS5 (1116A) + 2TB Samsung SSD bővítés a gyári 825GB mellett, két karral + venom töltőhub
- HP Laptop 15-fd051ne - ÚJ - 15,6" FullHD IPS notebook - Core i5-1335U, 8GB, 512SSD, Win11
- Brother DCP-L2532DW wifis, multifunkciós lézernyomtató
- HP Pavilion x360 14-ek Convertible - ÚJ - 14" TOUCH notebook - i5-1235U, 16GB, 512SSD, Win11
- Intel Core I5-8600
- Akció! Dell Optiplex 3080 Micro / I5-10500T / 16GB DDR4 / 256GB SSD /Windows11 Matrica BESZÁMÍTOK
- ASUS Radeon RX 5700 XT Dual EVO 8GB GDDR6
- Videoton AB 1010 autó hangszóró pár eladó a képeken látható állapotban. Mindegyik hangszóró működik,
- Ultra ritka Sound Blaster 1.5 2.0 klón Anchor Media Concept retró 8 bites ISA PC hangkártya
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs