Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   864 / 865
(#) tki válasza kobold333 hozzászólására (») Szept 16, 2025 / 2
 
Morogni fogok, de megadom a megoldást is - már először is erről írtam.

1. Miért lenne egyszerűbb az Arduino monitor használata egy hozzá nem értőnek, mint egy másfajta terminál? Miért kellene egy terminál emulációval rendelkező programon bármit is állítani ahhoz, hogy működjenek rajta az Esc szekvenciák, vagyis miből gondolod látatlanban, hogy szükséges? A Tera Term és társai eleve az úgynevezett VT100 terminál-emulációval indulnak, ami képes az Esc-szekvenciák feldolgozására.

2. Ha az Arduino monitor, ahogy megbeszéltük, nem kezeli az Esc-szekvenciákat, mitől kezelné a lapdobás karaktert? Ezek szerint ki is lett próbálva: nem használható - milyen meglepő.

3. A Windows ugyan eltakarja ezt az igen fontos eszközt, de bizony a programoknak parancssori paramétereik is szoktak lenni - pl. még a böngészőknek is, amikben akár teljesen más profil is választható más nyitott ablakokkal, más beállításokkal stb. A Tera Term-nek is nemhogy a Baudrate-et, hanem igen sok működési paramétert is meg lehet mondani indításkor. Így néz ki egy tisztességes szoftver.

4. Lehet próbálkozni a lapdobással, de nem fogsz örülni a villogásnak - korábban írtam, hogy mi vezethet eredményre: a kurzor pontos pozícióba állítása. Talán mégis meg akarod oldani a problémádat.

Itt vannak a Tera Term parancssori lehetőségei: https://deepwiki.com/TeraTermProject/teraterm/6.2-command-line-options

De kitapostam neked az utat, így lehet demózni, hogy működik, amiről eddig szó volt, a COM14-es portot állítottam be, a többi magáért beszél. Élesben nem kell a /R=fájl opció, az most bemenetként szolgál (a COM port helyett, ez egy tesztlehetőség), de ugyanolyan, mintha a soros porton át kapná a karaktereket a terminálprogram:

ttermpro.exe /C=14 /BAUD=115200 /F="C:\Program Files (x86)\teraterm5\TERATERM.INI" /R="C:\Program Files (x86)\teraterm5\testfile.txt"

A csatolt képeken megtalálod a többi információt - az Arduinóból egyszerűen ki kell íratni, amikről már beszéltünk. Annyit csaltam, hogy az INI fájlban megváltoztattam a betűtípust, hogy az ékezetek is látsszanak (UTF-8 kódolást használtam, neked nem kell), de végül is a felhasználódnak adhatsz előkészített INI fájlt is.

Elfelejtettem a testfile.txt-be az első sor elé írni még egy sort, olyat, hogy "Ez nem fog látszani, mert mindjárt kitörlődik.", de legalább neked is lesz mit kipróbálni.
A hozzászólás módosítva: Szept 16, 2025
(#) szendi001 válasza icserny hozzászólására (») Szept 17, 2025 /
 
Köszönöm a támogató választ! Elolvastam a dokumentumot és telejsen örömteli látni hogy fiatalok hogy elvannak ezzel a témával. SPI 128x32 lcd van két darab. Ma tesztelem őket a gyári mintaprogrammal. A 7 szegmensen jól működik, csináltam vele számlálót és órát is.
(#) szendi001 válasza icserny hozzászólására (») Szept 25, 2025 /
 
Szia! Sikerült a kis OLED elindítása. Ezzel nem volt kínlódás, arányaiban egyszerűen ment. Már csak a HW-787AB van hátra. Ez teljes izgalom, nem igazán akart életre kelni.
(#) kobold333 válasza tki hozzászólására (») Szept 27, 2025 /
 
Ajaj nekem. Jogos a morgás. Most éppen beteg vagyok, nem játszom a kütyüvel. De utána kipróbálom. Nagyon köszönöm a részletes leírást, és a segítséget...
(#) tki válasza kobold333 hozzászólására (») Szept 27, 2025 /
 
Jobbulást! Ilyesmire nem vonatkozik a noszogatás. : -) Remélem, nincs nagy gond.
(#) kobold333 válasza tki hozzászólására (») Okt 4, 2025 / 1
 
Semmi nagy baj, még próbafekvésre sem kellett elmennem Már egyben vagyok, köszönöm.
(#) Frankye hozzászólása Okt 5, 2025 /
 

Elvi elakadás - segítségkérés

Sziasztok!
Két, elvi logikai bukfencbe is belefutottam közvetlenül egymás után, ebben kérném a segítségeteket.
Az első:
Egy nyomógombot kell figyelni, amelyet ha megnyomna, egy sor műveletet kell végrehajtani, összesen kb. 20 másodpercig ismételgetve őket. (A 20 mp nem kritikus, csak közelítő érték, aközben a nyomógombbal történő bárminemű beavatkozás irreleváns.) Eddig akár hogyan próbáltam megközelíteni, vagy a 20 mp nem volt tartható (folyamatosan futott az alprogram), vagy csak addig futott az alprogram, amíg a gomb le volt nyomva. Mit ronthattam el? Mi lenne a jó megoldás?
A másik:
A fenti alprogram részeként LED-et kell villogtatni (eddig nem volna baj, ez megy is), azonban elég "speciális" módon kellene villognia: egy rövid felvillanás után egy rövidebb szünet, majd ismét egy rövid felvillanás, és egy hosszabb szünet. Ennek kellene ismétlődnie. A delay szóba sem jöhet (blokkoló), viszont a millis () -szel nem sikerült a különböző idejű "szüneteket" megoldanom. Tudnátok egy példát mutatni, hogyan lehet ezt megvalósítani?
Minden segítséget előre is nagyon köszönök!
(#) wbt válasza Frankye hozzászólására (») Okt 5, 2025 /
 
Sülthal vagyok a C++-hoz, de ez nagyon megszakítás után kiált. A gombodnál vársz, amíg meg nem nyomják, addig zárt ciklus, kiugrasz. A kimenetnél, ha valami mintázatot kell csinálni, akkor én csinálok egy akárhány Hz-es időzítő megszakítást (ez kb 7-14-30Hz-re jön ki, kinek, mi tetszik). A mintázat hosszától függően byte vagy word-be bekerül a mintázat (amikor a főprogram akarja, nálad a gomb megnyomása). A megszakítás meg csak annyit csinál (mindig), hogy elrotálja a mintázatot és kiteszi a kimenetre a legfelső /legalsó (szabadon választott) bit értékét. Hibajelzés kivillogtatásához nekem eddig elég volt a word. (itt tudni kellene a nálad igényelt jel/szünet arányt persze). Általában, ha már megszakításban vagyok, beolvasom a gombokat is (lassú INT miatt a pergésmentesítés is megoldva), hipp-hopp meg van minden, a főprogram meg unatkozik. Mivel időzíteni is kell, kell egy számlálót létrehoznod, ami minden INT-nél csökken és ha nem 0, akkor LED-villogtat, ha nulla, akkor átugorja. Tehát gombnyomásodkor 2 dolgot kell tenned: 1. beállítod a pattern-t, beírod az időzítőszámlálódba a kívánt időt és alszol...mindent magától végig megcsinál az INT. (ha félreértettem, bocs, de valahogy így) Ha nagyon nagy a jel/szünet arány, akkor nem úszod meg a jel/szünet táblát és a legkisebb változáshoz kell igazítanod az ütemjeled (INT).
(#) Régi motoros válasza Frankye hozzászólására (») Okt 5, 2025 /
 
Fontos lenne tudni, hogy a gombnyomásod utáni folyamat közben, elég csak a folyamatban lévő műveletet végrehajtani, vagy mást is csinálni kell közben?
Első esetben megoldható, ha a végzendő folyamatot beteszed egy fügvénybe.
A gombnyomást a fő programban figyelned, ha van gombnyomás, indul a fügvény ahol nincs gomb figyelés.
Ha a fügvény lefut, a fő programba vissza térve újra aktív a gomb figyelése.

Ha a mellék folyamat közben mást is csinálni kell a fő programban, akkor keress rá az "arduino multitasking" kifejezésre. Az már bonyolultabb lesz, én nem mennék bele.

A másik problémád szintén hasonló módon megoldható. Csak neked manuálisan kell programozni, hogy hány villanás legyen, milyen hosszú magas és alacsony szintekkel.
(#) Frankye válasza wbt hozzászólására (») Okt 5, 2025 /
 
Nem állítom, hogy mindent megértettem abból, amit írtál, de megpróbálom kibogarászni. Köszönöm a segítséged.
(#) Frankye válasza Régi motoros hozzászólására (») Okt 5, 2025 /
 
Első körben valószínűleg nem kell mást csinálnia a programnak a villogás közben, de lehet, hogy később majd ki kell egészíteni valami egyébbel is. Köszönöm a válaszodat.
(#) sargarigo válasza Frankye hozzászólására (») Okt 5, 2025 /
 
Nem próbáltam, de nézd meg!
  1. const int buttonPin = 2;
  2. const int ledPin = 13;
  3.  
  4. unsigned long startTime = 0;
  5. bool running = false;
  6.  
  7. enum State {IDLE, ON1, OFF1, ON2, OFF2};
  8. State state = IDLE;
  9.  
  10. unsigned long stateStart = 0;
  11.  
  12. // Időzítések (ms)
  13. const unsigned long shortOn  = 100;   // rövid felvillanás
  14. const unsigned long shortOff = 200;   // rövid szünet
  15. const unsigned long longOff  = 800;   // hosszabb szünet
  16. const unsigned long cycleTime = 20000; // 20 másodperc
  17.  
  18. void setup() {
  19.   pinMode(buttonPin, INPUT_PULLUP);
  20.   pinMode(ledPin, OUTPUT);
  21.   digitalWrite(ledPin, LOW);
  22. }
  23.  
  24. void loop() {
  25.   unsigned long now = millis();
  26.  
  27.   // Gombnyomás figyelés (aktív alacsony)
  28.   if (!digitalRead(buttonPin) && !running) {
  29.     running = true;
  30.     startTime = now;
  31.     state = ON1;
  32.     stateStart = now;
  33.     digitalWrite(ledPin, HIGH);
  34.   }
  35.  
  36.   if (running) {
  37.     if (now - startTime >= cycleTime) {
  38.       running = false;
  39.       digitalWrite(ledPin, LOW);
  40.       state = IDLE;
  41.     } else {
  42.       switch (state) {
  43.         case ON1:
  44.           if (now - stateStart >= shortOn) {
  45.             digitalWrite(ledPin, LOW);
  46.             state = OFF1;
  47.             stateStart = now;
  48.           }
  49.           break;
  50.  
  51.         case OFF1:
  52.           if (now - stateStart >= shortOff) {
  53.             digitalWrite(ledPin, HIGH);
  54.             state = ON2;
  55.             stateStart = now;
  56.           }
  57.           break;
  58.  
  59.         case ON2:
  60.           if (now - stateStart >= shortOn) {
  61.             digitalWrite(ledPin, LOW);
  62.             state = OFF2;
  63.             stateStart = now;
  64.           }
  65.           break;
  66.  
  67.         case OFF2:
  68.           if (now - stateStart >= longOff) {
  69.             digitalWrite(ledPin, HIGH);
  70.             state = ON1;
  71.             stateStart = now;
  72.           }
  73.           break;
  74.  
  75.         default:
  76.           break;
  77.       }
  78.     }
  79.   }
  80. }
(#) Frankye válasza sargarigo hozzászólására (») Okt 6, 2025 /
 
Köszönöm, kipróbálom.
(#) Directors hozzászólása Okt 9, 2025 /
 

Hálózati feszültség jelenlét érzékelő modul

Sziasztok!

Szerintetek ez Bővebben: Link a modul küldhet jelet 60Hz 110V esetén is egy ESP32-nek mondjuk ? Vagy csak is 230V esetén működik ahogyan az a leírásban van ?
(#) proli007 válasza Directors hozzászólására (») Okt 9, 2025 /
 
Hello! Működni fog 110V/60Hz-ről is, legfeljebb a melák ellenállást kell cserélni az értéke felére.
(#) Directors válasza proli007 hozzászólására (») Okt 9, 2025 /
 
Köszi!
(#) kameleon2 hozzászólása Okt 10, 2025 /
 
(#) Bakman válasza kameleon2 hozzászólására (») Okt 10, 2025 /
 
Egy cikk hasonló tartalommal, magyarul: HWSW.
(#) Massawa válasza kameleon2 hozzászólására (») Okt 12, 2025 /
 
Felvásárolta.
(#) kameleon2 válasza Massawa hozzászólására (») Okt 12, 2025 /
 
Az a kérdés, ez jó lesz-e vagy sem? Mert nyilván nekik az új, saját eszközök lesznek a prioritás, nem a közösség.
(#) Massawa válasza kameleon2 hozzászólására (») Csü, 13:38 /
 
Állitolag müködik a megszokott környezetben. Mechanikailag kompatibilis a régivel, azaz a régi dolgokkal is összedughato.
Persze sokkal többet tud, WiFi meg hasonlok is benne vannak.
(#) Régi motoros válasza kameleon2 hozzászólására (») Pé, 10:44 / 1
 
(#) proba válasza Frankye hozzászólására (») Pé, 12:16 /
 
A parsic nevű programból lestem, minden programrész úgy van megírva, hogy csak a szükséges ideig fogja a processzort. ( késleltetés pl A=A+1 ha A= Y megy a feladatra) Ha így megírod, és a végére teszel egy olyan delayt ami a szokásos programfutási idővel együtt kiad kb pl 100 ms-ot, akkor egyszerű lesz az időzítés. ha 1 sec kell akkor Y=10 ha 100ms akkor nincs is szükség semmire, minden körben végrehajtható egyszer. Igaz az időzítések nem annyira pontosak, de sok feladatot lehet párhuzamosan futtatni. A programozás kicsit átgondolandó, hogy ne akadjon el sehol. A gomboknál pl felesleges a prell mentesítés, megoldja a prellnél nagy valószínűséggel hosszabb programciklus. ( viszont az állapotukat tárolni kell, hogy a cikluson belül minden rész ugyan azzal az értékkel dolgozzon.)
(#) Frankye válasza proba hozzászólására (») Pé, 13:06 /
 
Köszönöm a kiegészítést. Hasonló elgondolás mentén haladtam magam is. Az időzítés egyébként egyáltalán nem kritikus.
(#) cua válasza Massawa hozzászólására (») Pé, 23:34 /
 
Ennek mar tenyleg semmi koze az Arduino Uno-hoz, csak a neve es a board formaja.
Ez egy monster, a jo ertelemben...
(#) kaqkk válasza Frankye hozzászólására (») Szo, 6:36 /
 
Én minden "szünetnek" csinálnék külön változót amit a megfelelő makróban már ergyszerű lenne használni (vagy az alap villogás többszörösét használnám a hosszabb értékekhez)
(#) Frankye válasza kaqkk hozzászólására (») Szo, 11:12 /
 
Anno én is ilyen elven indultam el. Akkor a párhuzamos, több szálon végrehajtásnál csúszott el az ötlet. ("Multitasking" üzem.)
(#) majkimester válasza cua hozzászólására (») Szo, 12:17 /
 
Tényleg nem sok. Csak a PCB forma, hogy a Uno Shield-eket rá lehessen tenni, de a general IO lábak kezelésére van rajt egy STM mikrokontroller, egyébként meg egy linux futtatására is alkalmas Qualcomm SoC. Egy új IDE is kell hozzá. Furcsa öszvér.
(#) tki válasza majkimester hozzászólására (») Szo, 13:37 /
 
Talán az az elv, hogy az UNO név nem adott mikrokontrollerekhez kötődik, hanem egy olcsón elérhető modern hobbieszközhöz. Az előző felett igencsak eljárt az idő, nemsokára nyilván az lesz a természetes, hogy valaki olyan hobbi- (vagy nem hobbi-) feladatoknak ugrik neki, amihez legalább ekkora hardver kell. Ha szoftveres oldalról jól megtámogatják, kirívóan egyszerűvé tudják tenni a használatát különböző feladatokra és még bizonyos korábbi képességei is megmaradnak, amik az egyszerűbb mikrokontrollerekre jellemzők, akkor lehet sikeres. Mondjuk, az a sok LED kicsit furcsa, hogy éppen az kellett mindegyikre...
A hozzászólás módosítva: Szo, 13:38
(#) Régi motoros válasza tki hozzászólására (») Szo, 17:02 /
 
Az 8x13 pixeles kijelző. De ha pakol rá az ember, már nem is látszik.
Hogy mire jó, az még rejtély, meg az is, mi volt a tervezők célja vele, de elvetemültebbek biztos kitalálnak rá valamit.
Következő: »»   864 / 865
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem