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   866 / 867
(#) sargarigo válasza tki hozzászólására (») Okt 29, 2025 /
 
Igen, én is láttam, de legalább "natív" forrás
(#) cua válasza sargarigo hozzászólására (») Okt 30, 2025 /
 
Igen, lattam , de ez egyelore csak elorendeles. Mondjuk nekem nem olyan surgos, mostanaban van mit epiteni, sorban allnak a hobby projectek
Egyet mindenkepp kell majd vennem, csak hogy lassam mit tud, mire tudom (tudnam, ha lenne idom) hasznalni..
(#) tki válasza sargarigo hozzászólására (») Okt 30, 2025 /
 
Legutóbb is pont ennyi volt, pedig már régebben néztem, és nem csak itt. : -) De lehet, hogy amíg meg nem érkezik, addig ez a szöveg marad. Csak utalni akartam rá, hogy továbbra is az igaz, hogy nem lehet megvásárolni.

A kabaréban volt így: a mesterember mindig azt válaszolta a kérdésre, hogy mennyi még a munka, hogy "úgy egy hét". Aztán mikor már látta, hogy ideges a megrendelő, hozzátette: "de az utolsó héten már készen leszünk"...
(#) Bakman válasza tki hozzászólására (») Okt 30, 2025 /
 
Vajon a Raspberry kihívójának szánták az UNO Q-t?
(#) tki válasza Bakman hozzászólására (») Okt 30, 2025 /
 
Egy ablakkezelő nélküli Linux is igen stabil, de a mikrokontrolleren amellett még az időzítések és a low latency reagálások is valószínűleg verhetetlenek az adott áron. Van egy modern operációs rendszered és egy mikrokontrollered egyben. Ugyanakkor a Raspberry lehetséges, hogy gyorsabb és fejlettebb (USB, hang stb.), asztali számítógépként, NAS-ként. médialejátszóként stb. is egészen jól elműködget - ezt még nem tudom. Tényeg, lehet, hogy a videochip lesz a legnagyobb különbség? Nem mintha a video része engem annyira érdekelne, de a megjelenítés azért jó dolog. A teljes hardveres és szoftveres nylítság azt hiszem, közös.

Egyébként a Google-ön jól működik a keresőoldalon levő AI-segítség is, ezt most kezdtem használni:
(#) cua válasza tki hozzászólására (») Okt 30, 2025 /
 
Nekem 3 darab Pi 4-en (8GB) fut itthon egy kubernetes cluster, teljesen megbizhato. Nem hasznalom low level, idozites-kritikus celra, csak mint altalanos 'szerver'-t.
Ez az Unu Q egy uj kategoria, egyelore nem nagyon latom mivel lehetne osszehasonlitani
(#) gyula84 válasza TavIR-AVR hozzászólására (») Nov 3, 2025 /
 
Kipróbálom, ha nem felejtem el ezt az USB-C dolgot.
(#) tki válasza TavIR-AVR hozzászólására (») Nov 3, 2025 /
 
Feltehetően nem a videó a követelmény, hanem a tápellátás: "PD-kompatibilis dongle/dokkoló".

Vagyis sima tápról nem biztos, hogy elindul a kártya, mindenképpen meg akarja beszélni vele, hogy mennyi energiára van szüksége. (És emellett lehet, hogy van más lehetőség is a táplálására.) Esetleg 5 V-nál magasabb feszültség is kell neki valamihez, bár ezt nem hinném.

Ezzel olyan szitukat lehet elkerülni, mint amikor egy Raspberry Pi ugyan elindul egy túl kis terhelhetőségű 5 V-os adapterről, de ha jobban meg van hajtva a kártya vagy több mindent táplál saját maga is, akkor lefagy vagy újraindul. És mindig akad olyan felhasználó, aki az 1 amperes tápjával is a gyártót szidja...

PD-t nagyobb fogyasztású vagy nagyon gyorsan tölthető újabb eszközökön szoktunk látni, ill. ott tűnik fel, de bőven léteznek kisebbek is: https://www.amazon.com/USB-C-PD-Charger/s?k=USB+C+PD+Charger .

A PD újabb, nyílt szabvány, de csak USB-C-n létezik - szemben a régebbi QC-vel, ami licenszköteles (Qualcomm, így pl. sok Qualcomm procis telefonban van), valamint USB-A és USB-B csatlakozón is működik és kisebb teljesítményeket tud.
A hozzászólás módosítva: Nov 3, 2025
(#) vargham válasza cua hozzászólására (») Nov 3, 2025 /
 
Dehogy új. Évek óta vannak ilyen pici Linuxos cuccok. Nekem például kb 6 éve itt van egy Onion Omega 2.
(#) tki válasza vargham hozzászólására (») Nov 3, 2025 /
 
Ezen csak egy proci van. Embedded Linux már 25 éve is létezett.
(#) vargham válasza tki hozzászólására (») Nov 3, 2025 /
 
Ezen valóban nincs plusz MCU.
Olyan megoldást viszont láttam többet is, ahol egy tokon belül van egy CPU és egy teljes mikrokontroller. A CPUn fut a komplex OS, hálózatkezelés, stb. Az MCU pedig intézi a realtime feladatokat. Az ST is kínál ilyeneket.
(#) cua válasza vargham hozzászólására (») Nov 3, 2025 /
 
Az messze nem ilyen kepessegu, mint ez board.
En is regota hasznalok BeagleBone (Black)-et, ez ugye mosolyogva viszi a QBUS es UNIBUS kartyak emulalasat regi PDP 11-es gepekben.
(#) gyula84 válasza tki hozzászólására (») Nov 4, 2025 /
 
Itt le van írva minden Bővebben: Link
(#) tki válasza gyula84 hozzászólására (») Nov 4, 2025 /
 
Elég jól el sikerült találni, még azt is, hogy nem kell neki magasabb feszültség. Azt nem látom külön említve - meg hosszú is -, hogy mitől nem bootol be adott esetben. Az egyik ok nyilván, ha kevés áramot ad ki magából egy töltő vagy port, annak pedig feltételei lehetnek.
(#) kobold333 válasza tki hozzászólására (») Nov 7, 2025 / 1
 
Kedves tki. Végre sikerült rászánni magamat, és PUTTY segítségével ezeket az alap kódokat beírtam próbaként. ÉS sikerült előrébb lépnem... Amint látom, jó sok dolgom lesz átírni a programomat ilyen működésre. És biztosan kell a gondolatmeneten is változtatni. Már előre égnek áll a hajam, de valamikor veszek egy nagy levegőt és nekilátok. Persze a programot is át kell néznem, mert azt is elfelejtettem... Hmm. Köszönöm a néhány útmutatást.
(#) kobold333 válasza Kera_Will hozzászólására (») Nov 7, 2025 /
 
Megígértem, h megosztom a többiekkel is az írásodat. Köszönöm. Itt lesz a leírásod:

Ha USB-s soros (serial) porton keresztül szeretnél Putty-val csatlakozni egy eszközhöz, akkor az eszközkezelőben (Device Manager) látható COM port számot kell megadni. Itt a pontos lépések a helyes beállításhoz:
? 1. USB-soros adapter csatlakoztatása
• Csatlakoztasd a számítógéphez az USB-soros adaptert.
• Ha szükséges, a megfelelő driver is automatikusan települ (pl. Prolific, FTDI, CH340 típusú chipek esetén).
? 2. COM port szám megnézése az Eszközkezelőben
• Nyisd meg az Eszközkezelőt (jobb klikk a „Start” gombra → Eszközkezelő).
• Keresd meg:
„Portok (COM és LPT)” menüpont alatt egy ilyesmit kell látnod:
• USB Serial Port (COM3)
• vagy Prolific USB-to-Serial Comm Port (COM4)
(Ez jelöli, hogy az adapter melyik COM porton van.)
? Jegyezd meg a COM számot (pl. COM3, COM4 stb.)
? 3. Putty beállítása
• Indítsd el a Putty programot.
• A bal oldali menüből válaszd a Session részt.
• Jobboldalon:
• Connection type: jelöld be a Serial opciót.
• Serial line: ide írd be a COM port nevét, pl. COM4
• Speed (baud): ez a kommunikációs sebesség, amit az eszköz igényel, pl. 9600, 115200, stb. (Ez az eszköztől függ — nézd meg a dokumentációját!)
⚙️ 4. További soros port beállítások (ha kell)
A Putty bal menüjében:
• Menj a Connection → Serial részhez.
• Itt beállíthatod:
• Data bits (általában 8)
• Stop bits (általában 1)
• Parity (általában None)
• Flow control (általában None vagy XON/XOFF, eszköztől függ)
✅ 5. Csatlakozás
Kattints a „Open” gombra. Ha minden jól van beállítva, meg kell jelennie a soros kommunikációs felületnek.
Ha valami nem működik:
• Ellenőrizd, hogy valóban a jó COM portot adtad-e meg.
• Próbáld újracsatlakoztatni az adaptert.
• Nézd meg, hogy más program nem használja-e a COM portot.

Sok sikert!
(#) Kera_Will válasza kobold333 hozzászólására (») Vas, 19:59 /
 
Kösszi!
Amire nem vàlaszoltál, form feed , lapdobás funkciót escape12 szekvenciát sikerült-e használnod?
Ok forrást át kell nézzed, küldtem 1 2 minta kódot is ... azokon láttad-e a változásokat?
(#) meslac hozzászólása Csü, 20:42 /
 

Redőnyvezérlés

Redőnyvezérlést akarok készíteni esp 8266-al. A vezérlés már működik, csak bizonyos idő után a relét ki kellene kapcsolni, de az nem akar sikerülni. Ahhoz kérnék segítséget.
  1. unsigned long elozoIdo = 0;
  2. long keslIdo = 3000;


  1. void loop() {


  1. if (header.indexOf("GET /5/fel") >= 0) {
  2.               Serial.println("GPIO 5 fel");
  3.               output5State = "felhuzott";
  4.               digitalWrite(output5, LOW);
  5.               digitalWrite(output6, HIGH );//output6 bekapcsolás
  6.  
  7.               unsigned long jelenlegiIdo = millis();
  8.               if (jelenlegiIdo - elozoIdo >= keslIdo); // Ellenőrzés, hogy eltelt legalább a késleltetési idő.
  9.                {
  10.                 digitalWrite(output6, LOW );           //output6 kikapcsolása
  11.               }              
  12.               elozoIdo = jelenlegiIdo; //(az időbélyeg frissítése)
  13.  
  14.             } else if (header.indexOf("GET /5/le") >= 0) {


Ebben a programrészben kérném a segítséget, ezt kellene működőképessé tenni.
Köszönettel.
(#) tki válasza meslac hozzászólására (») Csü, 20:55 /
 
  1. if (jelenlegiIdo - elozoIdo >= keslIdo); <---!
  2. {
  3.     digitalWrite(output6, LOW );           //output6 kikapcsolása
  4. }

Persze ezzel az a baj, hogy ütközik a leírással, mert azt mondod, a kikapcsolás nem sikerül, ez a blokk viszont mindig lefut, rögtön a bekapcsolás után is, vagyis sosem látnád a relét bekapcsolva, úgyhogy valami más baj is lesz. Esetleg úgy lehetséges, hogy a LOW állapot a bekapcsolt. : -)
A hozzászólás módosítva: Csü, 21:00
(#) meslac válasza tki hozzászólására (») Csü, 21:22 /
 
A program működik, csak a relé nem kapcsol ki. Két relé van az egyik a fel, a másik a le működtetést végzi. Az a probléma hogy, az aktuális relé mindig bekapcsolva marad, ami felesleges. Azt kellene megoldani, hogy egy idő után kikapcsolja.
(#) tki válasza meslac hozzászólására (») Csü, 21:37 / 1
 
Írtam egy nagy nyilat meg egy felkiáltójelet ahhoz a pontosvesszőhöz, ami az első számú probléma.

Pl. ezt az oldalt érdemes olvasgatni róla: https://data-flair.training/blogs/what-happens-if-we-use-semicolon-...-in-c/
A hozzászólás módosítva: Csü, 21:39
(#) lalca válasza meslac hozzászólására (») Pé, 7:19 / 1
 
Ezért kell jól átgondolni,mit akarok,hogy kell működnie a programnak.Érdemes egy flowchartot rajzolni,
vagy fejben jól átgondolni. Szóban:

loop
FEL? ha igen R2 off, R1 on, oldmillis = millis, IDŐ on
LE? ha igen R1 off, R2 on, oldmillis = millis, IDŐ on
IDŐ on? ha igen lejárt? (millis - oldmillis > 3000?) ha igen R1 off,R2 off,IDŐ off

A lényeg, az időt a loopban kell vizsgálni. Én még beraknék egy STOP-ot is,hogy bármikor meg lehessen állítani.

STOP? ha igen R1 off, R2 off, IDŐ off
(#) lalca válasza meslac hozzászólására (») Pé, 9:08 /
 
Közben eszembe jutott egy hiba

FEL & IDŐ off és LE & IDŐ off - ot kell vizsgálni.

A programodban a hiba, nem
if (jelenlegiIdo - elozoIdo >= keslIdo) hanem while (jelenlegiIdo - elozoIdo < keslIdo) {} csak így beragad a
program 3 másodpercre és nem lehet STOP.
(#) meslac válasza tki hozzászólására (») Pé, 11:05 /
 
Köszönöm a segítséget. Az még a hiba, hogy az "elozoIdo-t" mindig nullának veszi és így mindig teljesül a feltétel. Azt kellene megoldani, ha
  1. digitalWrite(output6, HIGH);
teljesül, akkor az "elozoIdo" vegye fel és rögzítse pillanatnyi időt és ezzel számoljon.
(#) meslac válasza lalca hozzászólására (») Pé, 11:27 /
 
Köszönöm a segítséget. Sajnos az nem szerencsés, ha leállítjuk a programot, mert az a 3 mp idő lényegesen több fog lenni. Akkor egyszerűen delay-el meglehetne oldani. Egyébként stop van bent, hogy útközben leállítható legyen. Arra kellene megoldás, ha elindul a redőny attól az időtől számítva bizonyos idő után leállítsa. A hiba az "elozoIdo-ben" van azt mindig 0-nak veszi, aminek az elindulás idejét kellene felvenni. Sajnos ezt nem tudom megoldani, mert nem nagyon értek hozzá.
(#) mnyugger válasza meslac hozzászólására (») Pé, 11:27 /
 
Ne direktben add - HIGH. Tedd változóba.
(#) tki válasza meslac hozzászólására (») Pé, 11:47 /
 
Remekül rájöttél. Nagyobb átszervezés nélkül nem fog menni, ahogy írják a többiek is - keresek majd erre is valamilyen anyagot, ha sikerül, ami segít elképzelni egy ilyen folyamatot.
(#) tki válasza tki hozzászólására (») Pé, 12:19 /
 
Ugye, valahogy így néz ki a kód külső része?

  1. void loop()
  2. {
  3.     ...
  4.     while (client.connected()) {
  5.       if (client.available()) {
  6.         char new_byte = client.read();
  7.         header += new_byte;
  8.         if (new_byte == '\n') {
  9.             ...            
  10.             if (header.indexOf("GET /5/fel") >= 0) {
  11.               ...
  12.             } else if (header.indexOf("GET /5/le") >= 0) {
  13.               ...
  14.             }
  15.             ...
  16.         }
  17.       }
  18.     }
  19.     ...
  20. }
Ilyet láttam példának több helyen is - bár nem a leghatékonyabb kód, de az most nem probléma.
A hozzászólás módosítva: Pé, 12:20
(#) Panhard válasza meslac hozzászólására (») Pé, 12:38 /
 
Szia. Megmutatom az én redőnyvezérlésem részletét, ami a mozgatást csinálja. Nálam tudja a vezérlés a teljes mozgatási időt és azt felosztja százalékosra. Bármikor meg is lehet állítani, és a redőnyt deaktiválni is lehet, ha mondjuk meghibásodik. A mozgat függvénynek a redőny száma kell és a százalékos érték és kiszámolja, hogy hány ms-ig kell mozognia.

  1. void loop(){
  2.  
  3.  
  4.  
  5.   unsigned long temp_millis = millis();
  6.  
  7.  for(unsigned int i=0;i<darab;i++){
  8.     if((start_ido_mozgatas[i]<temp_millis && stop_ido_mozgatas[i]>temp_millis && mozgatas_irany_fel[i])){irany_fel[i]=true;}else{irany_fel[i]=false;}
  9.     if((start_ido_mozgatas[i]<temp_millis && stop_ido_mozgatas[i]>temp_millis && mozgatas_irany_le[i])){irany_le[i]=true;}else{irany_le[i]=false;}
  10.     if(irany_fel[i] || irany_le[i]){mozgasban[i] = true;}else{mozgasban[i] = false;}
  11.   }
  12.  
  13.   if(irany_fel[0] && !irany_le[0]){digitalWrite(r00_fel,LOW);}else{digitalWrite(r00_fel,HIGH);}
  14.   if(irany_le[0] && !irany_fel[0]){digitalWrite(r00_le,LOW);}else{digitalWrite(r00_le,HIGH);}
  15.   if(irany_fel[1] && !irany_le[1]){digitalWrite(r01_fel,LOW);}else{digitalWrite(r01_fel,HIGH);}
  16.   if(irany_le[1] && !irany_fel[1]){digitalWrite(r01_le,LOW);}else{digitalWrite(r01_le,HIGH);}
  17.   if(irany_fel[2] && !irany_le[2]){digitalWrite(r02_fel,LOW);}else{digitalWrite(r02_fel,HIGH);}
  18.   if(irany_le[2] && !irany_fel[2]){digitalWrite(r02_le,LOW);}else{digitalWrite(r02_le,HIGH);}
  19.  
  20.  
  21.  
  22.  
  23. }
  24. //*****************************************************************************
  25. void mozgat(unsigned int rsz,unsigned int pos){
  26.  
  27.    if(mozgasban[rsz]){valasz = "{\"valasz\":[{\"szoveg\":\"Mar mozgasban van!\"}]}"; return;}
  28.    if(!aktiv[rsz]){valasz = "{\"valasz\":[{\"szoveg\":\"Redony uzemen kivul!\"}]}"; return;}
  29.    
  30.    unsigned int kulonbseg=0;
  31.    unsigned long mozgasi_ido=0;
  32.    start_ido_mozgatas[rsz] = millis();
  33.    unsigned int pluszido=0;
  34.  
  35.     if(pos<0){pos=0;}
  36.  
  37.     if(pos>100){pos=100;}
  38.  
  39.     if(pos==0||pos==100){pluszido=plusz_ido;}else{pluszido=0;}
  40.  
  41.      unsigned int posms = map(pos,0,100,0,teljes_mozgasi_ido[rsz]);
  42.      
  43.  
  44.     if(posms<posinms[rsz]-100){                 //lefelé
  45.         kulonbseg = posinms[rsz] - posms;      
  46.         mozgatas_irany_le[rsz] = true;      
  47.       }else{
  48.         mozgatas_irany_le[rsz] = false;      
  49.         }
  50.        
  51.     if(posms>posinms[rsz]+100){                 //felfelé
  52.         kulonbseg = posms - posinms[rsz];    
  53.         mozgatas_irany_fel[rsz] = true;      
  54.       }else{
  55.         mozgatas_irany_fel[rsz] = false;      
  56.         }
  57.  
  58.     if(!mozgatas_irany_fel[rsz] && !mozgatas_irany_le[rsz]){kulonbseg = 0;}
  59.  
  60.     stop_ido_mozgatas[rsz] = start_ido_mozgatas[rsz] + kulonbseg + pluszido;
  61.  
  62.  
  63.  
  64.           valasz="{\"valasz\":[";
  65.           valasz+="{\"szoveg\":";          
  66.           valasz+="\"OK\"";      
  67.           valasz+=",\"redonyszam\":";          
  68.           valasz+=rsz;      
  69.           valasz+=",\"kellpos\":";          
  70.           valasz+=posms;    
  71.           valasz+=",\"kulonbseg\":";
  72.           valasz+=kulonbseg;    
  73.           valasz+=",\"irany\":";
  74.       if(mozgatas_irany_fel[rsz]){valasz += "\"fel\"";}  
  75.       else if(mozgatas_irany_le[rsz]){valasz += "\"le\"";}
  76.       else{valasz += "\"nincs\"";}      
  77.           valasz += "}]}";
  78.  
  79. }
  80. //*****************************************************************************
  81. void veszstop(unsigned int sz){
  82.  
  83.     start_ido_mozgatas[sz] = millis();
  84.     stop_ido_mozgatas[sz] = millis();
  85.  
  86.   valasz = "{\"valasz\":[{\"szoveg\":\"Redony megallitva.\"}]}";
  87.  
  88. }
  89. //*****************************************************************************
  90. void service(unsigned int rsz,unsigned int sta){
  91.  
  92.   if(sta>1){sta=1;}
  93.  
  94.     aktiv[rsz]=sta;
  95.     EEPROM.write(rsz,sta);
  96.  
  97.     valasz = "{\"valasz\":[{\"szoveg\":\"Redony ";
  98.     valasz += rsz;
  99.     if(sta){valasz += " aktivalva!\"}]}";}else{valasz += " deaktivalva!\"}]}";}  
  100.  
  101. }
  102. //*****************************************************************************
(#) meslac válasza tki hozzászólására (») Pé, 14:31 /
 
Igen nagyon hasonló.
Következő: »»   866 / 867
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