Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Sziasztok!
Vettem két enc28j60-as vezérlőt. Az elsővel nincs semmi probléma, tudom használni. Viszont a nano-hoz valóval nem jutok egyről a kettőre. Nanoval használnám, tehát még csak elkötési hibáról sem lehet szó. Van valami trükkje a dolognak?
Sziasztok!
Hogyan lehet egy float változóban tárolt számot megadott tizedes jegyre kerekíteni? Pl. a szám 15,75283 Ha a matematika szabályai szerin 3 tizedesre kerekítem 15,753 lesz. Milyen utasítással lehet ezt arduinoval megcsinálni?
A hozzászólás módosítva: Nov 17, 2014
Kerekítésre való függvények:
Ha közelebbről szemléljük a dolgot, mikrokontroller alatt teljesen felesleges a float, int-et kellene használni. Pláne ha kerekíteni is kell.
Beszorozza az értéket 1000-rel, úgy kezeli a tizedeseket. Eddigi programozó pályafutásom során egyszer nem kellett float-ot használni, pedig egy pár kódot már megírtam. Vagyok annyira pimasz, hogy belenézek, hogy mit csinál a fordító a float-tal és a látott kód alapján arra az elhatározásra jutottam, hogy ha van más megoldás is, akkor nem használom. Lassú, röpködnek a kilobájtok, mindez mikrokontroller alatt, ami egyébként sem gyors és kevés a memória. A hozzászólás módosítva: Nov 17, 2014
Remélem ez nem az én hibám?
![]() Ez van az Arduinoba beépítve! Magára vessen, aki csak ezt ismeri (vagy ezt sem?)!
Közismert, hogy memória zabáló + veszet lassú, mégis használják, mert 1*űbb mint a Cpp.
Egyszer kertem
Idézet: „Szeretnek egy olyan idozitot beepiteni amely egy logikai valtozot (boolean) kulombozo ideig tartana true es false allapotba. Tehat az elsodleges fuggvenybe be kellene hogy keruljen egy valtozo, ami vegul kulombozo ido intervallumokat szamolna ugyanannak logikai erteknek es utana egy megfelelo idozito. Szerintetek ezek kozul megtenne nekem ezt ? Gyakorlatilag olyasmi kellene ami kepes lenne ugyanazt a labat kulombozo idointervallumokba kapcsolgatni high es low allapotba. Delay kivetelevel. Koszonom.” Idokozbe ratalaltam a vallaszra, ITT. Ha esetleg valakinek meg szuksege lenne ilyesmire. A hozzászólás módosítva: Nov 17, 2014
Helló!
Ha nem titok elmondanád nekem hogyan kell csak int értékek használatával kjelezni a következőt: Feszültségmérést szeretnék megvalósítani ADC segítségével. A feszültség mondjuk 3.1257V lesz. Ezt hogyan tárolom el int-ben?
Szia. Eltárolod mondjuk az 1000-szeresét, kiíráskor meg az ezred részének az egészrészét írod ki (szam/1000), raksz egy pontot, utána meg a szam%1000-et használsz, ez pedig a maradék. Unsigned Int kb. 65000-ig jo (2 a tizenhatodikon, minusz 1), ha nem elég, akkor legyen unsigned long, az már 2 a 32-iken, maradjunk annyiban, hogy az már biztosan elég. És nem utolsó sorban, sokkal gyorsabban számol az AVR int-tel vagy long-gal, mint float vagy double-el.
A belső ADC pontossága 10 bit. Kíváncsi vagyok, hogy hogyan éred el a 3.1257V pontosságot.
Tegyük hozzá, hogy már ehhez a 10 bithez is normálisan megépített áramkör kell, stabil táppal, ami nem ugrál. Minthogy Arduino alatt nincs AVCC szűrés, ezért mondjuk 9 bit az, ami stabilan mérhető vele. 512 különféle fokozat.
Mellesleg: fordítási időben számolsz float-tal, nem mikrokontroller alatt.
Igen. Ugy altalaban veve a mai processszorok, kontrollerek MOSFET technologiaval keszulnek. Tehat az arduino kontrollerrel epult, igy a kontrollerben levo parezer FET biztosan benne van.
Jelenleg 12bit az ADC felbontása az arduinón, egy erre való könyvtár letöltése után. A kijelzett értékek pedig teljesen stabilak.
Az ATMega 10 bites AD-val rendelkezik, nem hiszem hogy ezt SW-vel uberelni lehet.
Előzőekben nyújtott segítségekkel sikerült megoldani a számomra megfelelő működést.
Köszönöm a Te erőfeszítéseidet is.
En tanulmanyozhatom. Ez a kor negyszogesitese. Mennyivel bonyolultabb egy 1 1/2 $ ero 16 bites AD-t beepiteni. Mellesleg az eredeti leiras az Atmel doc8003.pdf .
Nézd, én vásároltam 12 bites AD-t, hogy növeljem a pontosságot. Végeredmény: 9 bites pontosság.
A helyzet az, hogy hiába 100 bites ADC, ha a tápfeszek, meg minden más nem olyan atom stabil, mint egy betonoszlop. A kérdésem arra vonatkozott, hogy megvan-e a háttér tudás arra, hogy hogyan lehet kialakítani olyan környezetet, ami képes 16/32/? bites ADC mintavételezésre. Értelemszerűen ha Arduino-t használ, akkor nincs, mert az AVCC-t egy elegáns mozdulattal a VCC-re rákötötték, ergo digitális zajszűrés 0. Azért fontos az AVCC és a VCC kettéválasztása, hogy a mikrokontroller digitális zaja ne befolyásolja a mérést. Ami meg a szoftveres 12 bites ADC-t illeti: abból indul ki, hogy ha 4-szer mintavételezel egy vonalat és 25%-ban 1 75%-ban 0, akkor az megfelel ADC érték + .25-nek. Ez vagy igaz, vagy nem, úgysem fogja senki méréssel hitelesíteni, akkor meg miért ne csinálnád? Jó marketing, hogy 12 biten nyomod az ADC-t. ![]() A hozzászólás módosítva: Nov 18, 2014
Gondoltam hogy nem elektroncső van benne, plusz nem is ezt kérdeztem. ("amelyen")
Hanem olyan, az arduino panelen lévő, mondjuk PWM-mel vezérelt MOSFET-re amelyre rátehetek mondjuk egy kis motort, stb.
„az 1024 mintavételből állt” és ez menyi idő alatt futót le?
![]() Szerintem semmi értelme a zajt jó hosszan átlagolni! Az akkor is csak zajmérés marad, semmi köze a tényleges jelhez!
Sziasztok!A témába hozzáértők segítségét szeretném kérni akiknek már van valami elképzelése,és építési tapasztalata Arduino androiddal való vezérléssel.Szeretnék építeni egy ilyen modulból felépülő vezérlést ami x csatornás relézett kimenete lenne,esetleg hőmérséklet kijelző csatorna is lenne benne.(ez már számomra ha lenne a tortán)
![]() ![]()
Ehhez alapvető szükséglet, hogy a vonalon egyenletes fehérzaj legyen.
![]() Megfelelően zajos környezetben működik az oversampling. Gondolj bele, hogy stabil tápfesz és vonal esetén 0.25-ös kvantálási érték mindig 0-ra van kerekítve. Az oversampling kizárólag akkor működhet, ha egy 1 egység körüli fehérzaj is hozzáadódik, így 25%-ban 1 lesz, 75%-ban 0. És ezután jön az, hogy az Arduino-n a VCC-t és az AVCC-t összekötötték. Sokat szórakoztam már ADC-vel, felkapcsolsz egy LED-et és elmászik a tápfesz, vele együtt az ADC is! Nem véletlenül kötelező szűrni az AVCC-t az Atmel doksija szerint. Két kérdés nyitva marad: valóban 12 biten mérsz-e, vagy csak 9-en és valami hihetőnek tűnő baromság hozzáadódik? Valóban azt méred-e amit akarsz, vagy ha elmászik a külső hőmérséklet, vagy éppen felkapcsolsz egy LED-et, akkor meghibban minden. Tegyük hozzá, hogy AVR ADC-n az optimális bemenő ellenállás 10k, tehát maga a mérés képes a mért értéket meghamisítani. Én MCP6024-es előerősítőt használtam, hogy ne másszon szanaszét az egész. Lehet a vakvilágba szórni a biteket felfelé, de hidd el semmi értelme mindaddig, amíg nincs képben az ember arról, hogy hogyan is megy egy ADC-s mérés normális körülmények között. A hozzászólás módosítva: Nov 19, 2014
Sziasztok! Azt hogyan lehetne megcsinálni, hogy egy int-ben lévő változót 1 tizedesjegyre kerekíteni?
Véletlenül nem a float-ra gondolsz?
Nekem az kéne, hogy adott egy int ben lévő változó, aminek mondjuk van 2 vagy 3 tizedesjegye és azt kerekítse, hogy csak 1 tizedesjegye legyen.
Csak Float-nak lehet tizedes értéke!
Az int csak egész szám lehet.
|
Bejelentkezés
Hirdetés |