- Android alkalmazások - szoftver kibeszélő topik
- Milyen okostelefont vegyek?
- CMF Phone 2 Pro - a százezer forintos kérdés
- Megérkezett a Google Pixel 7 és 7 Pro
- Honor Magic6 Pro - kör közepén számok
- Google Pixel topik
- One mobilszolgáltatások
- Honor 200 Pro - mobilportré
- Magyarított Android alkalmazások
- Hivatalos a OnePlus 13 startdátuma
-
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
-
cog777
senior tag
Sok helyen olvastam, illetve a cegnel ki lett debuggolva.
"When using FreeRTOS, malloc() and free() are not considered thread safe. As a result, it’s recommended that you use pvPortMalloc() and vPortFree() instead."Steps to use FreeRTOS with newlib reentrant Memory Allocation
Szoval 100%-ban hiszem.
A problema hogy sok kulso portolt library csak sima mallocot hasznal pvPortMalloc helyett (tehat ki kell cserelni), illetve ami meg nem tiszta, hogy neha ez sem eleg, ezert kell a newlib-et hasznalni, de ez meg nem tiszta nekem. -
Postas99
senior tag
A hardver jól hangzik de hogy a SPIFFS egy eléggé nyomorultúl használható cucc Arduino 2.0 felett, az valami borzalom.
Egyszerűbb ha circuitpythonban megcsinálom rp2040-el , mert ott lehet pillanatok alatt fájlokat rádobálni a flash-re, az i2S hardver marad, csak a lejátszás lesz másképp megoldva. -
Postas99
senior tag
Csináltam már aurduino nano-s cuccot ami DFPlayer minit vezérelt az azon a panelen levő erősítő egy ilyen projekthez tökéletes.
Ugye az elképzelés hogy leültetek egy padra 5-6-7 babát, és mindegyik dúdolgat magában és pislog random nagyon de nagyon gyorsan... valami creepy cuccot szeretnék csinálni.
Úgy gondolom hogy ha a hang nem is lesz "HQ minőség" talán azt a mércét megüti ami a fiatalok részére még a bef0s@s kategóriát megüti.
Nincs tapasztalatom hogy mi lenne jobb, de hogy még ehhez kezdjek el barkácsolni kondikat és ellenállásokat azért hogy ne ciripeljen a hang i2s dekóder nélkül (mert eddig csak ilyet láttam) akkor inkább mégiscsak betennék egy i2S panelt ami már erősíteni is tud vagy marad a dfmini egy microsd kártyával... ugye 5-6-7 babánál már jobb ha mindegyik elkészült cucc talán ugyanolyan minőségű hangot ad ki.
Mit javasolsz inkább..
Valami ilyen jár a fejemben: -
Janos250
őstag
Erre én is kíváncsi leszek, mert egy egészen más mag van benne. És egy magos. Elvileg a korábbi ESP32 hardver megoldásai zömében bene vannak, de - gondolom - azért nem mennek egy az egyben a másik programjai.
Például, az ESP32-n ugyebár a beépített hardver jelentős része ki van kapcsolva, és egy adott címen, egy adott bitet kell beállítani, hogy ha be akarod kapcsolni, azaz órajelet adni rá. Meg lennék lepve, ha ugyanannak a címnek ugyanazt a bitjét kellene állítani.
Az enyém Kínát már elhagyta, de Magyarországra még nem érkezett meg. remélem, nem lövik ki a Vörös-tengeren.
https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32c3/hw-reference/chip-series-comparison.htmlKözben megnéztem a dokuban.
A perifériák egész más címen vannak, tehát új driverek kellenek rá. -
Wolfram
aktív tag
Viszonylag elterjedt, máshol is ezt használom ha csak úgy be akarok égetni egy-egy képet, ikont, de ez ESP-n katasztrófa.
Cél /lett volna/ az assembly korszakot idéző byte-ok vesszővel elválasztva ábrázolás elkerülése is:
Ilyet nem láttam eddig sehol máshol, ez a kőkorszak csúcsa.
-
Janos250
őstag
"Szerintem a teljes TCP/IP stack implementálva van ESP32-re"
Igen, a teljes LWIP, én még nem találtam hibás működést.
Ha úgy tarja úri kedvünk, akár a C file kezeléssel is használhatjuk.
Megadjuk a szabályok szerint az URL-t, file-ként megnyitjuk, és a szabványos műveletekkel kezeljük, írunk rá, olvasunk róla. -
Undoroid
őstag
Szia!
Köszönöm a tippet, jónak tűnik ez a kis modul!
A következő rendelésemben benne lesz ez a tétel is!
* * *
Az a halvány áramfelvétel elég baráti! Alvó módban mit mutat a szerver, amivel monitorozod a mért eredményeket? Vagy mivel / hogyan dolgozod fel a kapott adatokat? Ez érdekelne...
" esp8266-ot hasznalok, vin-en taplalom "
Az ESP-n található fesz-stabilizátor ennyire nem terheli üresjáratban (alváskor) az akkukat?* * *
Ha megyek Hajdú-Biharba', akkor ezt nyugodtan leverheted rajtam...
* * *
" ...de miért jó mérni a légnyomást? "
Mondjuk a kapott adatokból következtetni lehet a várható időjárásra!
-
lanszelot
addikt
Bocsanat elírtam.
Value -t akartam írni.
Value nincs. Mert value-ra random számot dob.
Az összes szám a távirányítón ugyanazt a számot dobja, a power gomb viszont mást. Vannak gombok amik ugyanazt dobják, de van ami mást. És nem úgy mint a videóban. Ott számsort dob.
És mindig mást. -
-
cog777
senior tag
Nagyszeru, megnezem, koszi.
Tovabba ezt talaltam: https://blynk.io/ ingyenes 2 eszkozig, 7 dollar/ho 10 eszkoz.
Tovabba van mobil app-ja is, gondolom ertesitesekkel. -
Tomika86
senior tag
Ezt megnézem mit tehetek, mert az esp32-ben nincs pontos időm tárolva. akkor maximum azt teszem az x tengelyre, hogy mióta van megnyitva a kapcsolat. Igazából lényegtelen, hogy mikor történt bármi is, csak legyen viszonyítási alap.
Viszont most munkahelyemen kipróbáltam és simán viszi 50ms-et, hiba nélkül. Ezek szerint kliens oldalon se mindegy mi van.
-
Wolfram
aktív tag
-
Azért mondjuk az űrhajók, atomerőművek szoftverei eléggé meg vannak írva.
Persze nyilván igazad van, egy szoftver fejlesztése sosem fejeződik be, csak abbahagyni lehet.
Egy mikrokontroller esetén van az a komplexitás szerintem, amit kis szerencsével még meg lehet írni hiba nélkül, illetve a memory leak-eket el lehet kerülni bizonyos konvenciók betartásával.
-
Annyira nem értem a pointereket, hogy három nap után esett le, hogy mi van a képen.
Mentségemre szolgáljon, hogy elsőre azt hittem, hogy értem, mert más jelentést tulajdonítottam neki.Egyébként valószínűleg az lehet a gond, hogy egy olyan könyvből tanultam (teljesen autodidakta vagyok), ami valahogy rossz nyelvezettel írta le, ami rosszul rögzült, aztán évekig nem használtam, és végül nemrég olvastam egy jó leírást róla, ami végre talán tisztába tette a fejemben a dolgokat.
-
Jó ötlet! Ez esetben a
myMem.put(1000, (float) 60.0);
működhet. Nem kellene a fordítónak hibát jeleznie? 🤔Volt egy oldal, ahol leírták, hogy melyik Arduino boardon melyik adat típus hány bites, de nem találom. Arra emlékszem, hogy az UNO-n a float és a double is egyformán 32bit volt, de a Due-n már biztos nem így van.
-
lanszelot
addikt
----bocsi, nem engedi programkód blokba ------
Ellenőrzésnél dobja, meg se próbáltam feltölteni, felesleges.Arduino: 1.8.18 (Windows 10), Board: "ATmega328PB"
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c: In function 'u8g_spi_out':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:184:3: error: 'SPDR' undeclared (first use in this function); did you mean 'SPDR0'?
SPDR = data;
^~~~
SPDR0
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:184:3: note: each undeclared identifier is reported only once for each function it appears in
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:186:12: error: 'SPSR' undeclared (first use in this function); did you mean 'SPDR'?
while (!(SPSR & (1<<SPIF)))
^~~~
SPDR
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c: In function 'u8g_com_arduino_hw_spi_fn':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:220:7: error: 'SPCR' undeclared (first use in this function); did you mean 'SPCR0'?
SPCR = 0;
^~~~
SPCR0
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:227:2: error: 'SPSR' undeclared (first use in this function); did you mean 'SPCR'?
SPSR = (1 << SPI2X); /* double speed, issue 89 */
^~~~
SPCR
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c: In function 'u8g_arduino_st7920_hw_spi_shift_out':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:102:3: error: 'SPDR' undeclared (first use in this function); did you mean 'SPDR0'?
SPDR = val;
^~~~
SPDR0
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:102:3: note: each undeclared identifier is reported only once for each function it appears in
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:104:12: error: 'SPSR' undeclared (first use in this function); did you mean 'SPDR'?
while (!(SPSR & (1<<SPIF)))
^~~~
SPDR
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c: In function 'u8g_com_arduino_st7920_hw_spi_fn':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:204:7: error: 'SPCR' undeclared (first use in this function); did you mean 'SPCR0'?
SPCR = 0;
^~~~
SPCR0
exit status 1
Error compiling for board ATmega328PB.This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences. -
-
Ilyenkor jövök rá, mennyire csak a felszínét piszkálgatom én ennek az egésznek...
Honnan a fenéből tudja, hogy mivel kell összelinkelődni, ha a setup.h-ba nincs include-olva és még csak nem is egy könyvtárban vannak?
Arról nem is beszélve, hogy pl az initializeScreenAndCamera() 6 fájlban fordul elő, de ezek közül egyik sem a library-ben fordul elő, hanem example fájlok: -
Oké, csak ő most mégis ezt a kódot dobta be, hogy szeretné továbbgondolni, ebben akartam segíteni.
A korábban linkelt másik kód önmagában nem fog működni, csak ha kalibrálja. Abban van egy konstans és egy elsőfokú korrekció, idő alapon integrál (feltételezi, hogy két mérés között más idő telik el).Ha tiszta jelalaknál jól működik, akkor én nem gyanakodnék a nyers adatra, inkább az utófeldolgozás kétséges.
-
A 10bit ADC az 5A méréshatárt 1024 részre osztja. Előjelesen 512-re. Az még 0,01A precizitás.
A gond egyértelműen a számolás menetével van. Ahogy korábban írtuk, a pillanatnyi csúcsok értékéből nem következik egyértelműen a folytonos áramfelvétel.
Itt vannak ezek a jelalakok. Egyértelműen belátható, hogy más más fogyasztás (és ezáltal folytonos áram) tartozik a piros-zöld-kék áramokhoz. A peak-to-peak mégis azonos mindnél, így a számolás ugyanazt fogja adni.
Azért írtam az RMS-t, mert az egy közelítő integrált fog adni a görbe alatti területekre (gyakolatilag kicsi hasábok területei lesznek, melyek magassága a pillanatnyi érték, szélessége a mintavételi idő.).
Kódban ez valahogy így nézne ki:
void Measure()
{
int mAmps=0;
uint32_t RMS=0; //ide jó sok nagy szám befuthat
int RMScount=0;
uint32_t start_time = millis();
int sensoValue;
while((millis()-start_time) < 200)
{
sensorValue = analogRead(CURRENT_SENSOR);
RMS+=sensorValue*sensorValue;
RMScount++;
}
RMS = RMS/RMScount;
RMS = sqrt(RMS);
RMS = RMS * tapasztalatitenyezo; //ha esetleg kéne, a szorzót meg lehet állapítani, talán lineáris is elég
}Egyébként ha akarsz rajta pontosítani, akkor érdemes tesztelgetni, hogy az ADC prescaler felgyorsításával javul e a pontosság. Ugyebár akkor a mérés maga pontatlanabb lesz, de a mérések mennyisége több lesz, így jobban közelíti a függvény alatti területet a pici téglalapok átlaga.
Szerk.: A csatolt kép lemaradt -
JozsBiker
aktív tag
UNO -t és Nano -t használok.
Az első verzióban ezzel próbálkoztam:void getMinMaxValue()
{
int sensorValue; //value read from the sensor
sensorMin = 1024;
sensorMax = 0;
uint32_t start_time = millis();
while((millis()-start_time) < 200)
{
sensorValue = analogRead(CURRENT_SENSOR);
if (sensorValue > sensorMax)
{
sensorMax = sensorValue;
}
if (sensorValue < sensorMin)
{
sensorMin = sensorValue;
}
}
}
Ezt hívtam meg a loop -ból aztán a Min -ből és Max -ból különbséget számoltam és azt szoroztam egy értékkel. Tiszta szinuszos jelalaknál jó is nyilván, csak a fogyasztók jó része nem olyan, ezért szeretném továbbgondolni.
-
-
ViZion
félisten
Ez komplett modul, semmi nem kell hozzá, csak kanócok a a mikrokontrollerhez.
5 V-ra rakd át a kijelzőt, hátha annyi a baja. Vezetékeket ellenőrizd, próbáld másik Wemossal, vagy a Wemoson másik FW-vel. Ha az sem, akkor lehet akár kijelző is hibás, nem szokott, de más cuccal jártam úgy, h a kibontott gyári cucc nem működött (egy okos villanykapcsoló és egy mittomén milyen kapcsoló, ez utóbbi full mechanikus, mégis kuka volt).
Jah, a kijelző lábkiosztást is nézd meg. Ami nekem van, ott a képeken a neten egész más, mint valóságban. Nálam IRL: VCC, GND, SCL, SCA.
-
daninet
veterán
hát ez is ilyen... igen.. gondolom
jobbik félét vettem aliról ezek kis szilikon kábelek nem azok a merev pvc cuccok.
De tényleg bármelyikőtöket érdekli elpostázom így ahogy van a cuccot. Ez nem egy üzleti projekt, egy kibelezett mikró trafójából akarok ponthegesztőt csinálni, az arduino időzíti majd a hegesztést illetve kellene a rotary enkóder, hogy 0-1000ms között kiválaszthassam mennyi ideig pontheggesszen. A kódot meg tudom írni, de ilyen alapvető egyszerű dolgon nem tudok túllépni, hogy ha ezt összekötöm miért nem jó.
Fel tudok még egy tábla csokit meg egy sört ajánlani fizetségnek -
-
its_grandpa
tag
OK, minden számlás bevételem 10%-át megkapod
A napelem.get_termeles lehet jó, viszont a fűtőpanel(ek) max. fogyasztása ismert.
Kell egy logika ami az eltérő méretű és fogyasztású paneleket a termelés függvényében tudja kapcsolni és valamennyire figyeli a hőmérsékletet is. -
polgcsabi
aktív tag
Ott, hogy adott a LED buli (ON OFF) ebből hogyan lesz egy 16-os tömb.
#include <EtherCard.h>
#define STATIC 0 // set to 1 to disable DHCP (adjust myip/gwip values below)
// mac address
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x36 };
// ethernet interface ip address
static byte myip[] = { 192,168,1,80 };
// gateway ip address
static byte gwip[] = { 192,168,1,1 };
// LED to control output
int ledPin10 = 9;
byte Ethernet::buffer[700];
char const page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
"<head><title>"
"Service Temporarily Unavailable"
"</title></head>"
"<body>"
"<h3>This page is used behind the scene</h3>"
"<p><em>"
"Commands to control LED are transferred to Arduino.<br />"
"The syntax: http://192.168.0.XX/OFF or ON"
"</em></p>"
"</body>"
"</html>"
;
void setup () {
pinMode(ledPin10, OUTPUT);
Serial.begin(9600);
Serial.println("Trying to get an IP…");
Serial.print("MAC: ");
for (byte i = 0; i < 6; ++i) {
Serial.print(mymac[i], HEX);
if (i < 5) Serial.print(":");
}
Serial.println();
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0){
Serial.println( "Failed to access Ethernet controller");
}
else{Serial.println("Ethernet controller access: OK");}
#if STATIC
Serial.println( "Getting static IP.");
if (!ether.staticSetup(myip, gwip)){
Serial.println( "could not get a static IP");
blinkLed(); // blink forever to indicate a problem
}
#else
Serial.println("Setting up DHCP");
if (!ether.dhcpSetup()){
Serial.println( "DHCP failed");
blinkLed(); // blink forever to indicate a problem
}
#endif
ether.printIp("My IP: ", ether.myip);
ether.printIp("Netmask: ", ether.netmask);
ether.printIp("GW IP: ", ether.gwip);
ether.printIp("DNS IP: ", ether.dnsip);
}
void loop () {
word len = ether.packetReceive();
word pos = ether.packetLoop(len);
// IF LED10=ON turn it ON
if(strstr((char *)Ethernet::buffer + pos, "GET /ON") != 0) {
Serial.println("Received ON command");
digitalWrite(ledPin10, HIGH);
}
// IF LED10=OFF turn it OFF
if(strstr((char *)Ethernet::buffer + pos, "GET /OFF") != 0) {
Serial.println("Received OFF command");
digitalWrite(ledPin10, LOW);
}
// show some data to the user
memcpy_P(ether.tcpOffset(), page, sizeof page);
ether.httpServerReply(sizeof page-1);
}
void blinkLed(){
while (true){
digitalWrite(ledPin10, HIGH);
delay(500);
digitalWrite(ledPin10, LOW);
delay(500);
}
}
Hozzáteszem: Nem vagyok valami nagy C-s!! Csak néhány hónapja kezdtem az egészet.
Erről az ENC-28J60-as panelről gyér az infó (legalábbis az én felfogásomhoz képest). -
polgcsabi
aktív tag
Új hozzászólás Aktív témák
Hirdetés
- BestBuy topik
- Androidos tablet topic
- Raspberry Pi
- Kerékpársportok
- Brave
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Melyik tápegységet vegyem?
- Android alkalmazások - szoftver kibeszélő topik
- Mibe tegyem a megtakarításaimat?
- Dual Mode-os IPS monitorral adott magáról életjelet a Gigabyte
- További aktív témák...
- Apple iPhone 13Pro 128GB Kártyafüggetlen 1Év Garanciával
- Garmin Fenix 8 Amoled 51mm Sapphire Carbon Gray DLC - Használt, karcmentes
- Nitro ANV15-51 15.6" FHD IPS i5-13420H RTX 4050 16GB 512GB NVMe magyar vbill ujjlolv gar
- Apple iPhone SE 2020 64GB Kártyafüggetlen 1Év Garanciával
- iPad Pro 11 gen 2 + magic keyboard magyar makulátlan új állapot
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! Intel Core i9 14900K 24 mag 32 szál processzor garanciával hibátlan működéssel
- Ne hagyd ki ezt a lehetőséget: Vadiúj Ryzen 7 5800X! Kamatmentes rèszletre is!!
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- SzoftverPremium.hu
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged