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   398 / 840
(#) gammabuta hozzászólása Nov 27, 2017 /
 
Üdv!
Lehet-e olyan ha i2C-t és serial radiot is használok valahogy begerjesztik egymást vagy véletlenszerűen bezavarnak a jelek egymásba? Esetleg vezetékek állása hossz/környezeti sugárzás bekavarhat?

Nem jövök rá mitől fagy le véletlenszerűen a rádioadós elmozdulás érzékelőm, már az arduinot és a gyro szenzort is cseréltem, néha egy napoig stabil, néha első adat csomag küldése után megfagy, mintha számítana milyen pozicióban kapcsolom be, de a program ugyanaz kb....
Bővebben: forrasok
(#) berkesandor válasza gammabuta hozzászólására (») Nov 27, 2017 /
 
Hány I2C eszköz megy egy arduinóhoz kötve?
(#) gammabuta válasza berkesandor hozzászólására (») Nov 27, 2017 / 1
 
Egydb van csak, A4 A5-ön SDL SCA a GY-521 szenzorra, a linkelt kóban látszik hogy csak egyszerűen Wire.h-val olvasom, INT-et se kötöttem be.

A radio modulom az serialos, nem az i2c-n van és 2,3 lábakra van kötve softseriallal küldözgetem rajta 2másodpercenként a maximum mért gyro adatokat.

Ami érdekes, hogy van a mikor 1 napig is stabil és már nem tudom a vezetékek állásától vagy mitől függhet. Van-hogy meg mozdítom, és átmegy a jel, hogy történt elmozdulás, de a következő csomag már nem és a Wire rutin megáll.

A vevő is veszi rendesen.
A hozzászólás módosítva: Nov 27, 2017
(#) berkesandor hozzászólása Nov 27, 2017 /
 
Felhúzó mekkora van a SDL SCA-n?
(#) gammabuta válasza berkesandor hozzászólására (») Nov 27, 2017 /
 
nem tudom miért kellene felhúzó ezt simán rákell csak kötni (VCC GND SCL SDA és annyi), vagy mire gondolsz, elnézés nem értem, ez egy fix modul:
Bővebben: Link
A hozzászólás módosítva: Nov 27, 2017
(#) csatti2 válasza gammabuta hozzászólására (») Nov 27, 2017 /
 
A modulok használata nem mentesít az alól, hogy tudd mit csinálsz. Az I2C busz felhúzó ellenállásokat igényel. Nagyobb sebességhez kisebb értékű össz ellenállásra van szükség, de nem lehet túl kicsi sem mert akkor nagyon megnő az áram. Az ellenállásoknak lehetőleg a busz két végén kell elhelyezkednie, hogy a nem kívánatos visszaverődéseket csökkentse.
Első körben ártalmatlanítsd az eszközt, majd mérd meg a modulok tápfesze és az SDA, illetve SCL közötti ellenállásokat.
(#) berkesandor hozzászólása Nov 27, 2017 /
 
Nálam két modulos eszköz használatánál volt gond, mind a kettőn volt gyárilag felhúzó, külön-külön szépen mentek, együtt nem volt 100%-os a kommunikáció. Most leszedtem mind a két eszközről, és a "nyákra" teszek más értékűeket.
(#) Bakman válasza csatti2 hozzászólására (») Nov 27, 2017 /
 
Ha jól látom, 2,2 kOhm-os felhúzó ellenállások vannak a modulon.

gammabuta, a rádiós modulra, a tápfeszültségpontokra forrassz egy 4,7 - 10 µF-os kondenzátort, remélhetőleg megoldja a kérdést. Az ilyen modulok hajlamosak rövid ideig viszonylag nagyot harapni a tápfeszültségből. Hátha csak ennyi a gond.
(#) gammabuta válasza Bakman hozzászólására (») Nov 28, 2017 /
 
köszönöm, kipróbálom, egyébként amikor ad a rádió az aktív hangfalaim búgnak egyet amúgy meg ez a radio eléggé energiatakarékos módban van...

Bővebben: HC-12 datasheet

2400baudra állítottam air baud rate 5000bps
A hozzászólás módosítva: Nov 28, 2017
(#) berkesandor válasza gammabuta hozzászólására (») Nov 28, 2017 /
 
Miért ilyen alacsony sebességen mész?
Alacsonyabb sebességen sem nagyobb a stabilitás, valahol láttam róla egy táblázatot de most nem találom.
(#) Bakman válasza gammabuta hozzászólására (») Nov 28, 2017 /
 
Nem jelent semmit, attól még ugrál az energiaigénye, nem úgy viselkedik, mint egy egyszerű ellenállás.
(#) Sly hozzászólása Nov 29, 2017 /
 
Üdv nektek!
Megprobáltam a tudásomhoz illöen összehozni a programban azt hogy a ventilátor a reed zárása után késleltetve álljon le.
Arra jutottam hogy:
Mikor áram alá helyezem (reed nyitva)akkor a ventilátor a késleltetés nagyságának letelte után indul el.Addig meg mintha akarna is menni meg nemis,mert "ciripel" de nem indul.Miután letelt(esetünkben az 5000milsec) akkor elindul.
Amikor zárom a reed-et abban a pillanatban leesik ismét a fordulatszám "mintha megis akarna állni meg nemis" és mikor letelik az 5000milisec utána kikapcsol a ventilátor.
Valami blokkolja az idözitésemet de nemtudok rájönni hogy mi....
És miért van az hogy indulásnál pedig az "idözitésem" blokkolja azt hogy a ventilátor meginduljon...
Ebben kellene egy kis segitség.

Hot_air.ino
    
(#) csatti2 válasza Sly hozzászólására (») Nov 29, 2017 /
 
Több sebből is vérzik a program.
A 98. sorban ennek semmi értelme: hGFanPWMPinState = !hGFanPWMPinState; Nem használod ezt a változót semmire a SETUP-on kívűl.
Aztán a 104. sorban írod mint digitális kimenet: digitalWrite (hGFanPWMPin,ReedPinState);
Utána pedig 169. sortól:
fan_pwm_value = i;
if (reedjel == 0)
analogWrite(hGFanPWMPin,LOW);
else
analogWrite(hGFanPWMPin,fan_pwm_value);

Ennek így semmi értelme. Ezt az egészet össze kellene rakni egyetlen feltételrendszerbe, ahol egyszer írunk ki egy értéket. Az analogWrite-al pedig nem írunk 0-át ki (LOW), mert az a valóságban nem 0 lesz, hanem egy rövid dirac delta-szerű kimenet.
A hozzászólás módosítva: Nov 29, 2017
(#) gammabuta válasza Bakman hozzászólására (») Nov 29, 2017 /
 
röviditettem kábeleket, tettem be 100µF SMD kondenzátorotkat aradio +- és a GY521 +- kivezetések közé.

Első bekapcsolásra leégettem azt a feszültség regulátort ami itt a GY521 modulon S2LK feliratú 6lábú valami, mivel vletlen fordítva forrasztottam be a +- tápot rá. (Ilyet is csak ritkán teszek.)
Bővebben: kép a modulról
Ha esetleg valaki megtudná mondani milyen Ic, hogy találok adatlapot, ez hogy pótolom, vagy iktatom ki hisz eleve 3volton tápolok most lehet nem is kell...


Aztán kicseréltem másik GY521 modulra, így második bekapcsolás, itt egyszer csak megint végtelen ciklusba megállt.
Harmadik bekapcsolás után 9órán át teszteltem mozgattam de nem fagyott le egyáltalán.
Még folyik a tesztelés és valami rutin kellene, watchdog szerű a while-omba.
Csak nem tudom hogy lehet a modult resetelni ha egyszer csak nem ad adatot a Wire.requestFrom(0x68,14); utasítás után.

Ezt még kikell nyomozni.
(#) kapu48 válasza Sly hozzászólására (») Nov 29, 2017 /
 
  1. Itt nem jó az előjeles long:
  2. long lastDebounceTime = 0;  
  3. long debounceDelay = 5000;
  4. Előjel nélküli változók kellenek:
  5. unsigned  long lastDebounceTime = 0;  
  6. unsigned  long debounceDelay = 5000;
  7.  
  8. Ide beraknák még egy vizsgálatot 0-ára, hogy csak egyszer fusson le a rutin:
  9.  
  10. if (lastDebounceTime > 0){
  11.   if ((millis() - lastDebounceTime) > debounceDelay) {
  12.     lastDebounceTime = 0;       // Itt lekapcsolom a többszöri futás feltételét
  13.     if (reading != ReedPinState) {
  14.        ReedPinState = reading;
  15.  
  16. 215. sor felesleges az &&: if ( buttonStatus == LOW && buttonStatus != buttonLast )
  17. Elég a: if ( buttonStatus == LOW)
(#) Bakman válasza gammabuta hozzászólására (») Nov 29, 2017 /
 
Sok a 100 uF, gerjedhet miatta a tápegység része. 4,7 - 10 µF legyen.
(#) berkesandor válasza gammabuta hozzászólására (») Nov 29, 2017 /
 
Az Arduino tápja elég a két modulnak ?
(#) gammabuta válasza berkesandor hozzászólására (») Nov 29, 2017 /
 
Nem az arduino tápjáról mennek hanem onnan ahonnan az arduino is kapja a tápot a vin és gnd-re van forrasztva a tép mega szenzorok tápja is.

Szerintem nem nagyon gerjedhet mert 1cellás litium ion de majd tehetek kisebb kondikat...

más: feszültségosztót milyen ellenállásból és mérés után milyen szorzóval szoktatok számolni, hogy ellenőrizzem az arduinot tápoló cella feszültségét?
A hozzászólás módosítva: Nov 29, 2017
(#) Kera_Will hozzászólása Nov 29, 2017 /
 
Szerintetek melyik kód részlet fordulhat le hatékonyabban?
A pow() vagy a shift -es ?
  1. // X = értéke függvényből (valamiből előáll)
  2.  LedX = 1;     //itt a változó értéke mindig felveszi az 1-t
  3.  LedX = LedX << X; // itt pedig balra tolódik mindig X-et az 1 érték (2-es hatványként)
  4.          
  5.  //Y = értéke függvényből (valamiből előáll)
  6.  
  7. LedY = pow(2,Y); // itt pedig a pow() végzi el a 2 hatványaira való emelést

Sejtésem szerint a shiftelés az hardver közelebbi utasítás mint pow() függvény, habár nekem a 2 hatványaira van szükségem és nem bármit bármire emelni.
(#) berkesandor válasza gammabuta hozzászólására (») Nov 29, 2017 /
 
Én úgy csináltam, hogy maximális akku feszültségnél, az osztó utáni feszültség kicsivel az arduino tápfesze alatt legyen.
(#) gammabuta válasza berkesandor hozzászólására (») Nov 29, 2017 /
 
akkor ezt majd következő lépésként, most próbálnám feléleszteni azt a szenzort amire véletlen fordítva adtam az áramot... nyomozásom szerint LN1134A332MR 4A2D SOT23-5 power regulator chip, ahogy elnézem ez 3.3Voltot ad, az MPU-6050 pedig 2.375V-3.46V között üzemel, nekem meg 3.6-4.2V a cellám... így lehet csak kell az a regulator vagy lehet beteszek helyére sorba 1-2 diodát és hátha eleget ejt.. bár az is kókányolás
132Ft egy ilyen regulator
Bővebben: RET bolt
A hozzászólás módosítva: Nov 29, 2017
(#) vargham válasza Kera_Will hozzászólására (») Nov 29, 2017 /
 
Itt megnézheted, hogy a gcc mit fordít: godbolt
(#) csatti2 válasza gammabuta hozzászólására (») Nov 29, 2017 /
 
Általában lábkompatibilisek ezek egymással. pl.: Bővebben: Link

Amúgy az arduinóknak szokott lenni saját 3V3-as tápja is.
A hozzászólás módosítva: Nov 29, 2017
(#) csatti2 válasza Kera_Will hozzászólására (») Nov 29, 2017 /
 
Természetesen a shiftelés sokkal "olcsóbb". Maga a szorzás sokkal költségesebb, de itt még van függvényhívás is.
(#) csatti2 válasza gammabuta hozzászólására (») Nov 29, 2017 / 1
 
Ha celláról táplálod az arduino-t, akkor direktben nem tudod megmérni a cella feszültséget hisz az a feszültség egyben az ADC referenciád is. Amit viszont tudsz csinálni az az, hogy megméred az ADC-vel a beépített belső referencia feszültségét (ennek értéke IC-nként erősen szór, viszont stabil, ki kell mérni) és ebből kiszámítható a betáp feszültsége.
(#) Sly válasza kapu48 hozzászólására (») Nov 29, 2017 /
 
Tehát akkor cseréljem ki a változokat unsigned long-ra meg tegyem be a 10,11,12,12,14-es sort?
A 157-töl 161-ig az ok?Mert ez hivatott a ventilátort leállitani mikor a reed zárva van...
215. sor az eredetileg is bennevolt a programban...Azt akkor változtassam meg?
Bocsi a ""kezdö" kérdéseimért de probálom feltalálni magam csak idö hiányában igy elég nehéz..És nekem mint kezdö arduinos, ez a software már-már elég komplexnek tünik...
(#) tbarath válasza csatti2 hozzászólására (») Nov 30, 2017 /
 
Ha a Vin feszültséget leosztod negyedére-ötödére pl. egy 100k-470k osztóval, akkor akkor azt mérheted valamelyik ADC bemeneten a belső 1,1V AREF-fel. De használhatsz külső referenciát is, pl. LM385 vagy TL431.
(#) csatti2 válasza tbarath hozzászólására (») Nov 30, 2017 /
 
Azt írta, hogy egycellás li-ion akkumulátorról eteti az eszközt. Semmi értelme átkergetni a Vin-en, mivel a feszültsége biztosan 5V alatt van (csak elpocsékolja az energia egy részét). Ha direktben megkapja a delejt, semmilyen külső eszközre nincs szükség a tápfeszültség megméréséhez.
(#) tbarath válasza csatti2 hozzászólására (») Nov 30, 2017 /
 
Ez mondjuk így van, a Vin-nel jó nagy marhaságot írtam.
De a referenciavariálós tápfeszmérést nem értem. Van egy 1,1V belső referencia, az eddig megvan.
(#) csatti2 válasza tbarath hozzászólására (») Nov 30, 2017 / 1
 
Itt vannak a multiplexálható csatornák az ATMega328PU-ban (ez van az UNO-ban, nanoban és miniben). Megjelöltem azt a belső csatornát, amit ki kell választani a belső referenciafeszültség megméréséhez. Mivel annak a feszültsége fix ezért a kapott értékből visszaszámítható az ADC modul referenciafeszültsége, ami ebben az esetben meg kell egyezzen a betáp feszültséggel (az AVCC-t kell refként kiválasztani), azaz a Li-ion cella feszültségével.
Következő: »»   398 / 840
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