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   680 / 839
(#) sargarigo válasza sastas01 hozzászólására (») Feb 24, 2021 /
 
Ja, hogy szegmensenként akarod dimmelni?
Van a hardveres és a szoftveres megoldásom.
A szoftveres szerint folyamatosan pörgeted a kijelzést, és minden szegmenshez tárolod az aktuális dimmer értéket. Kiszámolod a ciklust, növeled a dimmert, kiteszed a regiszterbe, mész a következő szegmensre, és ugyanez elölről. Babra munka, de szerintem megoldható így.

A hardveres szerint meg fogsz egy pwm forrást (ami lehet az mcu-d is), és tranzisztoros kapcsolókkal egyesével átkapcsolgatod a ledeket rá amikor kell. Ezt még nem gondoltam teljesen át, csak gondolatébresztőnek szántam.

Lehet hogy a kondis megoldás egyszerűbb..

Igazából jó lenne valami közelebbit megtudni a célról, mert így csak bonyolult ötleteim vannak.
A hozzászólás módosítva: Feb 24, 2021
(#) sastas01 válasza sargarigo hozzászólására (») Feb 24, 2021 /
 
Belső térben lépcsővilágítást akarok végletekig bonyolítani
Minden lépcsőfok alján van egy ledcsík. Egy szenzor fent, egy lent, ha valamelyiket keresztezed, abból az irányból elkezdenek felkapcsolni a ledek lépcsőnként.
A lekapcsolás még kérdőjeles, hogy időzítve vagy más logika alapján működjön.

Namármost nagyon imádnám hogyha nem csak sima be/kikapcsolást lehetne megoldani.

Az oké, hogy tranzisztorokkal (vagy inkább fetekkel?) tudok elég gyorsan kapcsolgatni. Egy Ardu MEGA-val végülis készen is vagyok, de sokkal elegánsabb lenne egy nano-val megoldani
(#) vargham válasza sastas01 hozzászólására (») Feb 25, 2021 /
 
Ne shift regisztert használj, hanem külső, I2C PWM vezérlőt, például PCA9685-öt. Olcsón van belőle 16 csatornás, ebből kettővel már meg is van a 32 lépcsőfok.
(#) vargham válasza sastas01 hozzászólására (») Feb 25, 2021 /
 
A Megan sincs 30 db PWM.
(#) icserny válasza sastas01 hozzászólására (») Feb 25, 2021 / 2
 
Idézet:
„abból az irányból elkezdenek felkapcsolni a ledek lépcsőnként.”

Erről sürgősen lebeszélnélek, mert roppant balesetveszélyes, ha "menet közben" változik a megvilágítás. Ha valaki emiatt töri ki a kezét/lábát/nyakát vállalod a felelősséget?
(#) sargarigo válasza icserny hozzászólására (») Feb 25, 2021 /
 
Szerintem közelítésre akarja a fade effektet, nem használat közben!
(#) sargarigo válasza sastas01 hozzászólására (») Feb 25, 2021 / 1
 
Így azért sokkal egyszerűbb!
Ezek szerint nem ledenként akarsz dimmelni, hanem csak pár csatornát. Ehhez marad a kettes verzió: Shift regiszterrel kijelölöd a világítós szakaszt "felső oldalon" (SELECT), alulról meg közös pwm forrásból egy másik shift regiszter (PWM_EN) kapcsolja a fetet csatornánként. Itt egy móricka rajz hogy miképp gondolom. A rajzon egyetlen szegmens látható.
A SELECT alapból alacsony értékű, ekkor nincs világítás. Bekapcsolod a SELECT-et, és PWM_EN 0 esetén a PWM hajtja, majd amikor elérte a max fényerőt, akkor a PWM_EN 1-be állításával fixen ott is tartod. Mehet a következő szegmens.
A hozzászólás módosítva: Feb 25, 2021
(#) sargarigo válasza sargarigo hozzászólására (») Feb 25, 2021 /
 
A rajzon tranzisztort rajzoltam, de természetesen fetet kell érteni, ez csak egy vázlat
A hozzászólás módosítva: Feb 25, 2021
(#) sdrlab válasza sargarigo hozzászólására (») Feb 25, 2021 /
 
A FET az nem tranzisztor? ))
(#) sargarigo válasza sdrlab hozzászólására (») Feb 25, 2021 /
 
De az, csak nem bipoláris
(#) sastas01 válasza sargarigo hozzászólására (») Feb 25, 2021 /
 
Köszi. Ezt még meg kell emésszem, de azthiszem értem.

@icserny: Ahogy feletted is írták, mikor megközelítik kapcsolódjon fel futófény szerűen. Aztán ameddig a lépcsőn vannak, addig felkapcsolva marad fix fényerőn. Majd kapcsoljon le futófény szerűen. Menet közben nincs változás

@vargham: Ez is jól néz ki. I2C eszközöket még nem kezeltem, de izgalmasan hangzik
(#) szitko válasza sargarigo hozzászólására (») Feb 25, 2021 /
 
Köszi, akkor kell keressek másik modult.
A rendszer alapjában úgy van kitalálva, hogy az adó, csak egy "id" számot, és egy igen-nem "parancsot" ad és semmi mást. Vételre be sincs állítva. A parancs kiadása viszont véletlenszerű, ezért valószínűsítem, hogy lenne olyan eset, amikor a vevőhöz egyszerre több adótól érkeznének az "igen-nem" parancsok.
(#) sargarigo válasza szitko hozzászólására (») Feb 26, 2021 /
 
Szerintem itt ezzel nem lenne nagy gond. Ha néha egyszerre érkezik adás, gondolom hibásat fog venni és kész. Kell bele egy ellenőrző kód, amivel ezt lehet jelezni. Ha hiba van, akkor eldobod. Az adó meg ne egyszer küldjön, hanem többször ismételje meg a küldést. Így szinte biztosan célba is ér.
Lehetőleg minden adó másik késleltetést használjon két újraküldés között, és akkor nem akadnak újra össze. Máris pöpec lesz a cucc!
(#) Bakman válasza szitko hozzászólására (») Feb 26, 2021 /
 
Nem kell másik modul, csak némi programozás. A mester kérdezgeti a szolgákat amelyek csak akkor válaszolnak, ha nekik szól a kérdés. Ha X időn belül nem jön válasz, akkor a mester hibát jelez és lép a következő lekérdezésre.
(#) BarnaPili hozzászólása Feb 27, 2021 /
 
Sziasztok!
Segítséget kérek! Egy 24V-os motor üzemidejét kellene megmérnem. A motor egy hidraulikus egység meghajtómotorja (egy munkahengerrel egybeépített hidraulika szivattyú), ami egy tolóajtót nyit. A nyitóimpulzus időtartamával határozzák meg a nyitás mértékét. A nyitás-zárás ciklusból a nyitási időtartam a lényeg. A tipikus idő olyan 2.5 másodperc. Mivel 2 gép van, és nem dolgoznak egyformán, de a munkahengerek egyformák, csak az időzítés lehet a gond. Ezt kellene kizárnom/bizonyítanom.
Ami rendelkezésre áll itthon: 1 db Arduino nano, egy 2 soros 16 karakteres LCD kijelző modul, és passzív alkatrészek.
Köszönöm!
(#) proli007 válasza BarnaPili hozzászólására (») Feb 27, 2021 /
 
Hello! Nem az Arduino-val kapcsolatban..
Nem igazán értem a gondolatmenetedet. A motor működés üzemidejét mérnéd meg. Akkor mi köze van annak máshoz, nyitásiidő, meg munkahenger stb. ? A 24V-os motorokra ráteszel egy-egy optocsatolót, és amikor jelzik a működést egy belső (pld. 10ms) órajelet összeadogatsz. A kapott eredményt meg elosztod 100-al és másodpercben megkapod az összesített működési időt. Mi itt a gond és miért kell nyitási időt meg akármit figyelembe venni?
(#) BarnaPili válasza proli007 hozzászólására (») Feb 27, 2021 /
 
"Mi itt a gond és miért kell nyitási időt meg akármit figyelembe venni?"
A vezérlés működteti a motort bizonyos ideig.A becsukott tolózár az idő függvényében jobban-kevésbé kinyit,ezzel meghatározva az átáramlás keresztmetszetét.(takarmány).
Ezt az időt akarom megmérni.
(#) sargarigo válasza BarnaPili hozzászólására (») Feb 27, 2021 /
 
A nyitási idő a lényeg? Mert akkor lehet egyszerűbb két kapcsolót tenni a végállásokra, és a jelzések közötti idő a nyitási idő.
Vagy a Proli007-féle megoldás a motorra a jeladó.
A specifikációnak mindkettő megfelelőnek tűnik.
(#) BarnaPili válasza sargarigo hozzászólására (») Feb 27, 2021 /
 
Amire kíváncsi vagyok,az az,hogy mennyi ideig van a 24V a motoron. 1vagy 3 másodperc...
Csak megint túlfogalmaztam. Gyakorlatilag egy 24V impulzus hosszát akarom megmérni.
(#) sargarigo válasza BarnaPili hozzászólására (») Feb 27, 2021 /
 
Akkor a lehetőségek száma a korlátlan felé közelít!
Teszel egy izzót a motor vezetékeire, egy fotodiódával figyeled hogy van-e fény.
Teszel egy árammérőt a vezetékbe, és figyeled meddig folyik áram.
Csavarsz néhány menetet a vezetékre, és figyeled hogy mit indukált.
Továbbra is áll Proli007 megoldása a jeladóval.
Teszel egy relét a motor kivezetéseire, és amíg van kontakt addig működött a motor.
stb.
Én mondjuk a reléset tartom a legegyszerűbbnek.

szerk: Mondjuk ez eléggé nem arduino téma.
A hozzászólás módosítva: Feb 27, 2021
(#) BarnaPili válasza sargarigo hozzászólására (») Feb 27, 2021 /
 
A feszültség detektálása nem téma.Az időmérés nem megy fülre.Erre keresek megoldást.
Dúrom netet,de nem találok egy kész megoldást arra,hogy hogyan tudok egy impulzus fel és lefutása között eltelt időt megmérni.
Sajnos a programozási tudásom szinte 0.
(#) KoblogPerGyok válasza BarnaPili hozzászólására (») Feb 27, 2021 /
 
Ha a fesz ok, akkor nem gond, mert digitális pin-re kötheted. (ha a 24 ből 5V megoldható) mert az Arduinonak van interrupt pin-e.

Erre kell kötni a 5V detektort, a felfutó élre kell rakni az interrupt figyelést (függvényt), amiben egy millis() el lekérdezni az aktuális időt. A lefutásra egy másikat, így meg lehet mérni az egyik motor idejét. Ugyanez a másikra. A kettő eltérése lehet a két felfutó él különbsége is.

Ha tényleg megvan az 5V amikor bekapcsol a motor, akkor nem olyan bonyolult megoldani.
(#) sargarigo válasza BarnaPili hozzászólására (») Feb 27, 2021 /
 
Hát elég messzire jutottunk!
Ha a csatlakozás nem téma, akkor miért erről diskuráltunk eddig?
Jelen pillanatban tehát van egy kontaktunk. Amikor záródik, akkor indítasz egy számlálót, amikor megszakad akkor meg leállítod. A kapott érték az idő, amit kitehetsz az lcd-dre.
(#) BarnaPili válasza KoblogPerGyok hozzászólására (») Feb 27, 2021 /
 
Legegyszerűbben fogalmazva.Szükségem van egy dobozra,aminek a van egy bemenete.Azt akarom megmérni,hogy a bemeneten mennyi ideig (tizedmásodperc pontossággal) van feszültség. Ehhez vannak itthon a fentebb említett dolgok. LCD,Nano...
(#) kapu48 válasza BarnaPili hozzászólására (») Feb 27, 2021 / 1
 
Itt a megoldás egy motorra:
  1. // elteltMicros.ino
  2.  
  3. unsigned long elteltTime;
  4. unsigned long startTime;
  5. unsigned long endTime;
  6. int inPin = 7;    // pushbutton connected to digital pin 7
  7. int timeStart = 0;
  8. void setup() {
  9.   Serial.begin(9600);
  10.   pinMode(inPin, INPUT);    // sets the digital pin 7 as input
  11. }
  12. void loop() {
  13.  
  14.   // Start
  15.   if((digitalRead(inPin) == HIGH) && (timeStart ==0)){// read the input pin
  16.     startTime = micros();
  17.     timeStart = 1;
  18.   }
  19.   // End
  20.   if((digitalRead(inPin) == LOW) && (timeStart == 1)){// read the input pin
  21.     endTime = micros();
  22.  
  23.     elteltTime = endTime - startTime;
  24.     Serial.print("Time: ");
  25.     Serial.println(elteltTime); //prints time since program started
  26.     timeStart = 0;
  27.    
  28.   }
  29.  
  30.  
  31.  
  32. }

Feltételezem, hogy a jeladód nem prelez?

Csak mert abszolút kezdő vagy!
A hozzászólás módosítva: Feb 27, 2021
(#) BarnaPili válasza kapu48 hozzászólására (») Feb 27, 2021 /
 
Köszönöm!
Most szedem össze a dolgokat.
(#) sargarigo válasza kapu48 hozzászólására (») Feb 27, 2021 /
 
Idézet:
„Feltételezem, hogy a jeladód nem prelez?”

Itt szerintem még az sem lenne baj. Elég egy minimális delay-t betenni az if-ek után, és a prellt már ki is vette. Neki úgysem a konkrét érték a fontos, hanem az összehasonlíthatóság.
(#) kapu48 válasza sargarigo hozzászólására (») Feb 27, 2021 /
 
A delay() alatt lekésnénk az átkapcsolás időpontjáról!
Sajnos meg kel oldani a jeladó pergésmentesítését.
A legjobb valami opto kapcsoló lenne.

Azért lehet kísérletezni.
A hozzászólás módosítva: Feb 27, 2021
(#) BarnaPili válasza sargarigo hozzászólására (») Feb 27, 2021 /
 
A konkrét értékre vagyok kíváncsi. De úgy látom, hogy ez erősen meghaladja a képességeimet. Most megpróbálom beleásni magam kicsit a témába.
Mindenesetre köszönöm, hogy foglalkoztatok a dologgal!
(#) sargarigo válasza BarnaPili hozzászólására (») Feb 27, 2021 /
 
Úgy tűnik hogy nem voltam elég pontos. Arra gondoltam, hogy esetedben másodperces nagyságrendű a mérendő jel hossza, tehát ha beteszünk egy 20ms-os állandó hibát, az nem fog zavarni a tizedes pontosságú kijelzésben (pláne hogy mivel fix értékű az általam javasolt késleltetés, azt a kijelzésnél egyszerűen ki is lehet vonni).
Kapu48: mivel jelszintet nézel és nem triggerelsz, az a szint ott marad 20ms múlva is, mire lecsengett a prellezés. Másodperces nagyságrendben gondolkodunk, nincs miről lemaradni szerintem. Ettől még az optó persze hogy jobb lenne, de a kérdező nem ipari berendezést épít, hanem csak egyszer el akar végezni egy impulzushossz mérést.
Szerintem.
Következő: »»   680 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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