Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Sziasztok!
Nekem is az első van. Ami plusz a másikhoz képest a ki-be kapcsoló valamint a két "táp sáv" között külön-külön választható feszültség (0V-3.3V-5V)
Elvileg jó. Működik.
De azt hittem van erre egy egyszerűbb művelet is. Amit még nem tudok. Mert ez a 0,1,3,7,stb... ugyan úgy 8 bites szám, csak helyiértékenként növekvő. Mint a Johnson kód. Valami Binárisból Johnson kódba alakító művelet kellene... ![]()
Ilyen tudtommal nincs.
DE! Tudsz írni magadnak. ![]() Itt találsz segítséget:Bővebben: Link A hozzászólás módosítva: Okt 12, 2014
HI!
Lehet, hogy azért nem kaptál választ, mert ilyennel még nem nagyon foglalkozott egyikünk sem. Ha megvan a megoldás, akkor közkinccsé tehetnéd. ![]()
És mért pont az?
Mért nem mondjuk STK500?
Vagy azt, arduinon kívül is van élet.
Az STK 200-nak mi köze az arduinonak?
udv
Arduinot nem csak sorosan, bootloaderrel lehet programozni. Abban is közönséges atmega chippek vannak, ergo stk 200-al is lehet programozni.
Akkor nézzél utána annak miaz hogy bootloader a uController világban + stk 200 500 milyen fajta tudású uController programozó eszközök.
Ennyi ... Google a barátod ...
Sziasztok.
Vásároltam egy rotary encodert. Betöltöttem az arduino honlapján található kódot, és csak minden 2. fokozatban csinál valamit az encoder, tehát ha jobbra tekerem, ezt csinálja: 1-semmi-2-semmi-3...és így tovább. Mi a probléma? Íme a kód:
Mert csak az A bemenet felfutó élénél léptetsz, a lefutó élnél nem. Tovább növelheted a felbontást, ha B bemenet változásainál is számolsz.
A hozzászólás módosítva: Okt 13, 2014
Kipróbáltam. Azt csinálja, hogy: -1 0-1 0-1 0-1 0
tehát nem növeli vagy csökkenti az értéket, hanem oda vissza szabályoz egyet.
Lehet hogy a növelést/csökkentést elrontottam a második részben, próbáld így:
Sziasztok,
Az en ismereteim szerint egy analog erteket (peldaul LM35 leolvasasat) ha csak egesz szamkent akarok megjeleniteni akkor a program lekerekit, vagyis levagja a tizedesvesszo utani erteket. Gondolom nem tevedek. Amit en akarok az lenne hogy ne lekerekitse hanem hogy: ha az n erteke n,51 es (n+1),50 kozott van akkor nekem n+1 erteket mutasson. Pelda: ha az ertek 3,51 es 4,50 kozott van, akkor 4 -et irjon ki. Lehetseges egy ilyen fuggveny ? Vagy ha nem akkor a tovabbi szamitasokat csak az egesz szammal vegezze, ne vegye figyelembe a tizedesvesszo utani erteket. Koszonom. UI: remelem nem baromsag amit kerdeztem, ha igen akkor legyen torolve. A hozzászólás módosítva: Okt 14, 2014
Bővebben: Link Matematika szabályai szerint 3.5-4.49999ig 4re kerekítünk, tehat nem 4.5ig. Azt már 5re.
Szia!
Megosztom az én rotary encoder kódom. Amit tud: normál sebességű tekerésnél 10-zel csökkenti vagy növeli a változót, "hipergyors" tekerésnél 50-nel, ha lassan tekered, akkor pedig 1-gyel. Felrakom az egész programot, szerintem ki tudod bogarászni belőle ami neked kell. Ez minden kattanásra reagál, és csak egy interrupt pin-t használ fel. Az alap kódot én is úgy találtam, viszont a gyorsulás érzékelés már saját részlet.
Vagy még ez is megoldás:
x = x+0.5; int y = (int)x;
Koszi, azt hiszem ez utobbinal maradok (Arduino - Cast).
Remelem mukodik nalam is.
Igen, ez egy megoldás, bár a kockafejű informatikusok nem rajonganak érte. A lényeg: működik, használható.
Viszont eszméletlen lassú és rengeteg memóriát foglal a mikrokontrolleren. Egy mezei PC-n, vagy laptopon a float/double típusok gyakorlatilag minimálisan lassabbak az int-nél, hardverből tolnak mindent. A minőségi videokártyákról (AMD/NVidia) meg ne is beszéljünk, mert az ottani számítási teljesítmény tényleg brutális. A mikrovezérlő egyik fenti esetbe sem sorolható és egy mezei float összeadás órajelek százait veszi igénybe, az osztás, szorzás meg még sokkal lassabb. Kerekítésre használni lebegőpontos aritmetikát az ágyúval verébre lövöldözés tipikus esete. Ha 1 számjegy pontosságra van szükséged, akkor az int-et felszorzod, 16-tal. - tört rész: szám AND 15 - egész rész: szám / 16 Amikor a tört rész nagyobb 8-nál (szám AND 15) felfelé kerekítesz.
Kipróbáltam a kódodat.
Sajnos nem bírom feltölteni az arduinomra, mert fordításkor ezzel a sorral minden baja van: LiquidCrystal_I2C lcd(0x26, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
Az könnyen előfordulhat, mivel ott egy I2C-re kötött, 0x26-os címen levő, 20x4-es kijelző használok. Ha neked normál kijelződ van, nem I2C kapcsolattal, akkor ahhoz írd be a megfelelő sort: LiquidCrystal lcd(12, 11, 5, 4, 3, 2); (a lábakat csatlakoztasd megfelelően!!!) , az include részben is cseréld ki erre: #include <LiquidCrystal.h> . A setup részben pedig írd át, ha kisebb kijelződ van, mondjuk 16x2-es erre: lcd.begin(16, 2); . További infók itt: Bővebben: Link
A hozzászólás módosítva: Okt 14, 2014
Szia. Ha jól értem, bármilyen műveletnél az egyik tag tört részt tartalmaz, akkor az egész művelet float-ként lesz értelmezve? Gondolok itt pl. az ADC visszaalakítása feszültséggé: (Vref*ADC_erte)/1023 (10bit esetén), az eredmény float lesz, amit mi nem szeretnénk. Mit lehet tenni ilyen esetben?Esetleg mV-ban megadni a Vref-et, így az eredmény is két tizedes jegyig lesz pontos (vagyis le lesz vágva a többi). Vagy a Te módszereddel kerekíthető.
A Te módszered nem nagyon értem, mire gondolsz 1 számjegy pontosságon? 1 tizedes jegyet a vessző után? És hogyan lesz egy egész int számból tizedes jegy?
Sziasztok! Szeretnék csinálni arduinoból egy autómata akkumulátortöltőt, arra gondoltam, hogy egy tranzisztorral vezérelném, illetve, hogy egy analogread()-del oldanám meg, de ez azért nem jó, mert ha megy a töltés, akkor nem fogja tudni megmondani az akku feszültségét, mert a töltőáramét fogja mérni, ezért mindíg le fog kapcsolni a töltés. Hogyan lehetne ezt kiküszöbölni, a másik kérdésem milyen tranzisztort használjak? Előre is köszi!
|
Bejelentkezés
Hirdetés |