- Yettel topik
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Magisk
- Mobil flották
- Egy szenzor, két zoomkamera: újraírta a Huawei a mobilfotózás történetét
- Bemutatkozott a Poco X7 és X7 Pro
- Xiaomi 11 Lite 5G NE (lisa)
- Samsung Galaxy A56 - megbízható középszerűség
- Google Pixel topik
- Samsung Galaxy A55 - új év, régi stratégia
-
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
-
válasz
zsolti_20 #11698 üzenetére
Ez meg hogy jön ide?
A filename annyi lehet, amekkorára előtte definiáltad. Ha többet írsz bele, azzal olyan megmagyarázhatatlan hibákat okozol, mint most is.Én többet nem segítek, amíg nem írod be az egész kódot. Bár szeretek nyomozni, és már tudom is, mit követtél el.
-
zsolti_20
senior tag
-
válasz
zsolti_20 #11695 üzenetére
Miért nem mutatod meg az egész kódot!?
A "masodik" változó hol van definiálva? Jól látszik, hogy itt:printf(filename, "%s%02d%02d%02d.TXT",konyvtar2, now.day(),now.month(),now.year());
a "filename" változóba, amely egy 12 elemű több, beírsz egy 4 karakterrel hosszabb szöveget, ami azt jelenti, hogy felülírsz egy másik változóhoz tartozó memóriaterületet. Az a csoda, hogy egyáltalán lefut a kód. -
-
DigitXT
félisten
válasz
zsolti_20 #11692 üzenetére
Valószínűleg arról van szó, hogy csak mutatót definiáltál. Nem foglalva neki
megfelelő mennyiségű memóriát, írsz bele, a vakvilágba. Esetleg egymásra
írnak. A C ugye egy típusos nyelv... így nem lehet a kódoddal kapcsolatban
beszélgetni, hogy bemásolod egy részletét + állítasz valamit, hogy mit ír ki,
ám azt nem mondod meg, hogy melyik változóra, mikor, és mi az a változó.Szívesen segítenék, de ez alapján szerintem nem lehet. A konyvtar pl. egy
char[9]? És beleraktad, mondjuk hogy "konyvtar" az inicializálásakor? -
válasz
Gergosz2 #11691 üzenetére
Én ma hallottam először az ESC-ről, utána kellett gugliznom, de nem az jött le, hogy kimondottan a BLDC motorok vezérlőjét hívják így, megkülönböztetésképpen a h-hídtól, amit h-hídnak neveznek.
Visszatérve az eredeti kérdésre, a TB6612FNG "csak" egy h-bridge, semmi más. Esetleg lehet még mellette i2c chip + frekvencia generátor, mint pl a wemos d1 mini motor shield. -
zsolti_20
senior tag
válasz
DigitXT #11690 üzenetére
Nem tudom mit ronthatok el.
DateTime now = RTC.now();
filename[0] = (now.year()/1000)%10 + '0'; //To get 1st digit from year()
filename[1] = (now.year()/100)%10 + '0'; //To get 2nd digit from year()
filename[2] = (now.year()/10)%10 + '0'; //To get 3rd digit from year()
filename[3] = now.year()%10 + '0'; //To get 4th digit from year()
filename[4] = now.month()/10 + '0'; //To get 1st digit from month()
filename[5] = now.month()%10 + '0'; //To get 2nd digit from month()
filename[6] = now.day()/10 + '0'; //To get 1st digit from day()
filename[7] = now.day()%10 + '0'; //To get 2nd digit from day()sprintf(masodik, "%s%02d%02d%02d.TXT",konyvtar, now.day(),now.month(),now.year());
sprintf(filename, "%s%02d%02d%02d.TXT",konyvtar2, now.day(),now.month(),now.year());És kiíratásnál az egyik ezt mutatja:
konyvtar/03092019.TXT
Másik pedig ezt:
konyvtar2/03092019.konyvtar/03092019.TXTAzt szeretném hogy kiíratásnál ez legyen:
konyvtar/03092019.TXT
konyvtar2/03092019.TXTDe valamiért egybe olvasztotta őket.
-
zsolti_20
senior tag
válasz
DigitXT #11687 üzenetére
És meglett a probléma!!!
Ez volt a helyes sprintf:
a myName a könyvtár neve pl asd/
sprintf(filename, "%s%02d%02d%02d.TXT",myName, now.minute(),now.month(),now.year());
Köszi mindent.
Nem hittem volna, hogy egy ilyen viszonylag egyszerű dologgal eleszek kb 10 órán keresztül.
-
zsolti_20
senior tag
válasz
DigitXT #11687 üzenetére
Akárhogy próbálom ezzel is ugyanúgy lefagy az egész.
char data[100];
char* myName = "asd/";
char filename[] = "00000000.TXT";
char* Name = filename;sprintf(data, "%s%s", myName,Name);
if (writeFile.open(data, O_RDWR | O_CREAT | O_AT_END))
{
Serial.println("WWW");
writeFile.close();
}És módosítottam az idő lekérésnél is ahogy írtad.
SZERK.:
sprintf(data, "%s%u", myName,Name);-ra módosítva létrehozza a fájlt fagyás nélkül de a file neve 270 lesz az időpont helyett. OMG?! -
DigitXT
félisten
válasz
zsolti_20 #11686 üzenetére
OMG: nyilván...
De az nem is volt benne az eredeti kódrészletedben...
Bepakoltál 8 db byte-ot egy közelebbről meg nem határozott tömbbe és kalap.
Mivel a print a lezáró nulláig megy, s az nem volt benne, ettől már "fagyhatott":
amiért akkor működik, amikor megadtad neki az inicializáláskor a fájlnevet, az
az, hogy az implicit belerakja a lezáró nullát. Tudom, hogy elsőre nem annyira
triviális a karaktertömb / mutató kérdés, de ez alapvetően C, és nem Arduino...Szerk: sajna a pastebint nem tudom megnézni a céges gépen, ebédszünetben
telefonról néztem, aztán ennyi maradt meg belőle a fejemben. -
zsolti_20
senior tag
-
válasz
tonermagus #11678 üzenetére
Szénkefés motorhoz hogy használsz te ESC-t?
-
DigitXT
félisten
válasz
zsolti_20 #11679 üzenetére
Nézd, programozni nem lehet csak ennyire elmesélős szinten. Nem tudjuk,
pontosan mit csináltál azzal a sprintf-fel, mibe akartál vele írni mit... Azt se,
hogy debug esetén mit látsz: az alap C programozást célszerű megismerni.
Kifagy az egész? Már mi? Az arduino? Végtelen ciklusba kerül a kód? Nincs
lefoglalva előre a memória? Nem nullára végződik a karakter sorozat? -
zsolti_20
senior tag
válasz
DigitXT #11676 üzenetére
Tudtam, hogy nem szabad szabad ennyire örülni.
Beépítettem a főkódba és most megvan a sprintf, de amint használni akarom, kifagy az egész. Ha változó helyett megadok neki egy stringet pl "kecske.TXT" akkor lefut a kód. Talán a konvertálásnál kellene valamit csinálni? Nem megfelelő neki a string ilyen formában?
-
tonermagus
aktív tag
Sziasztok!
Egy szénkefés DC motorhoz használt ESC-et jól sejtem hogy teljes egészében lehet helyettesíteni egy L289N vagy TB6612FNG-el? Ezekben is van BEC, tehát táplálhatóak róla a szervók és Arduino ugye?
Mert akkor nem költök 7.000 Ft-ot egy ESC-re ha egy 1.200 Ft-os TB6612FNG-is meg lehet oldani ugyan azt...
-
Janos250
őstag
válasz
zsolti_20 #11675 üzenetére
Vagy innen:
http://www.cplusplus.com/reference/cstdio/sprintf/Hogy ismételjem önmagam:
"amikor írunk egy programot, nem úgy kell gondolkodni, hogy hogyan írjuk ezt "Arduinóban", hanem, hogy hogyan írjuk ezt C++-ban"
https://prohardver.hu/tema/arduino/hsz_11576-11576.htmlRá-rácsodálkoznak arduinosok egy-egy C++ osztályra, függvényre, hogy ezeket nem, vagy ritkán írják az Arduino tutorialokban, pedig tudja.
-
DigitXT
félisten
válasz
zsolti_20 #11672 üzenetére
Az csak elírás, hogy egyszer kis string, másszor meg nagy String? Csak mert
nem ugyanazt jelentik. A String az egy objektum, annak van "+" művelete. Míg
a string az nem objektum: talán így le sem fordul a kód, ha kisbetűvel írtad...A "filename" amúgy micsoda? Azt hol definiáltad, és hogyan kap értéket?
Na igen a 8.3 is befigyel, de így nehéz debugolni, hogy csak a fél kód van meg. -
zsolti_20
senior tag
válasz
DigitXT #11669 üzenetére
Ez is fura, hogy a a filename változó nevén létre tudja hozni, de ha ugy adom meg hogy:
string var1 = filename;
string var2 = "kecske";
string x = var1 + var2;akkor a string x-el sem hozza létre a fájlt.
Persze, itt a kód részlet:
String var1 = filename;
String var2 = "kecske/";
String comb = "";
comb = var2 + var1;
//Check file name exist?
int str_len = comb.length() +1;
char char_array[str_len];
comb.toCharArray(char_array, str_len);
Serial.println(str_len);
Serial.println(char_array); -
zsolti_20
senior tag
-
DigitXT
félisten
válasz
zsolti_20 #11668 üzenetére
Ilyenkor célszerű felütni valami referencia dokumentációt, pl. mondjuk ezt: [link]
bool SdFat::exists ( const char * name )
Test for the existence of a file.
Parameters:
[in] name Name of the file to be tested for.Returns:
true if the file exists else false.Vastagítás tőlem: ennek nem lesz jó a String objektum, ha amúgy azt használsz:
szerencsére erre is van megoldás, konkrétan átkonvertálja karaktertömbbé. -
DigitXT
félisten
válasz
zsolti_20 #11661 üzenetére
Mint írtam, az a vessző a paramétereket választja el, tehát ahogy a hibaüzenet írja:
az a hívás nem érvényes, hogy átadnál neki egy const char [5] és egy char [13]-at.
Ott egyetlen paramétert vár, tehát előtte össze kellene fűzni, pl. valami ilyesmiképp SD.exists(concat("asd/",filename))Csak most nincs előttem, hogy ez a concat megvan* natív C-ben, vagy az Arduino
féle Strings objektum kreálmánya, amit amúgy nagyon fikáznak ebben a cikkben...*: ha nincs, akkor persze meg lehet írni, de ez nem Arduino-specifikus dolog.
-
zsolti_20
senior tag
válasz
DigitXT #11660 üzenetére
De nem értem miért működik a kód ha nem adok meg neki mappát. Amint próbálom megadni neki hogy az asd nevű mappában keresse a változót csak ezt a hibakódot kapom:
"no matching function for call to 'SDLib::SDClass::exists(const char [5], char [13])'"viszont ha kiveszem az asd-ot és csak a változó nevét adom meg akkor hibátlanul működik.
-
DigitXT
félisten
válasz
zsolti_20 #11659 üzenetére
Bizonyára. A trükk az, hogy amit leírtál, az két paraméter megadása,
logikus, hogy nem működik, ha az adott függvény egy paramétert vár.
Össze kéne fűzni egyetlen változóba a dolgot, s azt átadni neki. -
zsolti_20
senior tag
Lehetséges egy mappában lévő fájl leellenőrzése, hogy létezik-e az SD kártyán? A csavar az egészben hogy a fájl neve egy változó.
"if (SD.exists("asd/",filename)) {"
Ezt próbáltam használni de sajnos nem működik. az "asd" lenne a mappa neve a filename pedig a fájl neve ami benne van.
-
tonermagus
aktív tag
Halihó!
Lehet hogy kicsit túlbonyolítom a dolgokat, hátha tudtok benne segíteni:
Sajnos még sok mindenem nincs meg hozzá, így csak elméleti szinten próbálom összerakni:Motorcsónak projekt.Flysky távirányító 6 csatornával. A vevő egység 6 csatornáját rákötöm rákötöm az arduinora 6 pontjára bemenetként feldolgozásra. Az arduino-t 2 output lábát pedig összekötöm kettő ESC signal portjával. A két ESC-et megtáplálom egy LiPo-ról és 1-1 ESC-re rákötök 1-1 BLDC motort. Az egyik ESC-ről pedig megtáplálom az arduino-t 5V-on.
Kérdés hogy hibás-e valahol ez az elméleti elképzelés? 1 lipo-t hogy/mivel tudok összekötni két ESC-el?
Illetve szeretnék még 2 servo-t is meghajtani. Azt ebben az elképzelésben elég csak rákötni az arduino 2 pwm-es portjára? Vagy azt meg kell hajtani valamivel?
-
zsolti_20
senior tag
válasz
Gergosz2 #11655 üzenetére
Olyasmit keresek ami nem ez a kattanós verzió, hanem inkább olyan a gomb lenyomása mint a billentyűzet.
Ennél a gombnál a probléma az hogy a 4 pontos ahol rögzítve van a fém része egy idő után felválik és cserés lesz a gomb.
Bár jobban megnézve lehet az általad linkelt nem is a kattanós verzió, szóval megfelelő lesz.
-
zsolti_20
senior tag
Valaki talált jobb megoldást a sima nyomógombra? Olyasmit keresek mint ez, csak egy gombosat. Létezik ilyesmi?
-
_q
addikt
Köszi, így már megy. Akkor most jön az összeollózása a kódnak.
(#11649) gyapo11
Ha nem tudom a nevét előre, akkor van a gond. Erre kell a wifimanager, mert nem tudom direkt módon minden router nevét és jelszavát megadni. Ki tudja 10 év múlva milyen routerem lesz. Persze lehet az is, hogy a jelenleg nevét és jelszavát adom majd meg minden jövőbeli routernek, de ha még se így szeretném akkor akkor direkt módon nem tudom előre megadni ahogy írod. -
gyapo11
őstag
Nincs gyakorlatom a wifizésben, csak logikai alapon, ha beírod az eepromba a lehetséges routerek ssid-it, és addig próbálgatsz kapcsolódni, amíg meg nem találja a helyeset, az nem jó? Vagy írni egy programágat, amivel be lehet írni a helyes ssid-t az eepromba, és utána futtatni a kapcsolódási kísérletet. Persze az ssid-t az eepromból kell kiolvasni.
-
Gergosz2
veterán
válasz
zsolti_20 #11647 üzenetére
Persze, miért ne. Valami olyasmit csinálnék, hogyha "A" akar adatot küldeni "B"-nek, akkor először megpróbálja direktbe, ha nem megy neki akkor meg a repeater-en keresztül. Ha meg az se éri el akkor meg vagy "A" még messzebb van vagy vmi más baja van.
Szóval lehet, csak le kell programoznod.
-
zsolti_20
senior tag
Üdv emberek! Van két eszközöm amit NRF24L01 modullal használok. Elég gyakran kilépnek vele a hatótávból és nem tudnak kommunikálni egymással. Szeretnék egy repeatert építeni közéjük. A és B eszköz van. A "B" eszköz mindig fixen van egy helyen. "A" eszközt mozgatják. Lehetséges úgy repeatert közéjük építeni, hogy ha az "A" eszköz a "B" eszköz közelébe érjen akkor hagyják ki a repeatert?
-
-
-
_q
addikt
Így kezdődik pedig:
#if defined(ESP8266)
Tehát ha nincs definiálva akkor ESP32 könyvtárakat importál.
Amit linkeltél 8266-ra van, ha le akarom fordítani akkor hasonló hibát dob:
In file included from D:\DownloadTemp\WiFiManager-development\examples\OnDemand\OnDemandConfigPortal\OnDemandConfigPortal.ino:7:0:
C:\Users\T\Documents\Arduino\libraries\WIFIMANAGER-ESP32-master/WiFiManager.h:36:22: error: 'const char HTTP_HEAD []' redeclared as different kind of symbol
const char HTTP_HEAD[] PROGMEM = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/><title>{v}</title>";
^
In file included from C:\Users\T\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\WebServer\src/WebServer.h:30:0,
from C:\Users\T\Documents\Arduino\libraries\WIFIMANAGER-ESP32-master/WiFiManager.h:21,
from D:\DownloadTemp\WiFiManager-development\examples\OnDemand\OnDemandConfigPortal\OnDemandConfigPortal.ino:7:
C:\Users\T\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\WebServer\src/HTTP_Method.h:10:3: note: previous declaration 'HTTPMethod HTTP_HEAD'
HTTP_HEAD = 0b00100000,
^
Multiple libraries were found for "WiFi.h"
Used: C:\Users\T\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\WiFi
Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
Error compiling for board ESP32 Dev Module. -
_q
addikt
Akkor lehet én értettem félre, de nekem kicsit másnak tűnt a linkelt minta kód.
Wifimanageren belül az OnDemandConfigPortal.ino lenne az ami nekem kell ha nem tévedek a sok mintakód közül.
A hiba:
In file included from C:\Users\T\Documents\Arduino\libraries\WIFIMANAGER-ESP32-master\examples\OnDemandConfigPortal\OnDemandConfigPortal.ino:14:0:
C:\Users\T\Documents\Arduino\libraries\WIFIMANAGER-ESP32-master/WiFiManager.h:36:22: error: 'const char HTTP_HEAD []' redeclared as different kind of symbol
const char HTTP_HEAD[] PROGMEM = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/><title>{v}</title>";
^
In file included from C:\Users\T\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\WebServer\src/WebServer.h:30:0,
from C:\Users\T\Documents\Arduino\libraries\WIFIMANAGER-ESP32-master\examples\OnDemandConfigPortal\OnDemandConfigPortal.ino:11:
C:\Users\T\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\WebServer\src/HTTP_Method.h:10:3: note: previous declaration 'HTTPMethod HTTP_HEAD'
HTTP_HEAD = 0b00100000,
^
Multiple libraries were found for "WiFi.h"
Used: C:\Users\T\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\WiFi
Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
Error compiling for board ESP32 Dev Module. -
-
_q
addikt
Szerintem ez nem az amire én gondoltam.
Alapból van egy ESPNow kapcsolat, így a fő ESP amin fut a webserver az AP módban van. Ez így megy is, viszont a routerre fel kell csatlakozzon az NTP lekérés miatt és mivel a router hálózatán keresztül akarom elérni a webservert. Na most a routerre csatlakozás nekem direkt módon, a kódba beírva megy. Ha viszont egy másik routerre akarok csatlakozni, mert vagy máshol van az eszköz vagy routert cserélek, akkor be kell írnom a router új SSID-jét, ehhez új kódot kell fordítani és rátölteni az ESP-re.
Van a wifimanager opció ami elvileg ebben segítene, de nem tudom rátölteni az ESP-re mert hibát ír ki rátöltésnél. Ez lenne amit szeretnék, van kép illusztráció is hozzá.
-
-
-
Teasüti
nagyúr
Gondoltam annyit tesz, hogy Non Volatile Storage. De csak tippelek.
Ez Arduino környezetben az EEPROM, vagy ESP-nél annak a szimulációja a ROM-ban.SPIFFS meg amennyire értem egy csatolt partíció, amit futás közben lehet írni/olvasni, mint egy SD kártyát.
Itt lehet letárolni mondjuk a webserver-hez használt fájlokat, ha basic html-nél többre volna szükség. Mondjuk képek beillesztésére, vagy ilyesmi. -
Akkor most én is kérdezek: mi a különbség az SPIFFS és az NVS között? Arduino ide-ben lehet használni az NVS-t? Azt is elő kell készíteni, mint az SPIFFS-et, partícionálással/ a memóriakiosztás beállításával? Vmi jó leírást tudtok ajánlani? Mert gugliztam, de nem sok mindent találtam róla.
-
Konkrét példám sajnos nincs, de ami neked kell, az könnyen összeollózható az ESP32-es Arduino IDE WiFiAccessPoint, NVS flash példákból. Én ezt csinálnám:
1/ Program megnézi, hogy van-e az NVS-ben letárolt AP név.
1/a Ha igen, csatlakozik, profit.
1/b Ha nem, vagy nem tud csatlakozni folyt.
2/ Indít egy saját AP-t.
3/ User megadja az AP SSID-t/pass-t.
4/ Letároljuk NVS-ben.
5/ Visszatérünk 1-re. -
Teasüti
nagyúr
Üdv!
Tud vki Nano-hoz csavaros terminált Pécs környékén, vagy egy-két napos postával?
Köszi! -
_q
addikt
Tud valaki adni minta kódot hogyan tudnám megoldani, hogy egy konfig webes felületen keresztül tudjak az esp32-vel felcsatlakozni a kívánt wifi hálózatra, ahol majd a webserver-t elérem? Jelenleg direkt módon adom meg a wifi elérhetőséget, viszont router csere esetén új kódot kellene fordítanom. WifiManager nem nagyon akar lefordulni.
Csinált valaki már ilyet?
-
válasz
tonermagus #11606 üzenetére
szia! Esetleg bemutató, vagy cikk lesz belőle? Érdekes a téma.Én mindig attól félnék, hogy bent a tó/folyó közepén megy valami tönkre, és ki kell halászni a hajót. Sarkadon láttam ilyen modell hajó versenyt, az jó volt, ott nem a sebességre, hanem az ügyességre mentek rá.
Nálam most a lego kamionos projekt teljesen leállt időhiány miatt, de örülök, hogy a lánctalpas viszont működik továbbra is. Most volt nálam 1 hétig egy normál Lego EV3-as robot, azzal sok időt eljátszottam. Szerintem az arduinós ultrahangos szenzor jobb, mert oldalra is lát valamennyit. -
válasz
tonermagus #11622 üzenetére
Tranzisztor azért kell, mert közvetlenül nem kötheted a motort a uC kimenetére, mert tönkremegy. Nem tud annyi áramot leadni, amennyi a motornak kell, egy kimenet max 40mA-el terhelhető (az Uno-n).
Nekem hiányzik a bázis ellenállás a rajzról. -
zsolti_20
senior tag
válasz
tonermagus #11622 üzenetére
Ahogy látom:
"int pwmPin = 12;
int pot = A0;
int c1 = 0;
int c2 = 0; "a PWM jelet a 12-es lábnál kapja ezért kell a tranzisztor oda. A kondenzátor pedig ha jól emlékszem a magas frekvenciát szűri.
Gergosz2: Arra gondolt az író, hogy pl 13:22:00 van és 4 perc 55mp-t szeretne számolni, szóval történjen valami 13:26:55-nál.
-
Gergosz2
veterán
válasz
balintarduin #11612 üzenetére
Legalább háromszor olvastam el, de még most sem tudom mit akarsz megvalósítani.
-
tonermagus
aktív tag
válasz
zsolti_20 #11614 üzenetére
Nem még, nagyon szépen köszönöm!
Sokat tanultam belőle, és még laikus számára is érthető a nagy része.
Viszont 2 dolgot nem vágok alapvető elektrotechnikai ismeretek hiányában:- Mi célt szolgál az áramkörben a motor elő bekötött Tranzisztor és Kondenzátor?
Csak tippelek, hogy az egyik védi az arduino-t a kisüléstől?
-
zsolti_20
senior tag
Valaki tudja hogy egész pontosan mit jelent ez a sor?
"The MISO line needs to be pulled high (I use 3K ohms to 3.3Vdc). "Hogyan "húzhatom magasra" a MISO-t? Talán a miso-t kell földre húzni egy 3k oh ellenállással?
-
-
gyapo11
őstag
válasz
balintarduin #11612 üzenetére
Kiolvasod az időt az óramodulból, beteszed 6 byte típusú változóba úgy, hogy órák tízesei, órák egyesei, percek tízesei, egyesei, másodpercek tízesei, egyesei. Ezután a millis()-t figyeled, és mindig amikor 1000-rel több az értéke, akkor kivonsz egyet a másodpercek egyeseiből ha még legalább egy az értéke. Ha 0 volt, akkor 9-et írsz bele és eggyel csökkented a másodpercek tízeseit ha legalább egy az értéke. Ha 0 volt, akkor 5-öt írsz bele és eggyel csökkented a percek egyeseit, ha legalább egy az értéke.
Ezt így végigfuttatod az órák tízeseiig, és még léptetsz egy számláló változót is, hogy 295 lépés után, ami 4 perc 55 másodperc befejeződjön a folyamat. Ha nem 4:55-ig tart a folyamat, hanem azt az időt kell elérni, akkor nem számláló kell, hanem minden lépés után összehasonlítani az időt, hogy elérte-e már a kitűzött célt. Esetleg egy vizsgálatot érdemes a visszaszámlálás megkezdése előtt végezni, hogy nagyobb-e a mostani idő mint a kitűzött cél, ha ez lényeges, mert amúgy akár egy napig is tarthat a visszaszámlálás. -
zsolti_20
senior tag
Találtam kettő DC-DC step up-ot. sx1308 és mt3608 melyik az ajánlottabb? TP4056-al töltöm a 18650 3.7v aksikat amik párhuzamban vannak kötve és ez csinálna nekem fix 5v-ot.
-
zsolti_20
senior tag
Szeretnék két alkatrészt lecserélni az egyik projektemben. A tápellátás részét adja.
Jelenleg USB 5V DC Boost Step up-ot használok. Ezen ugye ott az USB csatlakozó. Létezik olyan verzió, ami USB csatlakozó nélkül kapható? Lehet ebből olyat kapni ami tudja az 1A? Ha jól tudom ez csak 600mah-t képes továbbítani.A másik alkatrész az AMS1117 3.3V 800mA ebből is szeretnék olyat ami képes az 1A-t továbbítani.
Az egész áramkör két db 18650-es 3.7v 3000mah akkumulátorról megy amik párhuzamban vannak kötve.
-
zsolti_20
senior tag
válasz
tonermagus #11606 üzenetére
Ezt láttad már?
-
válasz
balintarduin #11612 üzenetére
Real Time modullal lehet visszaszámolni? Vagy hogy próbáltad eddig, ahogy nem sikerült?
Hozzáadsz 4 perc 55 másodpercet az aktuális időhöz, és beállítod alertnek. -
balintarduin
újonc
Sziasztok!
Nekem egy olyan kérdésem lenne, milyen megoldással tudok olyan programot készíteni, aminek annyi a lényeg, hogy egy adott idő pl 04:55 ig számoljon vissza az aktuális pontos időtől.
DS3231 Real Time modult használok. Egyáltalán hogy tudok visszaszámlálást csinálni.Előre is köszönöm a segítséget!
-
válasz
tonermagus #11610 üzenetére
Hát ha csak ki-be kapcsolod, akkor működhet a dolog, de a PWM vezérlés szerintem nem nagyon fog vele működni, csak sípolni fog meg melegedni.
Esetleg ha tolatni nem akarsz vele, hanem elég az előre irány, akkor próbáld meg, hogy nem hídba kapcsolod, hanem az egyik félhíd és a föld közé kötöd a motort. Így csak 0,6V körüli veszteséged lesz. Hajó egyébként sem szokott hátra menni.Viszont 4 motort is rá tudsz így kötni.
-
válasz
tonermagus #11608 üzenetére
Kissé elavult már - nem akarok hülyeséget írni, de - ha jól emlékszem ez tranzisztor alapú, és 1,5V körüli feszültségeséssel kell vele számolni, amiket javasoltam pedig fet-et használnak, 0,2-0,6V körüli veszteség van rajtuk.
Annyi hátránya van, hogy magasabb tápfeszültséget kell használnod (min.7V, ekkor kb 5,5V jut a motoroknak). Amiket javasoltam, 2,5V tápfeszültség mellett már használhatóak, így akkus tápláláshoz jobban használhatóak. Az L298N 6V tápfesz alatt nem nyit ki rendesen, csak melegszik, főleg PWM vezérléssel (tapasztalat). Cserébe 2-3A-el tudod terhelni és jó a hűtése. A nagyobb tápfesz nagyobb akkupakkot igényel, ami plusz súly. A vezérlő maga sem kicsi, se nem könnyű azzal a nagy vasdarabbal a hátán, ami a hűtő. -
tonermagus
aktív tag
Wow köszi!
Most még párszor átolvasom hogy értelmezni tudjam, de pl. fogalmam sem volt ilyenekről, hogy feszültségesés, stb... Lesz még minek utána néznem.
Ettől függetlenül az általam megrendelt L298N is tudok dolgozni csak rosszabb lesz a hatékonysága? Sima pici DC motorokat rendeltem hozzá. Ezekkel csak tesztelni akarom a programot (előre-hátra menet, gyorsítás, lassítás). Rendeltem belőlük vagy 10-et, ha esetleg leégetem őket
-
válasz
tonermagus #11606 üzenetére
"3-4 kg-os hajótestet kellene elvinnie"
Attól függ minden, hogy milyen sebességet szeretnél elérni."kérdés az, hogy ezt egy ILYENNEL tudom-e helyettesíteni?"
A linkelt driver kizárólag DC (szénkefés) motorokhoz jó, abból is a nagyobb teljesítményűekhez, magas (min.12V tápfesz) mellett, mivel nagy rajta a feszültségesés. Szénkefe nélküli motorokhoz BLDC vezérlő kell. Ha mondjuk 2S li-po akksiról tervezed a táplálást, kisebb motorokkal, sokkal praktikusabb egy L9110s vagy egy TB6612FNG alapú motorvezérlőt (H-bridge), mert sokkal jobb a hatékonysága. Ha egy-két átlagos 6V-12V DC motor lesz a hajtómű, inkább ezeket használnám, pl.: [link]. Egy ilyennel meg még a pwm meghajtást is meg tudod spórolni, i2c-n keresztül tudod vezérelni. -
tonermagus
aktív tag
Először is köszi szépen mindenkinek a válaszokat!
Szépen haladok a projektemmel. Viszont most a motorokkal kapcsolatban kellene egy kicsit felvilágosítani: létezik ugye szénkefés és szénkefe nélküli motor. Nyilvánvaló, hogy tartósság miatt célszerű lenne szénkefe nélküli motort vennem. Kb. 3-4 kg-os hajótestet kellene elvinnie, szerintetek ekkora súlyhoz min. mekkora motor ajánlott szénkefés és szénkefe nélküli motor esetében? Jah, és ami még fontos, hogy 2 db motort szerelnék be, tehát Tank szerű irányítása lenne...
Illetve létezik szabályzó (ESC) is a motorokhoz. Azt értem, hogy ezzel lehet szabályozni a motor fordulatszámát de kérdés az, hogy ezt egy ILYENNEL tudom-e helyettesíteni?
Mint már mondtam eléggé kezdő vagyok, ezt úgy képzeltem el, hogy attól függően, hogy a távirányítón az analóg kart mennyire nyomom előre az arduino megmondja a ennek a Stepper Motor Driver-nak, hogy mekkora feszültséget adjon a motorokra, így érve el a motor gyorsulását.
Kérdés hogy ezek a szénkefés/nélküli motorok feszültség hatására gyorsulnak-e, illetve ez a stepper motor driver tud-e ilyet szabályozni
-
gazso75
aktív tag
Urak,
Gondolkozom a Golf 5-ösöm autórádiójának okosításán. Nincs benne telefon kihangosítás.
A terv, hogy egy BT lapka erősítővel + mic-al + valamilyen vezérlő ( nano, esp* ). Ha zenehalgatás, vagy telefonálás indulna, akkor a vezérlő egy relével leválasztaná a fejegység hangszórókimenetét, és átkapcsolná az erősítőre. Valamilyen késleltetés kellene, hogy ha mondjuk 5 sec-ig nem szólal meg senki a telefonban, akkor ne kapcsolgassa oda-vissza.
Nemtudom értehető e gondolatmenetem. Foglakozott már valaki valami hasonlóval ? -
ecaddsell
aktív tag
válasz
zsolti_20 #11599 üzenetére
Hatótáv mondjuk 400-500m jelerősség pedig olyan legyen hogy egy fal ne legyen probléma neki.
Ott vanank pl a walkie talkie. Ezeket használnak a security-k a kommunikációhoz. Van köztük kb 1km, teljesen fém az egész épület és mégis tudnak egymással kommunikálni, pedig jelerősítő sincs köztük.Eléggé kevered as dolgokat. Ha normál walkie-talkie-ról (446 MHz-es PMR) beszélünk az már alapból 500mW (és nem max. 100mW mint ezek a távirányítós cuccok) egy viszonylag jó nyereségű antennával (az USA-ban ezt másképp hívják ott FRS=Family Radio Service a neve és ott a szabvány limit is 2W (persze ott kevésbé begyöpösödött emberek szabványosítanak mint az EU-ban).
Amit a biztonságiak használnak az meg mindezeken is jó eséllyel túlmegy simán kb. 5W környéke (USA megfelelője GMRS, megint gyakorlatiasabb hozzáállással szétválasztva a hobbi meg az ipari kategóriát).
Ennek ellenére ha sok a zavaró tereptárgy inkább néhány száz méter az a km.
Nyílt terepen persze simán megvan az 5-10km is...Bár nem fogom minek egy távirányítós hajónak több száz méter (ahova már eléggé nehezen látsz el), de ha ez kell akkor az antennára érdemes fókuszálni. Szóval jó ha a vevő IPEX vagy SMA csatlakozós és e-miatt le lehet árnyékolni és ki lehet venni mint zajforrás az antenna meg lehet irányított (ez az adónak sem árt)...
Egyébként bár nem érint a modellezés téma azt hinném a hajó a legegyszerűbb mert nyílt terep és jól irányítható antenna. -
robohw
aktív tag
válasz
zsolti_20 #11601 üzenetére
Magából az eszközből tudsz repeatert csinálni, ezekből akár egy chain-t is létre lehet hozni, de ha folyamatos adatátvitelre akarnád használni, arról lebeszélnélek, mert büntetés jár érte.
Ennél jobb és legális is, ha WiFi-vel oldod meg. Irányított antennákkal már lehet olyan pont-pont összeköttetést kiépíteni, amely km-eket is áthidal. Persze ehhez rálátás szükséges a két antenna között.
Én csináltam már 8 km-es linket, de tudok 80 km-esről is.
Hát, az enyémnél is elég kemény volt az antennákat ütköztetni, a 80 km-nél nem tudom, hogy sikerült ez nekik
Új hozzászólás Aktív témák
Hirdetés
- Apple Ipad 10.generáció
- Új HP Pavilion x360 14-ek Érintős hajtogatós Laptop Tab 14" -35% i5-1335U 8/512 FHD IPS Iris Xe
- RTX 4080 SUPER,16GB. Ryzen 7 7800X3D, 32 RAM Fury RGB! Garancia!
- Asztali PC , i7 9700K , RX 5700 XT , 32GB DDR4 , 500GB NVME , 1TB HDD
- Dell Inspiron 5406 2-in-1i5-1135G7 16GB DDR4 3200 512GB NVME 14" FHD Érintőkijelző W11Pro
- Ikea Eilif Paraván - Asztali elválasztó
- 126 - Lenovo Legion Pro 7 (16IRX8H) - Intel Core i9-13900HX, RTX 4080 (ELKELT)
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X3D 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- BLUESUMMERS NVMe SSD adapter
- LG 55C3 - 55" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest