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   486 / 849
(#) morfondi válasza atus1981 hozzászólására (») Nov 1, 2018 /
 
Az Arduino tud PID szabályzást, bemenő jel 4-20 mA 0-5 V-ra átalakítva, kimenő jel egy gyors motoros szelepre, 0-5 V pl. Mennyire kell gyors?
(#) atus1981 válasza morfondi hozzászólására (») Nov 1, 2018 /
 
Az eszközök kiválasztása is kérdéses.
Azt szeretném megvalósítani, hogy van egy tartály, amiben változik a benne levő levegő nyomása és ezt a nyomást megmérve, ha a beállítotthoz képest magas, akkor kiengedni a szabadba, ha kevesebb, akkor rátölteni. Mérőeszközzel vagyok meglőve. Nem precíziós cucc kell,de 3-4 bar-nál ne csaljon egy tizednél többet, és illeszthető legyen arduinohoz.
Előtted amit ajánlottak,az érdekes lehet, de van 3000 és 20000 forintért is. Fura.
(#) KoblogPerGyok válasza atus1981 hozzászólására (») Nov 1, 2018 /
 
Aliexpresse-n vannak 3-4000 Ft értékben. Szerintem jók, mert a 1.5% hiba körüliek, bár a driftet nem írják le. miért kell tized pontosság? (Amúgy ez tudja)
(#) atus1981 válasza KoblogPerGyok hozzászólására (») Nov 1, 2018 /
 
Azért kell, mert elvi elvárás részemről, hogy jó legyen, ha már építek.
Egyébként úgy képzeltem el a dolgot, hogy, feldolgozás és a mért, beállított közti különbséget több részletben tölti, illetve üríti ki a tartályból. A szelepek nyitási idejét kell majd megadni, minél közelebb van a mért a beállítotthoz, annál rövidebb ideig van nyitva. Persze némi hiszterézissel.
(#) zosza18 válasza atus1981 hozzászólására (») Nov 1, 2018 /
 
A módosított hozzászólást nem küldte már el...
Az elmondott szabályzó kb. 150-200eFt között mozog...
Ha rám hallgatol, akkor veszel egy natur nyomásszabályzó szelepet... letéped a kupakját majd egy kuplungon keresztül összekötöd egy áttételes dc motorral, amivel már tekergetheted is egyszerűen. Ezt megfejeled egy encoder-el és már van visszacsatolásod is. Ez egyszerű és olcsó és még működik id.
(#) berkesandor hozzászólása Nov 1, 2018 /
 
MMA7660 szeretnék arra használni, hogy ha megmozdul, vagy megérintik, az interrupt lábát magasról alacsonyra váltasa. Nem szeretnék előre megírt könyvtárakat használni (a hely miatt legfőképp, meg mert erre teljesen felesleges).

Elvileg ez a kód állítja a regisztereket erre a feladatra:
  1. writeByte( MMA7660_ADDRESS, 0x06, B11111111);
  2.     writeByte( MMA7660_ADDRESS, 0x07, B00011000);
  3.     writeByte( MMA7660_ADDRESS, 0x08, B00111111);


Bővebben: Link

Miért nem működik? Mit rontok el?
(#) vargham válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
Mit értesz a nem működik alatt?
I2C kommunikáció amúgy rendben van?
(#) berkesandor válasza vargham hozzászólására (») Nov 1, 2018 /
 
Az rendben van, a regsiztereket is átállítja, leellenőzöm induláskor.
Hiába mozgatom a modult, nem interruptol.
Gondolom valamit rosszul állítok be.
(#) eSDi válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
Open Drain-re állítottad az /INT kimenetet (IPP=0, $07.6=0). Tettél felhúzó ellenállást?
(#) berkesandor válasza eSDi hozzászólására (») Nov 1, 2018 /
 
Tettem.
(#) NZotya válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
Lehet 0x08-nál B000-val kéne kezdeni? Jelenleg két azonos értéket vár egymás után, ami a beállított 1 másodperces mintavételezésnél, 2 másodperces mozdulatlanság...
(#) KoblogPerGyok válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
Az Arduinoval felhúztad az MMA7660 megfelelő lábait? Mert annak függvényében van off mode, Standby, és active mód.


A linkelt pdf-ben a 10. oldal. A leírás szerint van olyan mód, hogy az I2C megy, meg minden, de az eszköz nem megy.
(#) berkesandor válasza KoblogPerGyok hozzászólására (») Nov 1, 2018 /
 
5 láb van. VCC, GND, SCL, SDA, INT.
VCC - INT 10k felhúzó.
(#) berkesandor válasza NZotya hozzászólására (») Nov 1, 2018 /
 
writeByte( MMA7660_ADDRESS, 0x08, B00011001);

Igy sorsabb a mintavételzés, és nincs filter, sajnos ugyanaz.
(#) KoblogPerGyok válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
DVDD
DVSS

lábak nincsenek azon amit megvettél, vagy az előző hozzászólásodban azt írtad le, amit használsz?

Szerintem amit írtál az I2C-n:

writeByte( MMA7660_ADDRESS, 0x06, B11111111);

Csak azt állítja be, hogy az interrupt pin mely esetekre reagáljon. Te most beállítottad mindenre. Ez ok, de a gép működési módját nem a fentebb említett DVDD
DVSS lábakkal kell szabályozni?
(#) berkesandor válasza KoblogPerGyok hozzászólására (») Nov 1, 2018 /
 
(#) NZotya válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
Az a 103-as ellenállás, nem a GND-hez csatlakozik?
A 0x07-es címen biztos 0 kell ezekhez a regiszterekhez:
IPP
0: Interrupt output INT is open-drain.
1: Interrupt output INT is push-pull
NOTE: Do NOT connect pull-up resistor from INT to
higher voltage than DVDD.
IAH
0: Interrupt output INT is active low
1: Interrupt output INT is active high
A hozzászólás módosítva: Nov 1, 2018
(#) berkesandor válasza NZotya hozzászólására (») Nov 1, 2018 /
 
Activ low-ra állítom (0x07 regiszter, D7 bit, 0), szerintem akkor VVC-re kell az ellenállás, hogy alaphelyzetben magas legyen a szint, majd a 7660 lenyomja, akkor indul az interrupt. (én így értelmezem).
De átrakom, nem tart semeddig.
A hozzászólás módosítva: Nov 1, 2018
(#) KoblogPerGyok válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
Ok, akkor nem kell, mert az i2C-n is beállíthatod, amit meg is teszel:

writeByte( MMA7660_ADDRESS, 0x07, B00011000);

de ez szerintem Standby mode, mert jobbról az első bit a mode, jobbról a harmadik pdig a tone. 17.oldal.

Próbáld meg aktív módban!

writeByte( MMA7660_ADDRESS, 0x07, B00011001);

Ott van továbbá az IPP és IAH bit, amit most nem értek pontosan mire is kellene állítani.
A hozzászólás módosítva: Nov 1, 2018
(#) NZotya válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
Benéztem az ebay-es képet.
(#) NZotya válasza KoblogPerGyok hozzászólására (») Nov 1, 2018 /
 
Viszont a 0x08-as cím beállításakor mindíg aktív módbe kerül:

"MMA7660FC always enters Active Mode using the samples
per second specified in AMSR[2:0] of the SR (0x08) register.
When MMA7660FC enters Active Mode with
[ASE:AWE] = 11, MMA7660FC operates Auto-Sleep
functionality first."
(#) berkesandor válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
Ugyanaz a felhúzó átrakására.
És az active módra is.
(#) KoblogPerGyok válasza NZotya hozzászólására (») Nov 1, 2018 /
 
Akkor itt lehet valami:

IPP
0: Interrupt output INT is open-drain.
1: Interrupt output INT is push-pull
NOTE: Do NOT connect pull-up resistor from INT to
higher voltage than DVDD.
IAH
0: Interrupt output INT is active low
1: Interrupt output INT is active high

IPP-t 1 re, gondolom az húzza fel
IAH-t meg 0

Az arduinoban meg raise az interrupt, már ha jól gondolom.
(#) NZotya válasza KoblogPerGyok hozzászólására (») Nov 1, 2018 /
 
Egyetértek.
(#) KoblogPerGyok válasza NZotya hozzászólására (») Nov 1, 2018 /
 
Ha minden kötél szakad, akkor meg kell nézni, hogy az Arduino az adatokat milyen bit sorrendben küldi. Lehet eltérnek egymástól, az MSB nem ott van mindkét esetben.

De ez csak tipp, de mindegyik helyes, nem kell minden gyártónak 1 módszert alkalmaznia.
(#) berkesandor válasza KoblogPerGyok hozzászólására (») Nov 1, 2018 /
 
Szerintem adjuk fel mára... Ez sem lett jó.
(#) NZotya válasza berkesandor hozzászólására (») Nov 1, 2018 /
 
Azért, hogy ez is meglegyen:

"Output pins can be driven in three different modes:
-open drain - a transistor connects to low and nothing else
-open drain, with pull-up - a transistor connects to low, and a resistor connects to high
-push-pull - a transistor connects to high, and a transistor connects to low (only one is operated at
a time)"
(#) tbarath hozzászólása Nov 1, 2018 /
 
Most találtam: "The MPR121 is a freescale device. Freescale use a different I2C method, different to most other I2C devices, which has caused quite a few problems."

"Here is some code which reads a register on a freescale accelerometer.
You need to add the extra parameter "false" on the endTransmission() call, and then the extra parameter "true" on the requestFrom() call. The effect of these is not very well documented or explained."

Bővebben: Link
(#) atus1981 válasza zosza18 hozzászólására (») Nov 2, 2018 /
 
Az ötlet nem rossz, viszont nem az nyomásszabályzó tengelyének az elmozdulásáról kell a visszacsatolás, hanem a tartály nyomásáról. Viszont lehet akár léptető motor is, ami tekergeti a szelepet...
Szerintem amit ajánlottak fentebb eszközt, azt megrendelem, aztán meglátjuk. 3000 forint, nem nagy kaland ha mégsem válik be.
(#) morfondi válasza morfondi hozzászólására (») Nov 2, 2018 /
 
Használtam szódavíz töltő géphez 0-10 bar, 4-20 mA érzékelőt, mágnesszelepeket a töltéshez és ürítéshez, nem PID-del volt szabályozva, mert ez kétállású szelep volt. Megvolt, hogy 0.1 mp nyitással kb. mennyi nyomást tud elengedni, így könnyű volt kiszámolni, meddig kell. kb a szelepet nyitni. Persze, lényeg a tartály mérete miatt a tehetetlenség vagy a kapacitás.
Következő: »»   486 / 849
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