- Windows 11
- ASUS routerek
- Az AI függővé teszi a bankokat a big tech-től
- Milyen routert?
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- WordPress tartalom kezelő rendszer (CMS)
- ArchiCAD és Artlantis topik
- Tarr Kft. kábeltv, internet, telefon
- Facebook és Messenger
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
-
IT café
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Undoroid
őstag
Már hogyne lenne!
hogyan?
...de félre a tréfát! Agyaltam egy kicsit a feladaton és arra jutottam, hogy ugyan nem ilyen elegánsan, de nagyon egyszerűen meg tudom oldani a feladatot a jó, öreg 555-ös IC-vel! A kimenetére -a szokásos módon- egy minirelé és máris dombon a tanya!
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
-
Tomika86
senior tag
Sziasztok
Belekeveredtem a külső AD konverterbe 😀
Ads7828 i2c-ről van szó. 3,3vról működik. 12bites.
Itt akkor a skálázása 0-3,3v 0-4095 - ig van igaz?
Mert van egy 22kohm/82kohm feszültségosztó a 12Vos bemeneten, utána 10kohm/100nF aluláteresztő szűrő.
De nem jön ki a matek amit szeretnék.Csak nem tudom hol rontom el.
-
stopperos
senior tag
válasz Tomika86 #16103 üzenetére
Én nem ismerem, de az adatlapja alapján van neki egy 2,5V-os belső referenciája. A kérdés, hogy te mit csinálsz a REF_in/REF_out lábbal, van rá kötve valami? Vagy úgy programoztad, hogy a belső referenciát használja?
"What is Linux? I only joined because of the the penguin..." - meanwhile in the linux community. http://9gag.com/gag/arpZGOy
-
And
veterán
válasz Tomika86 #16105 üzenetére
Ha belső referenciát használsz, mindenképp 2,5V lesz a mérés vége. Viszont konfigurálható pl. a bemenet típusa (szimpla vagy differenciális) a referenciaforráson felül. Pontosan milyen értéket küldesz be a command byte-on keresztül? [mod: valamint melyik pin-ekre van kötve a bemeneti forrás?]
Az adatlapon nem látok követelményt vagy ajánlást a forrásimpedanciára vonatkozóan, de kicsit túlzónak érzem a külső feszültségosztó - ha jól értem, az van a bemenet előtt - és az azt követő RC-szűrő ellenállásértékeit. Annyit említ, hogy a bemeneti áram a konverziós ráta függvénye, és hogy a belső mintavevő kapacitás 25 pF értékű.[ Szerkesztve ]
-
And
veterán
-
And
veterán
válasz Tomika86 #16110 üzenetére
Azért én csak megnézném, mit produkál tized akkora ellenállásokkal (így az osztó árama még mindig csak 1mA körüli lesz). Ha a konverziós ráta alacsony, vagy relatív hosszú időközönként veszel csak egy-egy mintát, akkor nem ezzel lehet a fő probléma. A bemeneti COM és a táp GND-je amúgy össze van kötve?
-
MrChris
nagyúr
Van olyan távolságmérő modul, ami ~1m-től mér 10-20 méterig, cm pontossággal, viszonylag szűk sugárban?
-
tonermagus
aktív tag
Sziasztok!
Ti hogy oldanátok meg?:
Az Arduino Mega mini-t az ICSP lábain keresztül programozom. Gyárilag ezekbe a típusokba nincsenek beforrasztva az ICSP tüskék. Nyilván be tudom forrasztani, de a feltöltés után le kell vágnom a lábait mert ha rajta vannak a tüskék akkor nem tudom visszatenni a dobozba (fordítva beforrasztva sem). Forrasztás nélkül meg hiába tudom beledugni a lyukakba a programozó kábelét amibe előzőleg bedugtam a tüskéket az nyilván nem kontaktol.
Milyen más lehetőségeim vannak? gondoltam rá hogy a tüskéket bevonom vékony ónnal, hátha jobban kontaktolnak, de szerintem esélyeteln olyan vékonyan és szépen megcsinálnom hogy belemenjenek a foglalatokba... -
nagyúr
válasz tonermagus #16117 üzenetére
Ha beforrasztod a tüskéket, majd lehúzod róluk a fekete műanyagot és lecsíped úgy, hogy még beférjenek a dobozba? Milyen doboz ez, mennyi hely van benne?
Akkora hosszú tüskét kellene rajta hagyni, amire rá tudsz csippenteni egy ilyet, vagy egy ilyet.
[ Szerkesztve ]
-
tonermagus
aktív tag
jaj igen, elfelejtettem írni azt fontos dolgot, hogy elképzelhető hogy később újra programozni kell, így a levágást nem annyira preferálnám..
Mindenesetre az a csipesz amit linkeltél elég érdekes... sosem láttam még ilyet. Viszont nem tudom hogy ez a 4*2-es ICSP tüskékre rá lehet-e rakni... -
nagyúr
válasz tonermagus #16119 üzenetére
Egy ilyen csipeszt rendeltem valamikor réges régen, de még sosem próbáltam ki. Most elővettem, hogy lefotózzam, és tényleg, ez SMD chipekhez való Olyat akartam venni, amivel egy 8 lábú DIP chipet, mint mondjuk egy Attiny85, beforrasztva fel lehet programozni.
-
nagyúr
válasz tonermagus #16119 üzenetére
Értettem én, hogy később újra használnád, azért kérdezem, hogy mekkora tüskének van hely a dobozban? Ha lehúzod róla a fekete távtartót és elvágod kb. felébe a tüskéket, akkor sem férnek be?
-
Tomika86
senior tag
A többit 5v-al és potenciometerrel kipróbáltam, 3,3kohm - 3,3kohm osztóval. Ezek jó értéket adtak.
Az akksihoz 8,2kohm - 1,6kohm(ez nincs) rakok akkor a 2,5v-max bemenethez és így skálázom be majd.Az i2c adatkiolvasás sebességét vagy az egész program futását láthatom abban, hogy olyan az értékkiolvás mintha 1s-ként lenne adat olvasva?
Ki kell próbálnom csak magát a kiolvasást -
And
veterán
válasz Tomika86 #16122 üzenetére
Az adatkiolvasás (amit megelőz a command byte beküldése, ami ténylegesen indítja a konverziót) sebessége annyi, amennyit az I2C-master konfigurációnál megadsz. Valójában nem a kiolvasás sebessége az érdekes, hanem a teljes A/D-konverziók egy másodperc alatti száma, bár lehet, hogy te eleve ezt értetted alatta. Ez egy SAR-regiszteres ADC belső pufferfokozat nélkül, vagyis a bemeneti mintavevő és -tartó kapac töltési / kisütési rátája határozza meg a bemenőáramot - ez a túlságosan nagy forrásimpedancián keresztül meghamisíthatja a mérés eredményét -, ami így végső soron az SPS-értéktől függ. Te eleve egy lassan változó DC-szintet szeretnél konvertálni, nincs szükséged őrületes mintavételi sebességre.
#16115: mivel az A/D-konverziónak része a mintavétel, ami egy konverziós ciklus alatt egyszer történik meg, ezért a kettő ekvivalens. Az ADC adatlapja is hol így, hol úgy hivatkozik rá. -
Tomika86
senior tag
50ksps a mintavételi sebesség, 1sec alatt 50000mintát tud? Az i2c kommunikáció standard, az 100khz ha jól tudom.
Az is elképzelhető hogy a library rossz nekem?Az ADS111x sorozat amit szoktak használni, de csak 4 csatornás, bár 2db jó lett volna.
Ez max 860sps sebességű szigma delta.
Ez jobb lett volna?Vagy az ads7828 is jó lesz, csak elötte a szűrés nagy impedanciás?
[ Szerkesztve ]
-
And
veterán
válasz Tomika86 #16125 üzenetére
Ja, hogy ez még mindig a mutatós / Nextion-os projekt . Nem halott ügy, de akkor sincs szükséged sok ezer minta / szekundumos sebességre, maximum néhányszor 10-es nagyságrendben. Igen, az ADC maximális sebessége 50 kSps, de ez csak az általa támogatott legnagyobb I2C-órajelnél realizálható, mivel utóbbi gátat szab a nagyobb konverziós rátának. A standard 100 kHz-es I2C mellett a ADS7828 legnagyobb elérhető sebessége adatlap szerint 2000 sample/sec.
Az ADS111x-ek 16-bites, nem is túl gyors ADC-k, szerintem 'analóg' kijelzéshez túlzás ekkora felbontás. Jó az ADS7828 is, de nagyobb sebességnél valóban kis forrásimpedanciát igényel, vagy egy külső követő / puffererősítőt (pl. 1x-es rail-to-rail OPA-kapcsolás formájában). -
Tomika86
senior tag
Igen még mindig 🙂
Jelenleg már esp32-vel. Azért jött az i2c ad hogy ne használjak el lábat az esp32ből. Hosszú project lesz ez.
Tehát akkor vagy csökkentek az ad bemenetein lógó impedanciákon, vagy követő opampot rakok plusszba be, de akkor új panel kell.
Nem tudom, hogy kell e nekem ez a túlzott dupla szűrőtag. Mennyire kell szűrnöm a bemenetet. Milyen frekvenciára kell szűrnöm? Mert ez a 10kohm, 100nf 160hz törésponti frekvenciát ad. -
nagyúr
válasz Tomika86 #16124 üzenetére
A mutató sebességének a folyamatosságához elég 12-15 mintavétel is, de valójában akár másodpercenként 2-3 mintavétellel is meg lehet oldani a folyamatos mozgást mondjuk a sebességmérőnél vagy a fordulatszámmérőnél, csak a két érték közti "képkockákat" kell ügyesen kiszámolni.
-
Tomika86
senior tag
Mire gondolsz az ügyes képkocka számolas alatt?
Nextionban a mutatónak fokot küldök át.Át rendeztem a program struktúráját, a függvény hívásokat. Kiderül majd.
Az egy ciklus lefutási idejét a micros vagy millis értékének a számolásával a loop elején és végén megtudom határozni a ciklusidőt? Csak kíváncsiságból.
Mondjuk MEGA2560nál nem néztem meg.
Köszi[ Szerkesztve ]
-
nagyúr
válasz Tomika86 #16130 üzenetére
Mire gondolsz az ügyes képkocka számolas alatt?
Hát ha van mondjuk másodpercenként egy beolvasás. A két érték különbözetét elosztod mondjuk 12-vel, és 1/12-ed másodpercenként növelve/csökkentve újra küldöd a köztes értékeket. Igaz így lesz a folyamatban egy 1mp-es késés, de gyakoribb beolvasásnál ez csökken. 2-3 beolvasásnál szerintem már észre sem lehet venni.
Az egy ciklus lefutási idejét a micros vagy millis értékének a számolásával a loop elején és végén megtudom határozni a ciklusidőt?
Igen, de pontosabb értéket kapsz, ha mondjuk 1000 ciklust mérsz le és visszaosztod. Már ha van erre lehetőség.
-
Janos250
őstag
válasz Tomika86 #16134 üzenetére
Azt írtad, hogy ESP32-vel csinálod.
Akkor tedd át a 0-ás magra egy külön szálba az olvasást.
Mellesleg rettentően soknak tűnik számomra az a 7-800 ms, anélkül, hogy ismerném a konkrét IC-t.
Esetleg az I2C inicializálást nem véletlenül a ciklusba tetted?[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Tomika86
senior tag
válasz Janos250 #16135 üzenetére
Setup blokkban van az inicializálás.
Azt megtudom csinálni a kettő maggal, hogy egyik akkor kiolvas és a másik mag ezt az értéket használja fel? Tehát csak fizikailag van kettő magon, de a programfutásban átlátni a változókkal egyikből a másikba?
Ha jól gondolom 2 loop blokk lesz a kettő maghoz?Esetleg az i2c felhúzó ellenállásai 10kohmosak ez nem okoz gondot? Van ahol 2,7kohm vagy 4,7kohm van használva.
Köszi
-
gyapo11
őstag
válasz tonermagus #16117 üzenetére
Ónozást nem javaslom, kontakthibás lesz. Még az ezüst sem elég ellenálló, az arany az jó, csak kicsit mérgező vegyszerek kellenek hozzá.
Ha nem férnek el a tüskék, akkor vidd el a doboz egy másik pontjára vezetékekkel. Csak nem tudom hogyan lehet rögzíteni.menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
-
nagyúr
válasz Tomika86 #16136 üzenetére
Esetleg az i2c felhúzó ellenállásai 10kohmosak ez nem okoz gondot? Van ahol 2,7kohm vagy 4,7kohm van használva.
De bizony, a magas ellenállás pont alacsonyabb sebességet okozhat. Cseréld kisebbre! A szabvány úgy tudom, hogy 4,7k-t igényel, hosszabb vezetéknél akár kisebbet is. Milyen hosszú vezeték van a kettő közt?
-
Tomika86
senior tag
Hát kicseréltem a felhúzó ellenállásokat, de nem változott. Megpróbáltam 400kHzen az i2c-t, így sem.
Az a library a példaprogramot rátöltve is 800ms mire 8 csatornát kiolvas.
Egy másik library 1sec alatt 5x ad adatot a csatornákról, de viszont csak a ch0 csatorna működik, ez változik csak ☹️ -
And
veterán
válasz Tomika86 #16143 üzenetére
(Ezt csak úgy megkérdezem: miért kell annyira library-függővé tenni ennek az ADC-nek a működtetését? Az összes I2C kommunikáció 2 byte /cím + parancs, utóbbi mindössze hat hasznos bitet tartalmaz/ beírásából majd 3 byte /cím + 2 byte eredmény/ kiolvasásából áll. Nem lenne egyszerűbb ezt natív I2C-parancsokkal megoldani? Tényleg nem tudom, mit ad még ehhez hozzá a library, mert nem ismerem. De az ADC nyers kezelése sem egy űrtudomány.)
-
Tomika86
senior tag
Szia!
Ez így jó lehet?
#include <Wire.h>
#define Addr 0x48 // ADS7828 Address byte: Hex: 0x48 Bin: 10010000
// 10010 A1 A0 R /W
void setup()
{
Wire.begin(); // I2C kommunikáció inicializálása MASTER-ként
Serial.begin(9600); // Soros kommunikáció inicializálása, baud rate beállítása = 9600
delay(300);
}
void loop()
{
int kiolvasott = ADS7828_olvasas (Addr, 0x0C); // Hex: 0x0C Bin: 0000 1100 SD, C2, C1, C0, PD1, PD0, x, x
// 0: Single-End, 000: Ch0, 11: Int ref és AD bekapcsolva
Serial.print("Ch0 értéke : ");
Serial.println(kiolvasott); // Nyers analóg érték kiiratása soros monitorra
}
int ADS7828_olvasas (int Addr_byte, byte Cmd_byte) {
byte data[2];
Wire.beginTransmission(Addr_byte); // I2C átvitel indítása, az adott címen
Wire.write(Cmd_byte); // Command byte küldése
Wire.endTransmission(); // I2C átvitel megállítása
Wire.requestFrom(Addr_byte, 2); // 2 byte adatra várakozás
// 2 byte adat olvasása
if (Wire.available() == 2) // Ha megérkezett a 2byte
{
data[0] = Wire.read(); // Első byte tömbbe írása
data[1] = Wire.read(); // Második byte tömbbe írása
int adc = ((data[0] & 0x0F) * 256) + data[1]; // Adat konvertálás 12bit-re
return adc;
}
}A 0x0C módosításával lenne kiválasztva a csatorna száma
-
And
veterán
válasz Tomika86 #16148 üzenetére
Alapban jónak tűnik, bár a ciklusban így nem nagyon van késleltetés. A command-ként beküldött 0x0C viszont nem oké, ha single ended konfigurációban kapcsolod az ADC-re a mérendő feszültséget. Utóbbi esetben a COM-pin a negatív referencia (= GND), ehhez pedig az SD-bitet 1-be kell állítanod (COM = 0x8C).
Új hozzászólás Aktív témák
- Politika
- Steam Deck
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Autós topik látogatók beszélgetős, offolós topikja
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Skoda, VW, Audi, Seat topik
- Autós topik
- iPhone topik
- Windows 11
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- További aktív témák...
- Inakustik Mikado Audió, hangszoró kábel 40m hosszú tekercs 2x0,75mm
- Inakustik Premium HiFi Audió kábelek FÉLÁRON - RCA, Mono Sub, Y Sub
- Sony PlayStation 5 (PS5) Slim Játékkonzol tartozékokkal
- Inakustik CAT6 Ethernet, LAN, UTP hálozati kábel - Prémium minőség
- Garanciális ASUS TUF Gaming X670E-PLUS + AMD Ryzen 7 7800X3D
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen