Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
1 A trafónál egy 50mA relé nagyáramúnak számít?
Annyira nem , de ha sok van egyszerre meg húzva (15-20 db) akkor igen .
Másik zavar szűrés pont a relék kontaktusai (amik a motorokat kapcsolják ) közé szoktak egy soros R C tagot is kötni nagy fesz kondi (4/600V) és 2-5 W ellenállást (nagy méretű így a kivezetései között nagyobb az átütési távolság) 10-100n és pár 100 ohm - kilo ohm nagyságrendben. A hozzászólás módosítva: Máj 15, 2017
Az AVR kishal egy komolyabb induktív elemhez. A terepasztalomon volt egy 1A-es elektromágnes és képes volt ki/bekapcsolásnál kiakasztani a mikrovezérlőt.
Az igazat megvallva még az optikai leválasztás sem segített. Amikor egy induktív elemet fizikailag megszakítasz, akkor antennává alakul és képes olyan elektromágneses zajt produkálni, ami eltiporja az AVR-t. Nem tudtam a problémát megoldani, külön táp sem segített, az elektromos zajt kellett megszüntetni. Én védődiódát raktam be, elvezette az induktivitás áramát kikapcsolásnál és a probléma megszűnt. Semmi más nem segített. Ha nem tudod így megoldani, akkor alumíniumdobozba rakod és brutálisan árnyékolod. A komolyabb elektromágnesek levegőből képesek kiütni egy AVR-t. Egy villám 80000A-t képes leadni, a házban 80A-es biztosíték van, ha a szomszéd fába beletrafál, mindent ledarál. Az én 1A-es induktivitásom és a pár uA-es AVR között ugyanakkora különbség van. Ha 1A-es induktivitás beindul könyörtelen munkát végez. Nálam a 22000 µF sem tudta megfogni. A legjobb, ha valahogy kiszűröd a zajt, hogy el se jusson a mikrokontrollerig. A hozzászólás módosítva: Máj 15, 2017
Jogos az észrevétel ott a mosógép motorjai a főbajok okozói .
byte változot 0..255 étéket szeretnék százalékra váltani vagyis0..100!
De ez igy nem ok met 0...255 ad vissza még mindig soros porton!
A hozzászólás módosítva: Máj 15, 2017
Még a dc motort kapcsolgatsz ha jol étem relével?
Mert a dc motor felöl is felépö tranziens áram lökések is szépen zavarják a controlert + még gajra is vágja ezekere megfelelö dioda van (motor irányában)!
Itt a matek nem stimmel, pontosabban az sem, mert a kód is zagyva.
Ha 0 => 0% és 255 => 100% konverziót akarod, akkor szazalek = byte * 100 / 255 a képlet. De itt az is baj lehet, hogy byte-okkal dolgozol, és ha "belül" is byte-tal dolgozik akkor valahol lesz egy szép nagy nullád, azzal pedig bármit szorzol az 0 lesz. De ezt ki kell próbálni. Szerintem cast-olni kell, de lehet hogy tizedesponttal is kikényszerítheted, pl. byte / 255.0 * 100
JOBB választás lenne a SSR lenne , ami null átmenetet is figyeli akkor biztos a legkevesebb a tranziens jelenség.Igaz oda se ártana az R C tagok.
mosomasa1 SSR-panel teljesítményt kapcsoló részek Itt nincs semmi reccsenés , roppanás, zavarodás évtized óta teszi a dolgát. A hozzászólás módosítva: Máj 16, 2017
I2C protokollt nem értem teljesen, hiába olvastam a tananyagot.
Miért és milyen esetben kell megcímezni a buszra felfűzött eszközöket? Nálam úgy van most, hogy a buszon van egy DS3231 és egy AM2315 és nem adtam meg a címüket. Később egy külső eeprom is lesz rajta. Amúgy tökéletesen működik, azt leszámítva, hogy random 1-3 naponta lefagy a kontroller, reset gombra se indul újra, csak ha a tápot elveszem. Még nem tudom, hogy emiatt, de ha csak az órát hagyom rajta, akkor 3 nap után se fagyott le. Most megint visszatettem, de felhúzó nélkül a szenzort, próbalaneles kontaktokat javítottam. Eddig jó, de messze van még a 3 nap, hogy lássam köze van-e hozzá. Szóval lehet a lefagyásnak köze ahhoz, hogy külön címzés nélkül használom?
> Miért
Mert a buszon nem beszélhetnek maguktól a slave eszközök. A master szólítja őket, és arra válaszolnak. > és milyen esetben kell megcímezni a buszra felfűzött eszközöket? Ha azt akrod, hogy mondjanak valamit. > Nálam úgy van most, hogy a buszon van egy DS3231 és egy AM2315 és nem adtam meg a címüket. Olyan nincs. Gondolom, hogy valamilyen könyvtárat használsz hozzájuk. Ha belenézel a forráskódjába, abban benne van az alapértelmezett cím, és azon szólítja az eszközöket. Lásd például itt, 49. sor.
Köszönöm, így már értem.
Akkor a fagyás okát máshol kell keresnem. Idézet: „Miért és milyen esetben kell megcímezni a buszra felfűzött eszközöket?” Azért, mert az I2C buszon nincsenek egyedi kiválasztó vezetékek, csupán a címből derül ki, hogy kinek szól az adás. Akkor, amikor az eszköznek jelezni akarod, hogy neki szól az adás, vagy ha kérdezni akarsz tőle valamit. Tehát minden tranzakció (beírás és kiolvasás egyaránt) a cím kiküldésével kezdődik.
Azért nem volt világos, mert nem tudtam, hogy a könyvtára tartalmazza és olyan példákat néztem amiket a programban címzeztek.
Viszont ha pl. 2 egyforma eszközt használok, akkor azokat a programba kell címeznem? Vagyis csak az egyiket kell, mert a másikat a könyvtár már tartalmazza?
igy probálom ahogy javasoltad be irt adat értéke még mindig 0...255 ad visza nem osztodik 100 al!
javasolták a map finkciot is de nem jó!
A hozzászólás módosítva: Máj 16, 2017
> Viszont ha pl. 2 egyforma eszközt használok, akkor azokat a programba kell címeznem?
Nem ilyen egyszerű. Olvastad a használni kívánt eszközök adatlapjait? Olvastad az i2c leírását? Az eszközök beépítve tartalmazzák a címüket. A sok eszköznél ez egy fix érték, nem lehet változtatni, így egy buszon egy lehet belőlük. Vannak olyan eszközök, amelyeknek az IC egy-két lábát földre / tápra húzva választani tudsz néhány fix cím közül. Az Arduino libek általában C++ osztályok, és a konstruktorban tudod megadni a működési paramétereket, például az i2c címet.
Sziasztok!
ATMEGA328-on szeretnék 3 külső megszakítást használni (külső eseménytől eltelt időzítés lenne a feladat). Sajnos csak 2 ilyen bemenete van. Állítólag lehet bármely bemenetre PinChange megszakítást konfigurálni. Ebben az esetben is él még a két külső megszakítás bemenetem? Idézet: „Viszont ha pl. 2 egyforma eszközt használok ...” Ez csak akkor megy, ha van hardveres lehetőség a cím valamilyen módosítására (pl ha egyes címbitek "ki vannak vezetve", és átforrasztással módosítani tudod, hogy logikai 0-ra vagy 1-re legyen kötve. Két eszköz ugyanis nem rendelkezhet azonos címmel. Azt, hogy hogyan lehet ezeket címezni, az attól függ, hogy a könyvtár hogyan van megírva. Lehet-e pl. más-más címmel példányosítani? Az Adafruit TSL2561 szenzort kezelő könyvtárnál például lehet:
(az utolsó paraméter itt a SensorID nével eltárolt és visszaadott azonosító szám, ne vedd komolyan)
Úgynevezett Faraday kalitkát érdemes megpróbálni?
Ez indukcio alapon müködik a (Jelenség) amit irtam a motor felöli jelenséget nem segitene Faraday kalitka rata ha arra gondolsz!
Egyszerüen : Egy x menetü tekercsre áram forást kapcsolunk BE kapcsoláskor akkor áram folyik rajta KI kapcsoláskor feszültség indukálodik a tekercs kivezetésein! A fenti jelenség egyben hasznos is meg átok is az az felhasználási célrol beszélek! pl"feszültség indukálodik a tekercs kivezetésein" ezel a jelenségel konderzátort töltögetnek akor már használhato pl step up dcdc konverternek .... wiki megtalálod a jelenség teljes müködését!
A védődiódának utánanéztél, dc motornál mennie kellene.
Többen is említették megoldásnak. A hozzászólás módosítva: Máj 16, 2017
Nekem nem is kikapcsoláskor van a gond. Bekapcsolja a motort, 2mp delay után ki kellene kapcsolnia, de nem teszi, megy folyamatosan. Elakadt a delay ciklusban.
Érdekes, talán itt a HE-n olvastam egy PIC/AVR összehasonlításban, hogy az AVR jobban bírja az efféle zavarokat mert automotive minősítésű. Akkor a zárt fémdoboz segíthet? Hogyan oldják meg ezt a gondot a rengeteg olcsó eszköznél amiben vmi mikrovezérlő van kenyérsütőtől a (stilszerűen) mosógépig?
Akor csak program hibba de nem látunk részlete sem belöle!
Nem lehet olyan funkciot használsz ami igenyelné a belsö elenálások felhuzását pl port lább definicionál? De még számtalan ok és okozat lehet!
igy müködik de pontatlan mindig elcsuszik az érték!
pontoság : 1% akor csak 0.78% ! 5% akor csak 4.71% ! ki érti ezt...........
hát én tuti nem értem amit írsz, de legalább valamit haladtál.
Explicit cast-olással is megpróbálkozhatsz
Amúgy az itt írt kódod is hibás, mert egy 0-255 skálát akarsz egy 0-100-ra konvertálni, szóval a byte 2.55 változása jelent 1 %-ot. Tehát 100-zal kell szorozni és 255-tel osztani, és nem fordítva. (Ami ekvivalens a 2,55-tel történő osztással, de a logikájátt szeretném megértetni. ÉS ugye kerekítesz, tehát a pontosságod limitált lesz.
Amit emlitesz igen ez igy lene helyes "0-255 skálát akarsz egy 0-100" cyle /100*255; de ez igy egyáltalán nem müxik de miért is?
Már probáltam az összes változot fel venni cyle int, byte, float, long hátha változik valami!
A hozzászólás módosítva: Máj 16, 2017
lemarat!
Pontosság 5% helyet csak 4.71%.....
Itt lefoglalsz egy változót, majd abba a cyle nevű változódból a map fv segítségével konvertált értéket rakod. Majd ezzel jól nem csinálsz semmit, mert a következő sorban felülcsapod egy soros portról olvasott, egy int-té parszolt számmal. És ugye a parseint 0 értéket ad ha letelt a timeout, ami default 1 másodperc.
Igen ez a rész egyáltalán nem is ok ahogy irod pontosan!
edig ez a jó de pontatlan és nem kell tizedes érték !
A hozzászólás módosítva: Máj 16, 2017
|
Bejelentkezés
Hirdetés |