Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Nekem véletlen sikerült arduinopromicro-val olyan USB módot kreálni (joystick egér összvér) ami az egeret pozícióra viszi.
Na ez jo hir, örülnék ha megosztanál némi részletet.
Van egy érintőgomb ami megérintésre pozícióra ugrik, majd bal egér gombot nyom, a koordinátákat eepromban van tárolva, 5 gombbal lehet betanítani a pozíciót. DynamicHID.cpp DynamicHID.h Joystick.cpp Joystick.h kell a működéséhez. Később felrakom one drive ra, mert lehet a driverekben is módosítottam valamit. A hozzászólás módosítva: Jan 24, 2023
Az alábbi kódban egy lcd gombokkal végzi a kalibrálást.
Hogyan kellene átírni a gomb funkciókat egy érintőképernyőn létrehozott gombokra? [code=c][/ /* 0.1- Button Function */ int buttonRead; buttonRead = analogRead (0); // Read analog pin A0. Pin A0 automatically assigned for LCD Display Button function (cannot be changed) currentButtonMillis = millis(); if(currentButtonMillis - startButtonMillis >= 300) { /*Right button is pressed */ if (buttonRead < 60) { LCD.setCursor(0,0); LCD.print ("PRESS <SELECT> "); LCD.setCursor(0,1); LCD.print ("TO CALLIBRATE ");} /* Up button is pressed */ if (buttonRead < 200 && buttonRead > 60) // Press up button to go to upper page { page = page - 1 ; if( page <=0) { page = 1;} startButtonMillis = millis(); } /* Down button is pressed */ if (buttonRead < 400 && buttonRead > 200) // Press down button to go to lower page { page = page + 1; if (page >3) { page = 3; } startButtonMillis = millis(); } /* Left button is pressed */ if (buttonRead < 600 && buttonRead >400) { LCD.setCursor(0,0); LCD.print ("PRESS <SELECT> "); LCD.setCursor(0,1); LCD.print ("TO CALLIBRATE ");} /* Select button is pressed */ if (buttonRead < 800 && buttonRead > 600) { currentOffsetRead = 1; // to activate offset for current voltageOffsetRead = 1; // to activate offset for voltage powerOffsetRead = 1; // to activate offset for power LCD.setCursor(0,0); /* set display words starting at upper left corner*/ LCD.print ("INITIALIZING..... "); LCD.setCursor(0,1); /* set display words starting at lower left corner*/ LCD.print ("WAIT 5 SEC ..... "); } }code]
Pontosan így van. Annak idején a pl. Total commanderhez írtam kísérletképpen egy tcstarter.exe programot. Ez annyit csinál, hogy elindítja a Tc-t. A Tc megjelenít egy ablakot, amin van három nyomógomb, és egy szöveg, pl. hogy nyomd meg az 1-es gombot, (minden indításnál véletlenszerűen dönti el, hogy melyiket: 1,2 vagy 3). Ha nem jó gombot nyomsz meg, akkor a Tc kilép. A starter megvárja az ablak megjelenését, megnézi a kiírt szöveget, majd megnyomja a kívánt gombot (küld egy gombnyomás üzenetet az ablaknak), ezután kilép, a Tc pedig fut tovább (a kis programom meg megspórolt nekem pár másodpercet ).
Szia!
Ma volt időm foglalkozni vele, de nem működik. Az óra és perc értékét hogy kell lekérni mert így nem megy ahogy írtad...próbáltam a get.Hour és get.Minute parancsokkal de nem jó...
Nyilván a kisujjamból nem tudom kitalálni, hogy neked milyen nevű változóban van tárolva az idő. Gondoltam azt be tudod helyettesíteni. Meg ha már RTC-t használsz, feltételeztem, hogy tudod is olvasni belőle az adatokat. A példám csak egy egyszerű megoldást mutat arra, hogyan lehet időzíteni, vagy időhöz kötni egy függvény meghívását a delay() nélkül.
Az RTC-hez használt library-ben vannak példa programok, ott meg tudod nézni hogyan kell használni. A hozzászólás módosítva: Jan 24, 2023
Jól van bocsánat, 0.1 szinten tartok, próbálom összeszedni az infot de nem mindig sikerül.
Utána nézek...
Semmi baj, nem kell bocsánatot kérned. Csak nem tudtam, hogy neked egy működő kész program kellene egyből. Ezek nem olyan bonyolult dolgok még az elején. Kicsit nézz utána mindennek, nézegesd a példa programokat.
Akkor jelenleg ott tartasz, hogy nem megy a kiolvasás sem az RTC-ből? Milyen RTC-t használsz?
Nem feltétlen kell egy működő kész program, ha segítséggel magam hozom össze különböző példákból azzal tanulom a legtöbbet.
Az RTC: DS3231. Most ott tartok hogy be van állítva a pontos idő, két közmű mérő impulzusait "lemásolja" és együtt számol annak órájával. Ezen óraállásokat írom SD-re. csak egyenlőre (millis) időalapon és nem a valós időhöz kötve.
Még csak harmadszor írom, hogy nem mindegy, hogy melyik RTC könyvtárat használod. Az innen-onnan összeollózott példák más könyvtárak alatt nem mindig működnek, ezért lenne fontos, hogy ha már a működését nem akarod megérteni, akkor legalább a másolás sikerüljön. Legalább 3 féle könyvtár van hozzá, a rinky, a rodan és az Adafruit (és lehet még amit nem ismerek).
Ha feltöltöd a teljes kódot jobban tudnak segiteni a mesterek
Ezt próbáltad: https://github.com/NorthernWidget/DS3231
Ott az examples mappában nézd meg hogyan kell használni. Másold át a programodba amit kell a now.ino fájlból. Milyen kontrollerrel használod? I2C kommunikáció jól van felépítve?
Igazad van, tényleg meg lehet csinálni. Sima egér inputra gondoltam, ami ugye differenciális, de még ott is meg lehet csinálni, ha felküldjük a bal felső sarokba és onnan mozgatjuk a helyére.
"ha már a működését nem akarod megérteni"
Meg akarom érteni, nem mondtam hogy nem, de kell hogy működjön és akkor bizonyos értékek, elnevezések vagy változók módosításával látom a hogy minek mi a hatása...
Este tudom folytatni, kösz.
Arduino UNO Az I2C...azt nem is értem hogy mit kérdezel. Csak annyi van meg hogy pl. LCD esetében nem kell annyi vezetéket bekötni mert ezzel csatolva egyszerűbb a működtetése de hogy a háttérben mi zajlik az homály.
Itt vannak a driverek:
Bővebben: Joystick Joystick.h fájlba még egy sort kell, beírni: #define JOYSTICK_TYPE_MOUSEJOY 0x01
Sziasztok!
Építettem egy egyszerű súlymérő egységet mérőcellával és működik is. Az a problémám, hogy nagyon lassú. Megterhelem felmegy 100 grammra, majd leveszem a terhet. 2-3 mp kell, hogy nullára álljon. Lassú. Gyors mérést szeretnék végezni vele. Van erre megoldás?
Anélkül, hogy belenéznék a programba: ha felfelé gyorsan megy de lefelé nem, akkor a konkrét mérlegcella ilyen lassú.
Folfele is lassu. Elotte egy PLC-n volt a cella, ott nagyon gyors volt. Nem a cella a lassu, hanem az elektronika.
Ha kódot osztassz meg inkább használd a kód gondot ahogy ITT ismerteti mnyugger.
A 64.ik sorba van egy ilyen
Ez 2 másodpercig időzit. Esetleg kisebb számmal kell megpróbálni hátha gyorsabb lessz
Ez indulaskor idozit, ameddig nullazza a rendszert. Nincs benne a "loop"-ban. A prg futasat nem befolyasolja.
Sziasztok!
Szeretnék segítséget kérni egy feladathoz. Digitális bemenetekről szeretnék beolvasni 'high" szintet, és ezeknek a szinteknek különböző értéket adni. Majd ezeket az értékeket szeretném összadni. Ezt hogyan kezdjem el? Valamint azt szeretném még megkérdezni, hogy olvastam, hogy az OLED kijelzők hajlamosak a beégésre. Hogyan lehet kijelzőn állandóan kiírt szöveget mozgatni? Mint régen a képernyővedőnél volt? Köszönöm előre is.
Mozgatni ... mindig mas poziciot x y koordinatat adsz meg neki amikor a kimelo uzemmodba kerul a rendszer.
Kepernyo torles , majd random x y poziciok utana oda random karaktert/pixelt irsz ki , majd torles vagy pixelt kapcsolsz ki . X Y vagy sor/oszlop parameterek a kijelzo pozicionalo fuggvenyekben amit a kijelzohoz irtak. A hozzászólás módosítva: Feb 3, 2023
Hello!
Az "if" függvénnyel kiértékelhetsz egy logikai relációt, ami lehet a digitális bemenet "h" szintje is. Aztán a végrehajtási résznél pld. egy konstans értékét átmásolod (vagy hozzáadod) egy változó értékéhez.
Egy példa a feladat megoldására:
Sziasztok!
UNO board-nál a 14 Digit bemenet esetében ha soros kommunikáció van akkor nem használható a 0. és 1. PIN
Ha a 0.-tól 13.-ig számozott pinekre gondolsz, akkor nem. De ha 14 digitális bemenetre van szükség, akkor az A0-tól A5-ig is használható digitális bemenetként, így a 0. és 1. PIN szabadon maradhat. Amúgy mi a kérdés?
|
Bejelentkezés
Hirdetés |