-
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
-
ekkold
Topikgazda
Kaptam egy kis darab LED szalagot, amin vezérelhető RGB ledek vannak. Valószínűleg WS2818. Ezt szeretném BluePill-el (STM32F103) vezérelni. Létezik BluePill-hez való jól működő könyvtár, erre a célra, ill. próbálta már valaki?
-
ekkold
Topikgazda
válasz zsigomark3 #14454 üzenetére
Miért nem használsz olyan arduinot amin van usb host? Pl. az arduino due lapon két usb van, az egyik programozásra, a másik lehet usb host vagy kliens is (de ezen át is lehet programozni)
-
ekkold
Topikgazda
válasz JulianSinulf #14560 üzenetére
Van olyan SRAM ami gyors, és van benne EEPROM háttértár, azaz nem felejt, mert ha csökken a tápja akkor ment az EEPROM-ba. Lehet, hogy ilyet használnék....
-
ekkold
Topikgazda
>Most jól leírtad a PID szabályozás lényegét.
Pont ezt akartam én is leírni. Még egy nem túl tökéletes PID szabályozás is jobb, mint egy sima hőmérsékletfüggő ki/be kapcsolgatós működésű megoldás. Ugyanis a PID szabályozás egy idő után megtalálja azt a nagyjából állandó vízhőmérsékletet, ami a kívánt helyiség hőmérsékletet tudja tartani. (Ezt esetleg meg lehet támogatni a külső hőmérséklet mérésével, hogy a rendszer beállási ideje rövidebb legyen - de nem muszáj, mert enékül is működik a dolog). Magyarul egy idő után akár úgy kapcsolgat ki/be a fűtés, hogy a hőmérő által mért hőmérséklet nem , vagy csak alig változik. Az ESP számítási teljesítménye pedig bőségesen elegendő egy PID szabályozás megvalósításához is, max egy kicsit több programozást igényel.[ Szerkesztve ]
-
ekkold
Topikgazda
Sziasztok! Az arduino fejlesztőkörnyezetet át lehet állítani valahogyan, hogy ne utf8-ban tárolja az ékezetes karaktereket, hanem mondjuk használjon iso8859-et, vagy bármi olyat, ahol nem foglalnak két bájtot
az ékezetes betűk? -
ekkold
Topikgazda
Több oka is van. Pl. a standard c string függvények (pl. strlen()) is jól működnének, egyszerűbb lenne a konverzió egyes kijelzőkhöz. Kevesebb helyet/memóriát foglalnának az ékezetet is tartalmazó szövegek, nem okozna gondot egyes programok más processzorra való átvitelénél, az eltérő bájt-sorrend kezelés, ilyesmik. Összefoglalva, nekem sok szempontból jobb lenne...
-
ekkold
Topikgazda
válasz Istv@n #15187 üzenetére
A legbiztosabb egy átfolyásmérő, mert biztos, hogy csak akkor ad jelet, ha megy a szivattyú.
Az átfolyó áram érzékelése is informatívabb mint a szivattyún megjelenő feszültség érzékelése. Ha az áram bizonyos határok közötti, az utalhat a normál működésre, ha a határokon kívül van akkor nem működik vagy rendellenesen működik. Arduinohoz kaphatók hall érzékelős áram szenzorok, amivel leválasztott módon mérhető az áram (bár nem túl pontosan, de erre a feladatra elegendő). [pl. ACS712 szenzor, vagy arra épülő modul]
Illetve létezik kicsi nyákba ültethető áramváltó is, amivel szintén leválasztott módon mérhető az áramfelvétel.
Szintén közvetett módszer, de a motorra szerelt kontakt piezo érzékelő (piezo mikrofon) is érzékelheti a szivattyú motor üzem közbeni rezgését.
[ Szerkesztve ]
-
ekkold
Topikgazda
válasz Janos250 #15464 üzenetére
Az alapján, hogy hol nyit ki, nem lehet eldönteni, hogy hamis-e. Az adatlapja szerinti treshold max. 2,5V, azonban itt csak 250uA-t kell vezetnie. Az Rdson pedig csak 4,5V-ra és 10V-ra van specifikálva, 3,3V-ra nincs. Tehát az adatlap szerint beleférhet sz is, hogy 3,3V-ról alig vezet, vagy az is hogy több A-re jó, de egyikre sincs garancia. (amit ötöd - tized áron rendelsz kínából, azok közül szinte biztosan mindegyik hamis).
Amúgy pedig a korrekt megoldás az, ha olyan FET típust keresel, amelyre 3,3V Ugs-nél is specifikálnak olyan értékű Rdson-t, ami megfelel a felhasználási célnak. a másik lehetőség FET meghajtó használata, ami a 3,3V-os vezérlőjelből nagyobb feszültséggel vezérli a FET-et. -
ekkold
Topikgazda
válasz Janos250 #15467 üzenetére
- Az a görbe amit nézel 50V D-S feszültségre vonatkozik. A FET nyitott állapotában pedig jó esetben ennél sokkal kisebb feszültség marad rajta.- A görbe tipikus adatokat ad meg, tehát nem mindegyik FET ilyen, hanem van szórás a paraméterekben, és csak átlagban ilyen.
Magyarán ez nem garantálja, hogy 3,3V-ról teljesen kinyit bármelyik ilyen tipusú FET. Azt hogy hamis vagy eredeti, ez alapján nem lehet eldönteni, csak akkor ha nagyon rossz. Sokkal jobb pl. az Rdson-t lemérni a max nyitófesz (16V Vgs) környékén, és esetleg a D-S letörési feszültséget, valamint a gate töltést, és a félvezető kapacitásokat. Ha ezek mindegyike stimmel, akkor talán eredeti, de ha bármelyik hibádzik, akkor hamisítvány. -
ekkold
Topikgazda
Ennek több oka is van.
- Kínából rendelve kb. egy árban van a kettő (de lehet, hogy az FTDI picit drágább)
- ST-Link esetében a BluePill-en nem kell a jumpert átrakni a programozáshoz, míg soros portos esetben át kell rakni a jumpert minden programfeltöltéskor.
- ST-Link használata esetén sokkal gyorsabb feltölteni a programot, gyakorlatilag még 1 másodperc sem kell hozzá.
- BluePill oldalán külön tüskéken ott van az SWDIO, SWCLK, ezekre kényelmesebb csatlakozni.Ettől függetlenül abban igazad van, hogy sima soros porton is feltölthető a program. Tehát mindkét megoldás használható. Sőt van egy harmadik megoldás is: ha feltöltjük rá a boot-loadert, akkor onnantól a rajta levő USB-n keresztül is lehet programozni, így gyakorlatilag az USB kábelen kívül már semmi sem kell hozzá. Kipróbáltam mindhárom módszert, és nekem az ST-Link használata jött be leginkább.
(Csak zárójelben: ugye nem kevered össze az ESP32-t és az STM32-t ?)
[ Szerkesztve ]
-
ekkold
Topikgazda
válasz tonermagus #15503 üzenetére
Nyilván akkor a .bin fájlt kell odaadnod, de kell egy programozó eszköz (vagy csak szoftver), amivel fel lehet tölteni - ez a proci /alaplap típusától is függ.
-
ekkold
Topikgazda
válasz tonermagus #15576 üzenetére
Nekem bevált az STM32. Bevásároltam kínából néhány BluePill-t játszani, azóta pedig már egy ilyen vezérli a forrasztóállomásomat: [link]
-
ekkold
Topikgazda
válasz tonermagus #15685 üzenetére
Elvileg minden procinak van egyedi azonosítója. Ha ezt kiolvassa a programod, akkor simán megteheted, hogy csak azon az egy procin fusson a kód - és akkor hiába másolja le bárki is... Ezt továbbgondolva pl. az egyik projektemben úgy kezeltem ezt a problémakört, hogy az egyik menüpontban a program kiír egy egyedi azonosítót, amihez meg kell adni egy kulcsot. Ha a megfelelő egyedi kulcsot nem adják meg, akkor a program csak DEMO verzióként működik, indulás előtt 15 másodpercet várakozik, és csak 15 percig működik utána leáll. Ez a kipróbáláshoz bőven elég, és ha valaki tartósan akarja használni, akkor egy jelképes összeg ellenében elküldöm a számára szükséges egyedi kulcsot. Innentől viszont a program .bin formátumban szabadon letölthető a weblapomról, bárki rátöltheti a saját processzorára, kipróbálhatja, és ha tetszik akkor egy jelképes összegért cserébe teljes verzióként is használhatja.
Amúgy mi az a kütyü amit be fogsz mutatni?
A forráskódot amúgy nem tudják lementeni, csak a gépi kódot bináris formában. Nem lehetetlen ebből forráskódot készíteni, de azért elég sok munka ahhoz, hogy ne érje meg - azaz lehet, hogy egyszerűbb, gyorsabb új programot írni az eszközre.
[ Szerkesztve ]
-
ekkold
Topikgazda
Nem tudom mennyire extra, vagy értékes az a program, de lehet, hogy a hardver ismeretében viszonylag könnyen megírható egy másik program az adott funkciókra. A programozó lábak levágása a prociról némi hekkeléssel még kezelhető: pl. kis köszörülés a tokon, ahol a láb befelé folytatódik, és vékony szál odaforrasztása... Némelyik kollégámnak ez sima rutinfeladat lenne
A lényeg: a védelemnek csak olyan szintűnek kell lennie, ami a program értékének megfelelő. Tehát elegendő ha a védelem megkerülése több munka, mint másik programot írni, és akkor nem fog senki sem foglalkozni a feltörésével - egyszerűen azért, mert nem éri meg.
Amit Géza írt lentebb, általában az is elegendő, és teljesen jó megoldás.[ Szerkesztve ]
-
ekkold
Topikgazda
válasz tonermagus #15715 üzenetére
Esetleg valami ilyesmi? [link]
-
ekkold
Topikgazda
válasz Undoroid #15744 üzenetére
Miért nem használsz BluePill-t? Méretben, és árban is hasonló az arduino nano-hoz, de sokkal-sokkal erősebb proci van rajta.
8bit vs 32bit, 16MHz vs 72MHz.
Az STM procinál minden művelet csak 1 órajel, (szorzás és osztás is), nem tudom, hogy ezt az AVR is tudja?
[ Szerkesztve ]
-
ekkold
Topikgazda
válasz ekkold #15745 üzenetére
Nemrég összedobtam pár saját tervezésű fejlesztőpanelt, ami lábkompatibilis a BluePill-el, és készítettem hozzá próbanyákra egy I/O-láb tesztert: minden I/O lában van egy led+ellenlállás. Ime:
[video-link] -
ekkold
Topikgazda
válasz Janos250 #15748 üzenetére
Az ESP32 és az ESP8266 is jó processzor, mindkettő jóval erősebb mint egy sima arduino. Viszont drágábbak mint az STM, többet fogyasztanak, és nem kell mindenhez Wifi sem.
Az STM procit használva a program matekozós része (pl. a forrasztóállomásom esetében a PID) olyan gyorsan fut le, hogy szinte elhanyagolható az erre fordított idő. Az A/D konverterre várakozás, vagy pl. az opampok beállási idejét kivárni sokkal több idő. Még mindíg meg tudok lepődni, mekkora számítási teljesítménye van ennek a procinak. Van pl. arduino due panelem, ami szintén igen gyorsnak számít, de a BluePill annál is gyorsabbnak tűnik. -
ekkold
Topikgazda
Arduino környezetben is használható, és az arduinos függvények nagy része működik is rajta, de van néhány STM specifikus függvény, ami nem "standard arduino".
Ugyanakkor az ST-nek van hozzá ingyenes fejlesztő környezete. Azzal sokkal több a lehetőség, jobban kihasználható a hardver, de nehezebb/bonyolultabb a használata.
A forrasztóállomásom szoftverét pl. arduinoval készítettem erre a procira. -
ekkold
Topikgazda
válasz Undoroid #15762 üzenetére
Ha a szoftver (és a processzor is) ugyanaz, akkor a harver egyéb részében lehet különbség ami miatt nem megy. A nano és az uno esetében pl. a lábak számozása miatt lehet kavarodás, az LCD rákötésében. Illetve lehet, hogy a nano-nak pont valamelyik LCD-hez használt lábával van gond. Szoktam én is 2x16-os vagy hasonló alfanumerikus LCD-t használni, mert könnyen használható, egyszerű, és olcsó - egyedül a sok vezeték zavar. Ez utóbbit úgy oldottam meg, hogy egy 74HCT595 léptetőregiszter IC-vel vezérlem, így mindössze 2db I/O láb kell hozzá. Persze így saját drájvert kellett írnom hozzá, viszont az egyszerűbb és gyorsabb lett mint a gyári. Azonban történetesen uno/nano-ra nem írtam meg a szoftvert, mert olyanon nincsen, csak BluePill-en, ESP8266-on, és arduino DUE panelen használtam eddig.
Erről egy kis cikket is írtam: [link][ Szerkesztve ]
-
ekkold
Topikgazda
-
ekkold
Topikgazda
válasz tukko1 #15903 üzenetére
Az arduino is tudja használni az STLink-et, csak ki kell választani, hogy azzal programozod, és akkor boot-loader sem kell rá (csak akkor kell ha az ST-t az USB-n akarod programozni).
Amúgy ilyen BluePill panelből amit vettél elég sok olyan fordul elő amin nem működik az USB. Talán valami hibás szériájú prociból építették, vagy hasonló. Nekem is van itthon néhány ilyen panelem, kb az 50%-án működik az USB, a másik 50%-án nem. Volt amin kinyírtam véletlenül a procit, forrasztottunk rá eredeti MCU-t, azzal megjavult az USB is .
[ Szerkesztve ]
-
ekkold
Topikgazda
válasz tonermagus #16013 üzenetére
A feszültségosztó nem megoldás erre. LDO stabilizátort keress, ezek akár 0,1V (vagy kevesebb) maradékfeszültséggel is tudnak dolgozni.
-
ekkold
Topikgazda
válasz tonermagus #16021 üzenetére
Amit [PHM] belinkelt, 0.4V-al már működik, tehát 6V-ból simán tud 5V-ot csinálni. Ha a fogyasztás kicsi, akkor 5V esetén csak 0.1...0.2V-ot vesz le, ami még elegendő lehet a normál működéshez. Egy próbát mindenképpen megér.
[ Szerkesztve ]
-
ekkold
Topikgazda
válasz tonermagus #16028 üzenetére
Az élethez szerencse is kell, de ne feszítsd tovább a húrt.
-
ekkold
Topikgazda
-
ekkold
Topikgazda
Két tüskesort össze lehet úgy forrasztani, hogy legyen kb. fél raszter eltolás benne. A raszteres panelbe egy hosszabb egyenes tüskesort, és egy forrasztott, két darabból álló, eltolásos tüskesort kellene beletenni. A további "emeletek" meg már lehetne rendes raszteres osztásúak.
Később gyártatott panelek esetén is megoldható, hogy az arduino felettin még van fél raszteres eltolás, a "további emeleteken" meg már nem kell.
-
ekkold
Topikgazda
Amúgy az ACSxxx áramszenzoroknak a nullája el tud mászni, pl. érzékeny a külső mágneses terekre is, elég egy felmágnesezett csavarhúzóval a közelében matatni. Annak idején +-20A-ig kb. 0,1A felbontással tudtam mérni vele úgy hogy ne ingadozzon a mért érték, és a nulla is nulla legyen.
-
ekkold
Topikgazda
Ha AC-t akarsz mérni akkor a nullázás nem gond, hiszen az összes minta átlagát kell a nullának tekinteni, és ehhez képest kapsz kisebb és nagyobb (negatív és pozitív) mintákat. Ebből úgy lesz effektív érték, hogy az átlagot minden mintából levonod, mindegyiket négyzetre emeled, és összeadod. Ezután elosztod a minták számával, majd négyzetgyököt vonsz. Ha nem kell pontos effektív érték, akkor elegendő a mintákból levonni a DC offszetet, majd a minták abszolút értékéből átlagot képezni, és ebből számolni effektív értéket. Vagy lehet hardveres mérő-egyenirányítót készíteni néhány műveleti erősítővel, és akkor már csak DC-t kell mérni az MCU-val..
Viszont AC áramméréshez egyszerűbb egy sima áramváltót használni.
[ Szerkesztve ]
-
ekkold
Topikgazda
Tulajdonképpen mekkora áramot kellene megmérned?
[link] A linken egy 100A-es, nyákba ültethető áramváltó, netto 1400Ft körül.[link] Ez a tipus kicsit drágább, de nagyobb kimeneti fesz esetén is pontos (ennek a kisebb áramú változatával már dolgoztam, és tényleg jó) Netto 2000Ft körüli. Valószínűleg ezt használnám, ha biztosra akarnék menni.
Schottky graetz + puffer + sönt, és mehet az A/D bemenetére.[ Szerkesztve ]
-
ekkold
Topikgazda
Annak idején amikor ACS712-20 áramszenzorral dolgoztam, akkor volt a legjobban használható, ha sima osztóval állítottam be a féltápot. Nulla áramnál elvileg féltápra áll be, és az áram irányától függően megy ez alá, vagy fölé. Van némi offszethibája, amit szoftveresen próbáltam kompenzálni több-kevesebb sikerrel. Sajnos ez az összes HALL elemmel működő áram szenzorra igaz, és ez korlátozza a felhasználhatóságukat.
Később MCP3221 A/D-vel dolgoztam fel az ACS kimenetét, ez filléres árú, 12bites A/D és egész gyors, azaz sok mintát lehet vele venni rövid idő alatt. Szoftveresen is könnyű a kezelése. Ugyanarról a tápról ment mint az ACS, így volt a legkisebb az offszethiba.
Viszont ezzel lehet a legegyszerűbben leválasztott módon mérni, és ez DC-re is alkalmas. Ezen kívül ha csak AC-re használjuk, akkor a kimenete leválasztható kondival (és máris nincs offszethiba), és lehet AC-ben erősíteni, meg opamp-al preciziós egyenirányítót építeni. Illetve mindez megoldható szoftveresen is, ha van idő elég sok mintát venni és feldolgozni. Viszont csak AC-re, az áramváltók is teljesen jók, sőt talán jobbak is.
Preciz söntöt használva, megfelelő opamp-al erősítve lehet a legpontosabban lehet mérni, de ott viszont nincs leválasztás. Ha ez nem lenne gond, akkor ez lenne a legjobb választás árammérésre.
[ Szerkesztve ]
-
ekkold
Topikgazda
Többször nekifutottam már, hogy Arduino alatt, STM32 BluePill lappal vezéreljek, WS28xx ledszalagot. - de némelyik könyvtár egyszerűen nem működik a BluePill-el, ill. van amelyik csinál ugyan valamit de hibásan működik. Nem akartam saját könyvtárat írni erre, ezért az lenne a kérdésen, hogy van-e olyan könyvtár erre a feladatra, ami biztosan működik BluePill panellel? Próbálta-e már valaki ezt STM32-vel?
-
ekkold
Topikgazda
válasz gyapo11 #16258 üzenetére
Szerintem meg aki raktárkészletet tart bármilyen távolkeleti cuccból az:
- kockázatot vállal
- pénze áll benne
- raktározási és cégfenntartási költségei is vannak
- és persze ezen felül még keresni is akar rajta (nem is várható, hogy nullszaldós avagy nonprofit alapon működjön).
Ezzel nem akarom védeni azt aki ezzel foglakozik, csak azt, hogy érthető, hogy többe kerülnek ezek a dolgok itthon, és hogy a piac szabályozza az árakat. Többször előfordult már, hogy a magasabb ár ellenére itthoni webshopból rendeltem meg kínai cuccokat, mert gyorsabban kellett, és nem fért bele a postázás kockázata sem. 2019-ben 6db csomagomat lopták el a postán, és egy email-ben "sajnáljuk"-on kívül semmilyen kárpótlást nem kaptam, és persze megírták, hogy az értékmegjelölés nélküli csomagokért semmilyen anyagi felelősséggel nem tartoznak. Gyakorlatilag nem hozta ki a postás a csomagot, értesítést sem dobtak be, majd állítólag visszaküldték, gyakorlatilag meg eltűnt... Egy időben itt ez annyira általánossá vált, hogy egy vidéki barátom címére kellett mindent rendelnem (ott nem tűnt el semmi), viszont további futárt kellett fizetnem, hogy eljusson hozzám (GSL, DPD, stb - ezeknél sem tűnt el soha semmilyen csomagom) . Azóta postán kizárólag értékmegjelöléssel küldök bármit is - érdekes módon azok nem szoktak eltűnni. Ha pedig nekem küld valaki, akkor azt kérem, hogy inkább futárral küldje...[ Szerkesztve ]
-
ekkold
Topikgazda
válasz Janos250 #16375 üzenetére
Igazából egy hőelemmel is lehet mérni. A vezetékek csatlakozásainál valóban keletkezik valamekkora hiba, de ez sok esetben simán belefér. A környezeti hőmérséklet - amihez viszonyítunk, bármilyen más hőszenzorral is megmérhető.
Ha semmilyen változás nem látszott az alkalmazott szenzor esetében, akkor lehetséges, hogy nem termoelemként kell mérni vele. Magyarul: lehet, hogy nem feszültséget ad a szenzor, hanem mondjuk az ellenállása változik a hőmérséklet függvényében. -
ekkold
Topikgazda
válasz wakula778 #16377 üzenetére
Szerintem nem biztos, hogy a hőszenzort kell cserélni, hanem esetleg az IC-t ami kezeli. Ahhoz viszont kellene adatlapot beszerezni a szenzorról. Egy hőszenzor jelét pl. egy jobb műveleti erősítő + A/D kombóval is fel lehet dolgozni, csak ismerni kell a paramétereit. A forrasztóállomásomban amit JBC pákához készítettem, könnyedén tudok tizedfokos felbontással mérni, úgy, hogy nem (vagy csak ritkán) ingadoznak a mért értékek. Az ebben levő termoelem mindössze 24,5 µV/°C feszültséget ad le.
[ Szerkesztve ]
-
ekkold
Topikgazda
válasz Janos250 #16386 üzenetére
Leírom, hogy nekem miért érte meg jobban az opamp-os megoldás. Persze ez teljesen más mint a kérdezőé, csak arra szeretnék rávilágítani, hogy az opampos erősítős megoldás is lehet jó, és egyúttal sokkal olcsóbb is.
JBC 245 pákához terveztem állomást, és szerettem volna pontos/precíz PID szabályozást készíteni hozzá. Ennek a pákának az egyik tulajdonsága, hogy pár másodperc alatt fel tud fűteni, a legnagyobb hőmérséklet-változási sebesség amit mértem kb. 100 °C/sec.
A MAX6675 és hasonló céláramkörök konverziós sebessége adatlap szerint 0,17---0.22sec, ez azt jelenti, hogy két mérés között 17...22°C-ot is változhatna a páka hőmérséklete, tehát ezzel eleve nehéz lenne stabil hőfokon tartani, mert ahhoz sűrűbben kellene mérni. Tovább rontja a helyzetet, hogy fűtéskor, a páka vezetékén eső feszültség miatt nem lehet mérni, ezért a mérés idejére ki kell kapcsolni a fűtést. Ez azt jelenti, hogy ha folyamatosan mérnék, akkor nem maradna idő fűteni. Ha csak az idő 50%-ában fűtök, a másik felében mérek, az mégnagyobb hőingadozást jelentene. Tehát erre a célra egy ilyen IC kb. alkalmatlan lenne. Ráadásul ennek az IC-nek az ára pl. a hestore-ban éppen netto 1600Ft körüli.Az az opamp amit használtam kb 300Ft, az offszetfeszültsége maximum 25µV, tehát legrosszabb esetben ez kb 1°C hibát vihet be. A hidegpont mérésére használt hőszenzorom: MCP9700, 100Ft körüli a chipcad-nél vagy a TME-nél. Az MCU-ban levő A/D 12 bites ugyanúgy mint a MAX célIC-ben, csak azzal 2x128 mintát tudok venni és átlagolni kevesebb mint 2 ms alatt. Így ha mondjuk 40msec időközzel mérek akkor a ciklusidőnek csak 5%-át vesztem el mérési időre, és az idő 95%-ában lehet fűteni a pákát (mehetne a mérés akár 20 vagy 10 msec időközzel is, az sem okozna gondot).
Az MCP9700 hőszenzor 1...2 fok pontosságú, tehát ezzel együtt kb. 3 fok hiba + kb. 1% az ellenállás osztók miatt ami bejöhet. Mivel 330 fok körül forrasztok gyakran, a legnagyobb hiba 6 fok körüli lehetne. Azonban a forrasztóállomás kalibrálható, és ezzel a hiba jelentős része kiesik, tehát a végeredmény egy egész pontos szabályozás lehet.
A kérdezőnek valószínűleg nem kel ilyen sebességű és pontosságú mérés, de ha ismernénk a hőszenzora adatait, akkor valószínűleg lehetne hozzá optimális megoldást találni. -
ekkold
Topikgazda
válasz Janos250 #16446 üzenetére
char akarmi[ 100]; //
Ez lefoglal 100 bájtot adott kezdőcímmel, azért nem adhatsz értéket a ilyen módon, hogy akrami = ... mert ahhoz módosítani kellene a címét, viszont a lefoglalt memória adott területen/címen van. Igy az akarmi szögletes zárójelek nékül, gyakorlatilag egy pointer konstans.char * akarmi//
Ez csak egy pointert hoz létre, ami mutathat bárhová, (kaphat tetszőleges értéket) de a pointerhez nem foglal le memóriaterületet. Tehát ha létező c stringre mutat akkor lehet egy tömbhöz hasonlóan használni, egyéb esetben elszállhat a program.A c string egy olyan karaktertömb ami nullára végződik (ez jelzi a tömb végét). Tehát van egy aktuális hossza, ami változhat is, és van a számára lefoglalt memóriaterület ami megszabja a maximális hosszát. Ha "túlírod" elszállhat a programod.
Azért tud jól működni az strcpy() a korábban felvázolt esetben, mert ott a pointer által mutatott szöveget, valós lefoglalt memóriaterületre másolod.
A pointerhez egyébként a malloc() függvénnyel lehet (standard c-ben, de talán arduinoban is) memóriát foglalni, azaz a maloc() által adott címet töltöd a pointerbe , és akkor a malloc() által lefoglalt nagyságú tömbként is használhatod.
Jelenleg kevered a tömb és a pointer funkcióját, működését. Ezeket kellene tisztázni elsősorban.
[ Szerkesztve ]
-
ekkold
Topikgazda
válasz Janos250 #16448 üzenetére
Deklaráláskor nem ugyanaz történik. A használatában vannak hasonlóságok.
A char * egy pointer tipusú változó, ami karakterre mutathat (persze lehetnek egymásután karakterek a memóriában), de mutathat pl. nullára is (nullpointer), vagy pl. egy tömb kezdőcímét is belemásolhatjuk.
A char[ ] egy karakterekből álló tömb, ami a szögletes zárójelek nélkül a tömb kezdőcímét mutatja mint pointer.[ Szerkesztve ]
-
ekkold
Topikgazda
válasz Dißnäëß #16522 üzenetére
Ha a potméterek csak feszültséget szabályoznak, akkor kiválthatod megfelelő felbontású PWM + aluláteresztő szűrő kombinációval. Ha ennél precizebb dolog kell, akkor egy A/D-vel vissza is mérheted a szűrő utáni feszültséget, és pontosíthatod vele a PWM-et (akár egy PI vagy PID szabályozással). Ha nem simán DC feszültséget szabályoznak a potik, hanem egy áramkör részei, akkor bonyolódik a helyzet (pl digitális potival). Persze pontosabb válaszhoz ismerni kellene a feladatot.
Új hozzászólás Aktív témák
- Formula-1
- Apple Watch Ultra - első nekifutás
- Nem indul és mi a baja a gépemnek topik
- Milyen belső merevlemezt vegyek?
- PlayStation 5
- Yettel topik
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Google Chromecast topic
- Miért vezet mindenki úgy, mint egy állat?
- MILC felhasználók szakmai topikja
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest