- 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
-
gyapo11
őstag
válasz
Tankblock #13398 üzenetére
Milyen régóta kesergek én ezen a pc-vel kapcsolatban. Hello world program 1 MB meg ilyenek, assemblyben 20 byte. Most néztem egy esp32-re épülő okosórát, megy arduino IDE-ből is, de már tolják az arcomba az összetologatós, scratch-re hasonlító cuccot. Akkor már lenne legalább olyan AI, hogy elmesélem neki mit szeretnék, és írja meg. Most vagy programozok, vagy minél kisebb munkával/tudással el akarom érni a célt.
-
gyapo11
őstag
Ha ntfs filerendszer van a wincsin, ajánlom vagy az Everythinget vagy az Ultrasearchöt. Az MFT-ben turkálnak, köröket vernek bármilyen más keresőre.
-
Tankblock
aktív tag
válasz
Janos250 #13396 üzenetére
Google a barátod :-)
Lassan azt érzem, hogy az Arduino library jelen konceptciója mellett az emberek elfelejtenek programozni (Minden plug&play), ezért elmegyünk abba az irányba hogy uPython és mivel a sok egymásra halmozott réteg végett nagy az overload ezért egyre drágább uC kellenek... Pont a lényege fog elveszni az egésznek...
EPS32 hez nem is nagyon használtam Arduino IDE-t, csak 1-2 példa programot használtam.
-
válasz
Janos250 #13396 üzenetére
Nem gondoltam, hogy valaki használja a Windows beépített keresőjét bármire is.
Ajánlom a Total commandert ilyen célokra (is).
Nem Te linkeltél régebben egy oldalt, ahol arduino-hoz készült, újraírt/memóriatakarékos String class-ról írnak? Csak úgy eszembe jutott, hogy régebben szó volt róla, hogy nem ajánlott Arduino alatt a String osztályt használni. -
Janos250
őstag
válasz
Tankblock #13387 üzenetére
Kösz a linket!
Ezt kerestem egy darabig, de a windows keresése class String-re minden olyan fájlt jelzett, amiben mindkettő előfordul, attól függetlenül, hogy nem közvetlenül egymás után.
Én is az operátor overloading írására gondoltam, azért kerestem, de aztán hagytam a fenébe. Nem tudtam a fájl nevet, hogy WString.
Mostanában nemigen volt vele dolgom, de régebben én átálltam a C++ (kisbetűs) string használatára, de valamelyik tagfüggvénye - már nem emlékszem melyik, talán valamelyik konvertáló - nem jól működött az ESP32 aktuális rendszerében. Írták neten, hogy a compilert kell lecserélni, de elég bonyolultnak tűnt, így hagytam a fenébe, inkább használtam a nagybetűs Arduino Stringet. -
Tankblock
aktív tag
"100 k erase/write cycles" a pontos érték. A csatoplt forrásban a wear leveling algoritmus leírása is szerepel.
Forrás : [link]Egy ilyen szép uC elpazarolni.... Inkább ATtiny szériából akár fix külső kristállyal.... és RTC vel is. 8 láb - 2 Vcc, Gnd, 1 Gép érzékelés, 2 i2C RTC hez 1 Rst, 1 LED , 1 gombnak, vagy a resetet használni..... Mazoistáknak ATTiny13A Assemblyben
1K Bytes of In-System Self-programmable Flash program memory
– 64 Bytes EEPROM
– 64 Bytes Internal SRAM
– Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
-
Tankblock
aktív tag
válasz
Janos250 #13379 üzenetére
Szia,
Annyit pontosítanák, hogy a "C string" jelen esetben egy constans char tömb.
const char[4]
lesz. Ami fordítási időben kerül lefoglalásra. Erre próbált meg a kolléga castolni egy String osztályt, és ezért kapott null pointert.Az Arduino String osztály létrehozásakor a const char * ból egy a String osztályban lévő tárolóba másolódik a tömb tartalma.
String::String( const char *value ){
if ( value == NULL ) value = "";
getBuffer( _length = strlen( value ) );
if ( _buffer != NULL )
strcpy( _buffer, value );
}
van = operátor, a definíció szerint az csak String osztályt képes String osztályal hasonlítani.
const String & String::operator=( const String &rhs ){ if ( this == &rhs ) return *this; if ( rhs._length > _length ) { free(_buffer); getBuffer( rhs._length ); } if ( _buffer != NULL ) { _length = rhs._length; strcpy( _buffer, rhs._buffer ); } return *this;}
Forrás : [link]
Jó feladat operátor overload megírása const char * ra
Szerk: code szétcsúszott.
-
Dißnäëß
nagyúr
Na jó, így már más a leányzó fekvése. Emberi léptékben gondolkodtam a "lassú" alatt. Egy ilyen alapvető funkcióhoz természetesen tökmindegy, hány ms alatt történik meg a varázslat, csak léptesse
Én akciósan vettem belőle négyet, harmadáron volt darabja. Kb egy hónapig tartott.. február környékén.
-
válasz
Dißnäëß #13384 üzenetére
$7.90?
Na ebből se fogok nagyon bevásárolni.
"Mert azt írtad, lassú az eeprom írás.
Nincs valami olyasmi, mint egy USB pendrive, hogy kiteszi milliszekundumok alatt - de legyen lassú, akár 1mp is - és kész ?"Dehát a lassú azt jelenti, hogy milliszekundumok alatt történik!
8-10ms, ami - tekintve, hogy μs tartományban gondolkodunk, amikor egy μcontroller sebességéről van szó - lassú. Nem? Legalább 10ms-ig fenn kell tartani a tápellátást, hogy sikeres legyen a művelet. Erre gondoltam. Ettől nemigen kapsz gyorsabbat, esetleg lehet próbálkozni SD kártyával, de szerintem emiatt nem éri meg.
"Nem vagyok nagy szaki, hogy külön wear levelinget írjak, törjem rajta az agyam"
Nem is kell, ott a lib, használd!
Egyébként sem kell újra kitalálni, leírtam a módját, viszonylag egyszerű elven működik.
-
Dißnäëß
nagyúr
Mert azt írtad, lassú az eeprom írás.
Nincs valami olyasmi, mint egy USB pendrive, hogy kiteszi milliszekundumok alatt - de legyen lassú, akár 1mp is - és kész ?Nem vagyok nagy szaki, hogy külön wear levelinget írjak, törjem rajta az agyam, kezdő C++-os vagyok, nem egy sokéves tapasztalatos zseni. Szóval a kóddal lenne gondom, ha még wear levelinget is néznem kell.
Én közvetlen tőlük rendeltem, a DFRobot-ról. Nagyon jó kis kütyük, beváltak. [link] Egész jó tempóban küldték...
(Van Beetle ESP is)
-
válasz
Dißnäëß #13382 üzenetére
Ja, ez cuki. Hol kapni ilyet?
Miért kell alternatív hely? Egy ATmega32U4-ben 1kB eeprom van, ha jól tudom. Egy cella kb. 1000x írható. Ha az általam írt wear levelinget alkalmazod, vagy még egyszerűbb, ha 15 bit elég az időpont tárolására, a legfelső bittel meg lehet oldani a wear levelinget (van hozzá külön library is ám!), akkor akár 512000 alkalommal írhatsz az eepromba, nem létezik, hogy ne legyen elég.
-
válasz
Dißnäëß #13380 üzenetére
Szia! Ha nem fontos a nagy pontosság (mondjuk naponta 5-10 perc eltérés nem okoz problémát) akkor nem kell az RTC, nyugodtan támaszkodhatsz a belső órajelre. Ha nem használsz megszakításokat, akár önmagában a millis() is használható időmérésre.
A táp megszűnését úgy értetted, hogy valamelyik pin-jén keresztül figyeli, és érzékeli, ha megszűnik a táp, de egy puffer kondiról még valameddig működik? Ez szerintem járható út, de számíts rá, hogy az EEPROM írás elég hosszú folyamat, és nem árt, ha közben kap végig stabil tápot, tehát egy konvertert én mindenképp tennék a trafó/diódahíd/pufferkondi után (meg egy plusz diódát a kondi és a diódahíd közé, hogy ne tudjon a hídon át visszafelé kisülni a kondi)!
Az EEPROM életét pedig, mivel kevés adatot kell rá gyakran írnod, szépen meg tudod növelni egyfajta szoftveres wear levelinggel: nem mindig ugyanazt a cellát írod felül, hanem minden írásnál a következő szabad cellát használod, egy számlálóval együtt, és ha elfogy az üres hely, akkor kezded újra elölről.
Minderre pedig kár egy Leonardo modult használni, egy Attiny85 is tökéletesen megfelelne a feladatra, van belőle olyan, amelyik 2,5V-tól 6V-ig működik (akár a konvertert is el lehet hagyni). -
Dißnäëß
nagyúr
válasz
Janos250 #13379 üzenetére
Sziasztok, kis segítséget kérnék nálam tapasztaltabbaktól: egy Leonardo-val eltelt idôt szeretnék mérni.
Azaz "bekapcsolt órák száma". Amolyan futásteljesítményt.
Ha elér az eszköz bizonyos óraszámot, valamit jelzek egy LED-el, és ha cserélve az alkatrész újra, egy gombbal ezt nullázni lehet és ismét nulla óráról számol.
Mivel a kerek órák fontosak, ne legyen sok bukás az órák közötti perceken, igazából percekben mérnék, nem is órákban, tehát minden megkezdett percnél billentsen egyet a számlálón a kütyü.
Kell egy ilyenhez RTC, vagy anélkül is megy vajon ?
(Egy olyan Leonardo kompatibilisem van, aminek aljába tehetô egy lapos gombelem, van rajta RTC, de ez a nagy modul, én inkább picivel oldanám meg, ami akkora, mint a hüvelykujjam körme. Jó a nagy is, csak ágyúval veréb ennyire egyszerû dologra elhasználni a rengeteg kimenetet, bemenetet).(Szerk: bocs, nem Neked, új hsz lenne).
Az Arduino-t egy pici nyák trafóról és diódahídról hajtanám. Érzékelné, amikor a fô eszközt kikapcsolom és megszûnik a saját tápja is. Az egyenirányítás után kellôen "nagyra" választott pufferkondival adhatok neki még bármennyi másodpercet, míg frissíti ezt a számlálót vmi flash-be vagy ilyesmibe és utána ô is kikapcsol. Ez az elmélet. Ezeket megoldom, az óra kérdéses számomra, hogyan számolom a perceket és hogyan, hova érdemes letárolni ôket, hogy következô indulásnál azt kiolvasva ott folytassa, ahol abbahagyta.
(Tehát elég kikapcsolásonként 1x írni, nem percenként, ez kíméli a flash-t is).
-
Janos250
őstag
válasz
zsolti_20 #13375 üzenetére
Ahogy Tankblock is írta.
Mert nem egyformák a típusok.
"asd" nem C++ , hanem C string, és a C++ stringre nincs
az = operátor felülírva (overload). Az Arduinoban definiált (nagybetűs) String, gyakorlatilag a C++ (kisbetűs) string.
Vagy használj C stringet, azaz karakterek tömbjét, vagy:pl. 1: ahogy Tankblock is írta, csak kirészletezve
String y = "opop";
String y2 = "uiui";
String y3 = "asd";
y2= y3 ;
pl. 2: előtte törlöd, és +=, mert a += -re megvan a felülírás.y2.clear();
y2 += "asd";
pl. 3:
Amit Tankblock is írt, .replace függvénnyel. -
zsolti_20
senior tag
válasz
Tankblock #13376 üzenetére
Közben találtam egy alternatív megoldást. Igaz nem a legjobb de elmegy egynek.
char text2;
text2 = 40;
if(text2 == 40){
csináljon valamit
}Csak nem annyira esztétikus sajnos. Úgy szerettem volna megoldani, hogy különböző gombok nyomásakor különböző értékekkel tölt fel egy string változót, amit utána kiíratok a kijelzőre. De megteszi ez is. Nem tudom miért lehetett üres a változó. Nem kaptam semmi hibát.
Köszönöm. -
Tankblock
aktív tag
válasz
zsolti_20 #13375 üzenetére
Szia,
Nem dob warningot?
[link] Arduino forrás szerint nincs = operátor csak amikor a String osztályt létrehozod.
A benne lévő függvéynekkel szabadon lehet módosítani, ha tudod mit mire szeretnél cserélni . replace() függvénnyel....String y1 = "mano";
String y2 = "mi a mano";
y1=y2;
//elvileg ez még működhet, vagy pointer :-)
-
zsolti_20
senior tag
Sziasztok! Egy problémával kerültem szembe, ami egyszerűnek tűnik valamiért mégsem az történik mint aminek kellene.
A setup előtt megadtam két string változót:
String y = "opop";
String y2 = "uiui";
A loop részben ki is tudom íratni őket:Serial.println(y);
Serial.println(y2);De amikor egy gomb megnyomására változtatnám az értéket:
y2 = "asd";
Serial.println(y2);Csak azt kapom vissza hogy üres a változó. Van valakinek ötlete mi lehet a probléma?
-
Janos250
őstag
Vagy két cső, hogy alacsonyabb vízszintre is reagáljon. Pl. vízvezetékes lefolyócső. Mindkettőben egy-egy elektróda, pl. fém pálca, vagy egy elég vastag, merev rézdrót, végén lecsupaszítva.) Mindkét cső átlyuggatva elég kis lyukakkal, hogy a víz be tudjon folyni, de a nedves falevél ne menjen be.
Az alsó végén nagyobb lyukak, és az elektróda alaptól mért távolságát is ez a távolság állítja be. A két cső egymástól pl. 1-2 dm távolságra elhelyezve. Ha a víz elérte az elektródákat, zár, egyébként nyit.
Kosz ne bántja, nem marad vezetőképes a nedvesség miatt, ha a drót vége alá csökken a vízszint. Ha elég hosszú a cső, semmi gondot nem okoz, ha akár félméteres lesz is a víz. Persze egy csővel is biztosítható ez, ha elég hosszú a cső, mert akkor a cső tetejéig nem jut fel a víz, nem vezet a maradó nedvesség miatt. -
dew28
aktív tag
Szemely szerint a cso aljara es a tetejere tennek egy vezetokepes, korrozio allo anyagbol keszult elektrodat mely kapcsolokent ravezetekezheto egy kontrollerre, amely igy ha ellepi a csovet a vezetokepes kozeg, akkor zarja az aramkort, amint a cso teteje ala csokken, akkor bontja. egyszeru, de nagyszeru.
-
JozsBiker
aktív tag
Köszönöm mindenkinek az ötleteket !
Valóban az az egyik gond, hogy nem "labor körülmények" között működne a cucc, az esővíz hoz magával mindenféle dolgot. Az 5-10 mm érzékelése úszós megoldással azt hiszem eleve precíz eszközöket igényel, viszont előfordulhat akár 10 cm -es, gyorsan áramló koszos víz is.
Arra is gondoltam, hogy egy nagyobb üreget kellene kialakítani amiben már lenne hely rendes úszós megoldásnak is, de a csatorna alatt sajnos beton van amit nehezen tudnék kivájni.
Vagy esetleg egy ilyen eszközzel, az érzékelő végeit precízen beállítva a megfelelő magasságba ? :
Átgondolom az ötleteket, túlságosan nem szeretném a topic határait feszegetni, megírom ha jutottam valamire. -
gyapo11
őstag
Nem tudom mennyire tiszta az a környezet, ahova a szenzort kellene tenni, de általában probléma a kosz, ami a mechanikai és optikai egységeket működésképtelenné teszi. Ezért olyan kell, amit tökéletesen el lehet szigetelni, mégis képes érzékelni a külvilágot, ez pedig a mágnes. Az egész elektronikát betenném egy vízhatlan dobozba, és csak egy úszót hagynék kint egy mágnessel, bent meg a mágnes helyzetét olvasnám le egy hall cellával.
-
válasz
zsolti_20 #13368 üzenetére
Ez jó ötlet
feltéve, hogy a dugó helyére tennéd a mikrokapcsolót. Kellően kicsi tank kellene, hogy kis vízmennyiségnél is kapcsoljon, és ne maradjon benne sok víz, mikor lekapcsol.
De 3D nyomtatással nemigen lehet víz- és légmentesen záródó dolgokat nyomtatni, lásd a forró vizes videót a 3D printer topikban. Úszónak megtenné viszont egy pingpong labda, vagy talán egy jól záródó, kis méretű gyógyszeres doboz is. -
zsolti_20
senior tag
válasz
JozsBiker #13365 üzenetére
Szia! Érdekes problémának tűnik amin dolgozol. Én egy kiforrott technikát használnék erre, ami kétütemű motorokban is megtalálható ami az üzemanyag útját zárja el, ha megtelik az úszóház.
kép:
[link]
Amint emelkedik a vízszint, az úszó zárja az üzemanyag útját, első körben egy végállás kapcsolóval próbálkoznék, amit lelehet szigetelni, azon belül is egy olyat amit 3d nyomtatókhoz használnak amire rá van szerelve egy "erőkar" féleség.
kép:
[link]
De létezik belőle görgős verzió is:
[link]
Ezt pedig már könnyen össze tudod hangolni egy arduinóval ami tud vezérelni egy 12v-os szivattyút, vagy akár egy nagyobb teljesítményűt is.
Annyit még hozzá tennék, hogy a mechnika simán megvalósítható 3D nyomtatással, vagy egy motoros boltból szerzett úszóval. Olyat pedig könnyen találsz aki ki is nyomtatná neked.
Csak egy példa az úszóra:
[link]
Sok szerencsét, remélem hasznos voltam. -
válasz
JozsBiker #13365 üzenetére
Itt arról beszélgetnek, hogy proximity szenzorral közvetlenül a víz jelenlétét lehetne érzékelni, de 0Ft-os barkács megoldásként lehetne akár alufóliából is kapacitív szenzort készíteni.
A nedvesség érzékelést be lehetne egyébként úgy is állítani, hogy ne a csőben érzékeljen, hanem a tartályban a cső felett, így nem fogja szárazra szívni a tartályt, viszont mindig maradna benne egy kevés víz. Az mondjuk legfeljebb a szúnyogok miatt okozhat gondot.
-
JozsBiker
aktív tag
Azt szeretném megoldani, hogy egy adott esővíz árok belsejébe legalulra tennék egy csövet 5-10 mm körüli belső átmérővel, és mikor azt ellepi a(z eső) víz, akkor kellene bekapcsolni egy kis szivattyút, ami azon a csövön keresztül szívná a vizet egy tartályba. Vagyis kb. 5-10 mm vízmagasságot kellene érzékelni. Viszont nagyon fontos lenne ugye, hogy ha visszacsökken a vízmagasság, akkor azt azonnal vegye észre és kapcsoljon ki. Vagyis nedvesség érzékelő nem hiszem hogy jó lenne, mert amíg meg nem szárad, addig levegőt szívna a szivattyú.
-
Tankblock
aktív tag
-
Janos250
őstag
válasz
JozsBiker #13361 üzenetére
Offba teszem, mert hosszú lett, és csak részben szól a kérdésedről.
Nekem kellett egyet csinálnom, ahol az volt a feladat, hogy ha egy tartályban felhabzik a lötty, még mielőtt kifolyna, állítsa le egy szivattyú motorját. A szenzor (mindjárt írom) a kád oldalára csíptetve, az kapcsolódik egy ESP8266-hoz, (hogy fogyjanak az ESP8266-ok a fiókból) és ha az érzékelte a vizet, akkor elküldött WiFin egy jelet egy másik ESP8266-nak (Alfawise okos konnektor), ami leállította a szivattyú motorját. Azért ilyen bonyolult, hogy ne legyen érintésvédelmi rizikó, mert a motor 230-ról megy.
Én vettem hozzá egy szenzort, de most nem találom honnan.
Viszont nem az került használatba vételre, hanem a kollégám, akinek a szerkentyűje, csinált egy "hightech" szenzort: Egy régi, lapos, kéteres TV antenna kábelének a végét kb 1 cm-re lecsupaszította, azt ráragasztotta egy ruhacsipeszre, és ezzel a ruhacsipesszel csíptette a kád oldalára. Mindenki röhögött, aki meglátta, de működött. Legalábbis a próbákon. Tényleges üzemszerű működésre nem került sor, mert a korona miatt jött a home office.
Ezzel a "szenzorral" sorba kötve egy ellenállás, és az azon eső feszültségen mérve, stabilnak, megbízhatónak tűnt.
Ez a programrész kezeli:ADC_VALUE = analogRead(Analog_channel_pin);
Serial.print("ADC VALUE = ");
Serial.println(ADC_VALUE);
if (ADC_VALUE < 3000){
leallitas() ;
} ;
-
JozsBiker
aktív tag
Sziasztok !
A sok esőt látva kedvet kaptam az esővíz gyűjtésének :-).
Ehhez kellene egy megbízható víz érzékelő, amivel azt tudnám érzékelni, hogy egy esővíz csatorna alján van-e víz, vagy nincs. Tudnátok ilyet javasolni ? Olyan lenne jó, amivel kapcsolatban már van pozitív tapasztalat. Köszi.
( Természetesen Arduino -val építeném meg az áramkört. :-) -
zsolti_20
senior tag
Igazan nincs mit, este jelentkezek a tesztek utan.
Toltesvezerlonek pedig a TP4056-ot hasznalom, de abbo lis azt a fajtat, ahol egyszerre lehet tolteni az aksit es hasznalni rola.
[link]
Persze rendelhetsz mas forrasokbol is mert ezeket csak az elso talalat szerint linkeltem ide. Mashol lehet olcsobb vagy tobbet kapsz ugyan ennyiert. -
zsolti_20
senior tag
Ha jol emlekszem igen, mert amikor kerestem a legjobb DC-DC konvertert az egyik elonye az volt hogy boven tud mukodni 2.8v alatti feszultsegnel is, igy ha nem jon be a 18650, konnyen ceruzaelemes verziova alakithato.
Gyakorlatban soha nem neztem, de ha haza erek letudom neked tesztelni meg 1.2v ujratoltheto ceruzelem meretu akkumulatorral is. -
zsolti_20
senior tag
Ebben az esetben a problema meg is oldva. A forrasztoban levo szenzort kapcsold egy arduinora es a hofokot figyelve kapcsolgasd le es fel PHM kollega ajanlasa alapjan:
[link]
Janos250: Szerencsere csak egyszer tortent meg veled. Eleg bizar hogy ilzen kimaradt belole "veletlenul". Mondjuk ha Imy ezt a megoldast valasztja akkor egy PID tuningot nyomnia kell majd. -
repvez
addikt
Ahogy mondani szokták nem megy az olyan könnyen faluhelyen .
amugy azt gondolom, hogy valami fizikai limit van a mérési gyakoriságban vagy az arduino vagy a modul chip frekvenciája vagy valami más lehet a korlát és nem szoftveres.
max ugy lehet szoftveres ha a beérkező adatokat nem képes olyan gyorsan feldolgozni az arduino mint ahogy kapja.
De ennél többet egyenlöre nem tudok rola.
Hiába tervezném meg a rendszert mondjuk 1 fok szögeltéréssel 1ms os mérésgyakorisággal ha a modul nem képes fizikailag ezt teljesiteni. -
válasz
Scooter86101 #13313 üzenetére
Tudnátok ajánlani bevált 5V-os boost és buck konvertert meg 18650-es akksit Aliról a kollégának?
-
válasz
repvez #13344 üzenetére
Hát ezt nemigen fogom megépíteni
Olyan kódra gondoltam, ami teszteli a sebességet."A hasonloságot ugy értem, hogy nem csak a forgatást hanem a teljes kialakitás ugyan az minden alkalommal, nincs benne változatosság, hogy hátha már kialakitással esetleg egyszerübb lehetne vagy pontosabb."
Én egészen biztosan nem így készíteném, ha ilyen kis távolságok pontos mérésére lenne szükség (pl bútorok közt navigáláshoz). A szenzort vagy a forgástengelyre tenném, vagy mögé, hogy nagyobb legyen a minimális távolság a mérendő tárgy és a szenzor közt. Amúgy ez a lézeres szenzor meglepően pontos, milliméteres pontossággal lehet vele mérni. Ahhoz viszont azt hiszem 100ms-nál nem lehet rövidebb a mérési idő.
-
repvez
addikt
[link]
A video leirásában linkelve van minden hozzá, kód bekötés stb..A hasonloságot ugy értem, hogy nem csak a forgatást hanem a teljes kialakitás ugyan az minden alkalommal, nincs benne változatosság, hogy hátha már kialakitással esetleg egyszerübb lehetne vagy pontosabb.
-
válasz
repvez #13341 üzenetére
Szia! Nekem van ilyenem itthon, ha küldesz rá teszt kódot (mondjuk UNO-ra), akkor letesztelem neked szívesen. Még nem építettem belőle semmit, csak tesztelgettem a pontosságát, úgy emlékszem, hogy néhányszor 10ms egy mérés, de nem fix az idő, a pontosság rovására lehet csökkenteni vagy növelni, erre van beállítás a hozzá tartozó library-ben.
"Illetve láttam, hogy páran próbáltak csinálni belöle LIDAR-t , de a legtöbben ugyan azt másolták le egy külső motorral hajtották meg a modul házát egyenlö sebességgel. "
Hát nagyon máshogy hogy lehetne?
"kötelezően csak egyenletes sebességgel kell hogy forogjon mérés közben vagy váltózó forgási sebességnél is ugyan ugy müködik a távolságmérés?"
A mérést, mivel ahogy írtad, fénysebességgel történik, nem befolyásolja, hogy milyen sebességgel forog a szenzor maga körül, inkább az adatok könnyebb feldolgozhatósága miatt számít a szögsebesség.
-
repvez
addikt
A VL53LO lézeres távolságmérő milyen gyorsan tud egymás után megmérni a távolságot?
addigt oké, hogy fénysebességgel megy és jön vissza a jel az érzékelőbe, de a két mérés közt mekkora lehet a legkisebb idő ami eltelik.
Illetve láttam, hogy páran próbáltak csinálni belöle LIDAR-t , de a legtöbben ugyan azt másolták le egy külső motorral hajtották meg a modul házát egyenlö sebességgel.
A kérdésem még az lenne, hogy kötelezően csak egyenletes sebességgel kell hogy forogjon mérés közben vagy váltózó forgási sebességnél is ugyan ugy müködik a távolságmérés? -
Janos250
őstag
Még a legelején, egyből az első bekapcsolásnál kiégett a fűtőbetét, mert alacsony hőmérsékletet jelzett, és csak fűtött, fűtött, és kiolvadt a fűtő patron fűtőszála. Vettem teljes hotend blokkot, azzal működött, és utána hasonlítottam össze, és kiderült, hogy a fűtő betét ellenállása végtelen. Aztán amikor a hőmérséklet újra összevissza mászkált, akkor kezdtem vizsgálni, és akkor jöttem rá, hogy kicsúszik a termisztor.
. Mivel soha nem dolgoztam még ilyesmivel, elég sokára jöttem rá, mi a gond. Vettem olyan hotend blokkot, amiben csavarral lehet rögzíteni a termisztort, azóta csak olyat használok.
-
Janos250
őstag
válasz
zsolti_20 #13335 üzenetére
"plussz mellé a másik furatba menetet vágnék, amibe bele menne egy pici csavar alátéttel ami a helyén tartaná a termisztort."
Ez hiányzott az én 3D nyomtatóm extruderéből gyárilag, így egyből ki is csúszott a termisztor, kiégett a fűtő betét, és nem tudtam mi lehet a hiba, mert akkor láttam életemben először 3D nyomtatót. Kérdeztem itt a szaktopicban, de ez senkinek nem ugrott be.
-
zsolti_20
senior tag
Szia, ha jól értem akkor egz hőfokszabályzót szeretnél építeni a pákához?
Én úgy oldanám meg, hogy rendelnék egy termisztort amit 3d nyomtatóknál használnak. Aztán megfúrnám két helyen a páka végét de csak annyira, hogy bele menjen a termisztor, plussz mellé a másik furatba menetet vágnék, amibe bele menne egy pici csavar alátéttel ami a helyén tartaná a termisztort.
Ezt a termisztort az arduinora kötném, majd a hőmérséklet függvényében változtatnám a páka betápját. Ki és bekapcsolna egy relével. -
Janos250
őstag
Azért ez már elég baráti ár:
5 db. ESP32 panel szállítással együtt 19.75 $, azaz MNB árfolyamon 6070 Ft, így egy db. 1214 Ft.
https://www.aliexpress.com/item/32905750373.html?spm=a2g0s.9042311.0.0.6f7f4c4dKpjOuy
Tudom, jön még rá a konvertálás, de mivel az ingyenes Revolut bankkártyával fizetek, az alig valami. -
Dißnäëß
nagyúr
Kedves Urak !
Egy DFRobot Beetle-t kellene megtápolnom (ez egy picike Leonardo), ami egyetlen darab 230V/5A relét húz be és tart meg (normally open) + 1-2 kis LED. Ennyi.
Mennyi lehet ennek a max áramfelvétele szerintetek ? Nagyságrendileg, .. (majd ráhagyok még egy picit).
-
gyapo11
őstag
Az ismert ellenállás is mondjuk 1 %-os, annál a 10 bites adc 10-szer finomabb felbontást tud. Szerintem az ismétlési pontossága sokkal jobb, mint az abszolút, de az kit érdekel. Nehezebb megoldani a páka hegyének hőfokmérését. Próbáltam Bakon 950D-vel, persze ki tudja az milyen pontosan jelzi ki a hőfokot, és 50-80 fokkal is kevesebbet mutatott a multiméterhez kapott hőmérő szenzor, a két drót gömböcbe hegesztett verzió. Lehet kapni páka hőmérőt, de az is ilyen hozzányomós, nem tudom jobb termikus kapcsolatban van-e mint az én gömböcöm. Mondjuk a gömb alak pont nem jó egy sík felülethez (amilyen egy pákahegy), kb. 1 ponton érintkezik.
Ha szükséges lenne (szerintem nem az), akkor inkább a feszültséget kellene úgy intézni, hogy 5 V-ra terüljön el a minimum és a maximum hőfok. Ekkor mind az 1024 lépcső ki lenne használva. Kell egy Zener, pl. 4.7 V-os, a minimum hőfokon az ismeretlen ellenálláson legyen 4.7 V, ez a 0, a maximum hőfokon legyen 4.7+5 V, ez az 1024. Ha 150-400 fokot veszünk, akkor ez 250 fok 1024 lépcső, kb. 1/4 fok felbontás. Ha nem lineáris az ismeretlen ellenállás, akkor valahol még finomabb lesz, máshol durvább. -
gyapo11
őstag
Nem annyira érdemes nagyon pontosan mérni, mivel a páka hegye és a beépített szenzor között is van egy hőhíd, egy hőellenállás, és az egész rendszer egy 300 fokkal hidegebb környezetben van, odanyomkodod egy szintén 300 fokkal hidegebb fém felülethez, lehetnek légáramlatok, amik a felületeket hűtik de a belső részeket nem. Ezek összességében nagyobb eltéréseket adnak ki, mint egy egyszerű multiméter pontatlansága.
-
gyapo11
őstag
A nagyon pontos, az valószínűleg külső nagyon pontos adcvel. De lehet, hogy a beépített is elég, csak hitelesíteni kell egy nagyon pontos ellenállásmérővel, elletve inkább hőmérővel, mivel nem is az ellenállásra vagy kíváncsi, hanem a hőmérsékletre.
Tehát fölírod 5-6 hőmérsékletnél, hogy mit mér az arduino, ebből látsz egy görbét, és így már bármilyen hőmérséklethez tudod, hogy mennyit kell fűteni. -
-
-
Janos250
őstag
A schematic diagramon:
Fenn ott vannak a 7 szegmenses kijelzők. A LED9.
Balról megy bele a GR4, GR3, GR2, GR1. Gondolom ez címzi meg, hogy melyik szegmens világítson, mert a 4 vonal ehhez passzol.
De mit csinál alul a SEG1, SEG2? Hogyan működik? Lehet, hogy én teljesen félreértem a címzését, működését?Szerk: Hoppá, a második mondatod: Akkor a bal oldali négy vezeték nem kódolt cím, hanem a 4 kijelző közül egyet kijelöl?
-
Imy
veterán
Arduinoval mivel lehetne negyon pontosan ellenállást mérni? 20-60 ohm közötti értéket. Akár valami moduleval.
-
Janos250
őstag
Hogy így beszéltek róla, kíváncsiságból megnéztem ennek a ledes, gombos, kijelzős panelnak a kapcsolási rajzát.
https://www.handsontec.com/dataspecs/display/TM1638.pdf
Tetszik ez a multiplexelt megoldás, hogy amit "két végéről" kell meghajtani, olyanokból több is mehet egy kontrollerről. Ez az előnye a közös katódnak. Nekem senkivel nincs közös Katóm. Nem Kató, nem közös. Legalábbis úgy gondolom. Valamikor így működtek a szobányi, vagy nagyobb számítógépek ferritgyűrűs operatív tárjai is.
Viszont egy valamit nem sikerült megértenem:
A hét szegmenses kijelzőhöz a négy címvonal GR1...GR4 rendben van, de minek kell "alul" kettő vezeték, az A és B, miért nem elég egy?
Aki tudja, ne titkolja el előlem! -
válasz
Scooter86101 #13313 üzenetére
-
And
veterán
Ok, akkor csak viccből kérdeztem, hogy pontosan / fizikailag milyen ellenállást is tervezel mérni. A többit aryes kolléga leírta. Amúgy az a belső PTC csak azért van a pákán, hogy te az ellenállását méricskéld, vagy a páka kiegészítő áramköre is használja valamire? Mert nyilván csak az első esetben tudod közvetve hőmérésre használni.
-
válasz
Scooter86101 #13309 üzenetére
Teljesen kizárt.
Ezt magadnak kell megoldanod.
-
Nem.
Ezt írtad:
"A weller páka 20 fokon ~22 ohm, és 350 fokon ~50 ohm."
...
" a forrasztópáka ellenállását mérném"Ha külön van rajta PTC, akkor a módszer minden további nélkül működhet, de vedd figyelembe, hogy ha az ellenállásosztó másik tagjának túl kicsi értéket választasz, nagy áram fog keresztülfolyni a PTC-n, amitől melegedni fog. Bár ez 350 fokon nem tudom mekkora hibát okozhat.
-
válasz
Scooter86101 #13302 üzenetére
Ha minden igaz ennek működnie kell. Tesztelni nem tudtam, mert nincs nálam a hardver.
#include <TM1638.h>
TM1638 module(9, 8, 7);
byte display[8];
char cadena[20];
int alarma,contador,time1;
#define MILED 13
#define PIN_SOUND 12
//#define RETRASO 597
#define RETRASO 97
char fcontador;
void setup()
{
pinMode(MILED, OUTPUT);
pinMode(PIN_SOUND, OUTPUT);
digitalWrite(MILED, LOW);
module.setupDisplay(1,7);
module.setDisplayToString("L.u.L.u.",0,0);
delay(1500);
module.setDisplayToString("--------",0,0);
display[2]=0;
alarma=60;
}
void loop()
{
byte keys;
int z;
keys = module.getButtons();
switch(keys)
{
case 1:
if(fcontador==0)
{display[0]++; if(display[0]>2) display[0]=0;}
break;
case 2:
if(fcontador==0)
{display[1]++; if(display[1]>9) display[1]=0;}
break;
case 4:
if(fcontador==0)
{display[2]++; if(display[2]>5) display[2]=0;}
break;
case 8:
if(fcontador==0)
{display[3]++; if(display[3]>9) display[3]=0;}
break;
case 16:
fcontador=0;
contador=alarma;
digitalWrite(MILED, LOW);
module.setLEDs(16);
break;
case 128:
time1=RETRASO;
fcontador=1;
contador=alarma;
digitalWrite(MILED, LOW);
module.setLEDs(128);
break;
}
if(fcontador==0 && keys>0)
{
alarma=display[0]*600+display[1]*60+display[2]*10+display[3];
//sprintf(cadena,"%04d%04d",alarma,contador);
sprintf(cadena, "%01d%01d%01d%01d%01d%01d%01d%01d", alarma/600, (alarma/60)%10, (alarma%60)/10, alarma%10 , contador/600, (contador/60)%10, (contador%60)/10, contador%10);
module.setDisplayToString(cadena,0,0);
delay(200);
}
time1--;
// {if(display[2]>5) display[2]=0;}
if(fcontador==1 && time1<=0)
{
module.setLEDs(0);
time1=RETRASO;
contador--;
//sprintf(cadena,"%04d%04d",alarma,contador);
sprintf(cadena, "%01d%01d%01d%01d%01d%01d%01d%01d", alarma/600, (alarma/60)%10, (alarma%60)/10, alarma%10 , contador/600, (contador/60)%10, (contador%60)/10, contador%10);
module.setDisplayToString(cadena,0,0);
if(contador<1)
{
fcontador=0;
for(z=0;z<10;z++)
{
//sprintf(cadena,"%04d0000",alarma);
sprintf(cadena, "%01d%01d%01d%01d0000", alarma/600, (alarma/60)%10, (alarma%60)/10, alarma%10);
module.setDisplayToString(cadena,0,0);
delay(500);
//sprintf(cadena,"%04d ",alarma);
sprintf(cadena, "%01d%01d%01d%01d ", alarma/600, (alarma/60)%10, (alarma%60)/10, alarma%10);
module.setDisplayToString(cadena,0,0);
delay(500);
}
//sprintf(cadena,"%04d----",alarma);
sprintf(cadena, "%01d%01d%01d%01d----", alarma/600, (alarma/60)%10, (alarma%60)/10, alarma%10);
module.setDisplayToString(cadena,0,0);
digitalWrite(MILED,HIGH);
for(z=0;z<300;z++)
{
digitalWrite(PIN_SOUND, HIGH);
delay(10);
digitalWrite(PIN_SOUND, LOW);
delay(10);
}
}
}
delay(1);
} -
Imy
veterán
-
válasz
gyapo11 #13292 üzenetére
"De vannak ilyen cmos ic-k, régen sok erősítőbe, előerősítőbe tettek ilyet, hogy ne a puruttya yaxley legyen a bemenetválasztó."
Most csak a kiegészítő elektronika nélküli lehetőségeket mondtam.
"I2c-ről nem régen volt szó, hogy ha a libraryban nincs lekezelve, akkor akár az egész program futását meg tudja állítani egy hibás szenzor."
Hát ezen sajnos az sem segít, ha több lábra vannak elosztva a szenzorok.
Ú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
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RX 7600 XT 16GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Bomba ár! Lenovo ThinkPad T470 - i5-G6 I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W10 I Garancia!
- iKing.Hu - Apple iPhone 16 Pro Max - Desert Titanium - Új, kipróbált
- Bomba ár! Lenovo ThinkPad X390: i5-G8 I 16GB I 256GB SSD I 13,3" 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