-
GAMEPOD.hu
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
-
Drótszamár
őstag
Sziasztok!
Van valakinek esetleg tapasztalata SODAQ Moja-val? http://www.sodaq.net/
Egy hasonló Autonóm napelemes meteorológia állomást tervezek építeni.
Jelenleg nulla tapasztalatom van arduino-val, és C-vel is elég kevés. Lehet jövök majd kérdezni butaságokat.
Még kb 1 hét mire ideérnek az alkatrészek.A korábban linkelt alaktrészekhez képes elég drága, de szinte mindent tud magától, csak legózni, és programozni kell majd.
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
Bár én még nagyon zöldfülű vagyok, de nem lehet hogy ezt szívtad be?
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
Üdv!
Még ismerkedek az Arduino programozással, sikerült beleszaladni egy fél napos szívásba.
Lemaradt két saját függvény végéről a visszatérési érték, az egyik hívta a másikat. (debug infóban volt az érték)
A második loop után totál lefagyott a program. Mindent 10x végignéztem oda-vissza. Átírtam egy csomó stringes részt (mem elfogyásra gyanakodtam), aztán egyszer csak észrevettem, hogy nincs return.Javítás után egyből elkezdett működni.
Egyébként félkész függvények voltak, az átadott adatokkal még nem dolgoztak.Miért siklik félre visszatérési érték nélkül a program? És miért nem mindját az első kör végén fagy le?
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
Üdv!
Kicsit tanácstalan vagyok...
...
extern SoftwareSerial diagport;
#define DIAGPRINT(...) diagport.print(__VA_ARGS__)
...
while (getTime() < uploadTime)
{
DIAGPRINT("*");
wdt_reset();
timestampShow(true, true);
DIAGPRINT("Szundi: ");
wdt_reset();
wdt_disable();
sleep(true);
wdt_enable(WDTO_8S);
DIAGPRINT("*");
wdt_reset();
}Ha nincs ott a kódban az első sorban a DIAGPRINT *, akkor random módon fagy, csak a Watchdog hozza vissza.
A teljes while végigfut, mikor jönne a következő kör, akkor fagy meg. Néha 3-5 kör után fagy le, néha tovább jut. Az utolsó * látszik a konzolon.Ilyenkor egyébként aludna, hogy ne merüljön annyira az akku. Minden 4s után megnézi, hogy nincs e már dolga.
Ez miért lehet? Bug? Mi változik, ha ott az elején egy print? Akkor miért lesz jó?
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
Seeedstudio akciózik ma. Hátha érdekel innen valakit: http://itcafe.hu/tema/bestbuy_avagy_minden_ami_akcios_itthon_es_kulfoldo/hsz_7982-7982.html
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
Help!
Eszköz: Lora Node 1.0 [link]
ATmega328P
Arduino ide 1.8.83.3V 8Mhz Pro Mini bootloader van rajta, amivel a watchdog nem működik. Bootloop lesz, ha újraindítja.
Lecseréltem Optiboot Minicore-ra a boot loadert. Ezzel megy a watchdog, rendben újraindítja.
(8 Mhz external, BOD 2,7V, LTO OFF, 328P, UART0 YES)A csere után, ha visszaállítom az alaplapot az eddig működő arduino verzióra nem megy a kód feltöltése FTDI-n keresztül. Az összes listában lévő verziót kipróbáltam.
Ha átállítom az alaplapot az Optiboot miatt telepített Atmega328-ra, akkor fordítási hibát ad a program. Nem találja a time.h-t.
Egyszerű kódot ekkor rendben feltölt.Rohadtul nem értem ezt az egészet.
Valami config-ot át kéne még írni, amiről minden tutorial elfelejtkezik? Az új bootloaderrel változott a feltöltési mód? (pl baud, és azért nem megy a feltöltés már?)Végigtúrtam a netet, és nem nagyon találok hasonló gondot.
Mit rontok el?Hova lesz a time.h mikor itt megvan, és a gyári alaplapokkal működik is: C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
válasz Drótszamár #11928 üzenetére
Sikerült!
Bekapcsoltam a részletes infókat a feltöltésnél, úgy már egyből látszott a különbség.
Using Port : COM31
Using Programmer : arduino
Overriding Baud Rate : 57600
AVR Part : ATmega328P
Chip Erase delay : 9000 usUsing Port : COM31
Using Programmer : arduino
Overriding Baud Rate : 38400
AVR Part : ATmega328PAz optiboot boards.txt configjában ott volt a 38400-as sebesség.
Átírtam 57600-ra, most már rendben felmegy a kód, ha kiválasztom a "Pro mini" 3V 8 Mhz-s változatot az alaplapok közül.
Végre ki lehet tenni terepre az eszközt. Ha lefagyna újraindul magától( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
Help!
Terepen lévő napelemes műszerhez keresnék hardveres watchdog áramkört. A szoftveres nem 100%, néha lefagy így is, és szopás a helyszínen újraindítani. (I2C szenzor szívat szerintem ilyenkor, de ez csak tipp).
Találtam egy ilyet: TPL5110
Az elektronikához nem nagyon értek. Jól gondolom, hogy ez nem fog menni a napelemes boarddal. Tehát ha töltené a napelem az akkut, akkor ezen nem fog visszafelé áram folyni az akkuba?
Vennem kell külső lipo charger modult, hogy még a watchdog modul "előtt" legyen a töltés?Egy ilyet vettem nemrég: dual watchdog timer , de 3,5mA a fogysztása. Az 10x annyi mint az alvó board, uh ez nem jó nekem
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
válasz gyapo11 #13156 üzenetére
Teljesen vakon vagyok az ilyen IC-kkel, és az elektronikával. Olyan megoldást keresek amit csak össze kell dugni, max forrasztok rá 2 drótot. Nem találtam erre keresve kész watchdogot. Átnéztem az adatlapját, de azzal sem lettem okosabb
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
A board-on van reset gomb, az az arduino reset lábára van bekötve, és az szokott működni.
Nem is nagyon értem, hogy a szoftveres WD miért hasal el. Az máshogy resetel? Beragadnak regiszterek?A fenti TPL5110 50ms-ra megszakítja az áramot, szerintem az garantáltan mindent resetel.
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
válasz vargalex #14238 üzenetére
vargalex, gyapo11: Köszi, erről nem is tudtam.
Kipróbáltam, de sajnos nem működik. Lehet túl régiek vannak nekem. Az egyik 2015-ös gyártmány, a másik még régebbi. Az talán az első modell volt. 10400 mAh a kapacitása.
------------
Elektronikát mivel lehet megvédeni nedvességtől? A mostani több hetes ködös idő több terepen lévő hőmérséklet szenzoromat is megölte. A szenzorokat kimaszkolva körömlakkal kenjem le a nyákot? Van erre valami bevált módszer?
Pl az egyik szenzor modul ami egy tányéros árnyékolóban van.
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
Üdv!
Adott egy ESP32-es eszközhöz készült légnyomás szenzor. Van hozzá Arduino library.
Szenzor: QMP6988
Github library: [link]Arduino alatt össze-vissza hülyeségeket mér amikor nem esp32-es lapra fordítom.
Ha jól gondolom számábrázolási probléma lesz.Az elején a típus definíciót megpróbáltam áttenni ATmega 1284P procira.
Picit jobb az eredmény, de azért még nem a légnyomást kapom eredményül.
Elrontottam valamelyik típust?//kommentben az eredeti ami az esp32-őn rendben működik.
#define QMP6988_U16_t unsigned int //unsigned short
#define QMP6988_S16_t int //short
#define QMP6988_U32_t unsigned long //unsigned int
#define QMP6988_S32_t long //int
#define QMP6988_U64_t unsigned long long // Ide mi kéne?
#define QMP6988_S64_t long long //És ide?
Ide mit kéne? Ez esp32-őn 128 bites ha jól tudom. ATmega 1284P procira van ilyen?
unsigned long longÉs ide?
long long( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
Ez egy kombi szenzor modul, SHT-30 és QMP6988 szenzorok ülnek az i2c buszon.
Az SHT-30 rendben működik 3,3V-on és 5V-on is mindkét eszközzel. A gyártó 5V-ot írt a szenzor modulhoz, maga a QMP6988 1.71V és 3.6V között működik a gyári doksi szerint.Viszont adtál egy ötletet. Hétvégén összenézem a nyers légnyomás adatokat mindkét eszközön.
Ha azok egyeznek, akkor a kiolvasás jó.
A nyers adatokkal és a kalibrációs adatokkal még varázsol egy csomó mindent a library. Szorozgat, osztogat, meg shiftel össze-vissza. Nekem még mindig az a gyanús, hogy valahol kicsúszik az érték a longból.Itt rakja össze a végleges értéket:
Egyelőre fingom sincs, mit és miért csinálQMP6988_S32_t QMP6988::getPressure02e(qmp6988_ik_data_t *ik, QMP6988_S32_t dp, QMP6988_S16_t tx)
{
QMP6988_S32_t ret;
QMP6988_S64_t wk1, wk2, wk3;
// wk1 = 48Q16 // bit size
wk1 = ((QMP6988_S64_t)ik->bt1 * (QMP6988_S64_t)tx); // 28Q15+16-1=43 (43Q15)
wk2 = ((QMP6988_S64_t)ik->bp1 * (QMP6988_S64_t)dp) >> 5; // 31Q20+24-1=54 (49Q15)
wk1 += wk2; // 43,49->50Q15
wk2 = ((QMP6988_S64_t)ik->bt2 * (QMP6988_S64_t)tx) >> 1; // 34Q38+16-1=49 (48Q37)
wk2 = (wk2 * (QMP6988_S64_t)tx) >> 8; // 48Q37+16-1=63 (55Q29)
wk3 = wk2; // 55Q29
wk2 = ((QMP6988_S64_t)ik->b11 * (QMP6988_S64_t)tx) >> 4; // 28Q34+16-1=43 (39Q30)
wk2 = (wk2 * (QMP6988_S64_t)dp) >> 1; // 39Q30+24-1=62 (61Q29)
wk3 += wk2; // 55,61->62Q29
wk2 = ((QMP6988_S64_t)ik->bp2 * (QMP6988_S64_t)dp) >> 13; // 29Q43+24-1=52 (39Q30)
wk2 = (wk2 * (QMP6988_S64_t)dp) >> 1; // 39Q30+24-1=62 (61Q29)
wk3 += wk2; // 62,61->63Q29
wk1 += wk3 >> 14; // Q29 >> 14 -> Q15
wk2 = ((QMP6988_S64_t)ik->b12 * (QMP6988_S64_t)tx); // 29Q53+16-1=45 (45Q53)
wk2 = (wk2 * (QMP6988_S64_t)tx) >> 22; // 45Q53+16-1=61 (39Q31)
wk2 = (wk2 * (QMP6988_S64_t)dp) >> 1; // 39Q31+24-1=62 (61Q30)
wk3 = wk2; // 61Q30
wk2 = ((QMP6988_S64_t)ik->b21 * (QMP6988_S64_t)tx) >> 6; // 29Q60+16-1=45 (39Q54)
wk2 = (wk2 * (QMP6988_S64_t)dp) >> 23; // 39Q54+24-1=62 (39Q31)
wk2 = (wk2 * (QMP6988_S64_t)dp) >> 1; // 39Q31+24-1=62 (61Q20)
wk3 += wk2; // 61,61->62Q30
wk2 = ((QMP6988_S64_t)ik->bp3 * (QMP6988_S64_t)dp) >> 12; // 28Q65+24-1=51 (39Q53)
wk2 = (wk2 * (QMP6988_S64_t)dp) >> 23; // 39Q53+24-1=62 (39Q30)
wk2 = (wk2 * (QMP6988_S64_t)dp); // 39Q30+24-1=62 (62Q30)
wk3 += wk2; // 62,62->63Q30
wk1 += wk3 >> 15; // Q30 >> 15 = Q15
wk1 /= 32767L;
wk1 >>= 11; // Q15 >> 7 = Q4
wk1 += ik->b00; // Q4 + 20Q4
//wk1 >>= 4; // 28Q4 -> 24Q0
ret = (QMP6988_S32_t)wk1;
return ret;
}
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
Help vettem egy 5V-os relét, amit 3,3V-os rendszerről kéne használnom: latching relay 2 channels [link]
Vettem hozzá 4-channel logic level converter-t
"The module allows to exchange data between systems that use the most popular levels of voltage: 5 V <-> 3.3 V and 3.3 V <-> 1,8 V. It works in both directions simulatneously. It has four channels. "
Nem mozdul vele a relé.
Ha a low oldalon a vcc-t, és gnd-t bekötöm, és megkapja a 3,3V-ot, akkor a túloldalon csak 3V-ot mérek a high oldalon. Fordítva 1,03V-ot mérek.
Mit rontok el? Hibás az eszköz? Vagy hülye vagyok, és ez nem erre való?
A relé HIGH/LOW-ra kapcsol, és megtartja az állapotot. Nem egy atomrakéta.
( 2b || !2b ) az itt a kérdés...
-
Drótszamár
őstag
válasz Janos250 #15915 üzenetére
5V-os kábel bekötöttem, de 5V nincs rajta. Azt hittem ez a converter fogja megcsinálni a 3,3V-ból. Asszem ez csapott be "works in both directions".
Grove csatolós reléből csak olyat találáltam 3,3V-on, aminek folyamatosan áram kell.
Ez a relé egy naplemes cucc vésztöltőjét kapcsolná be. Az nem optimális, ha a relé megeszi a töltés egy részét (100mA)Tankblock: Találtam a fiókban egy tekerős step-up convertert (MT3608). GND-t, VCC-t bekötöttem, eltekertem 5V-ig, így most működik a relé. A signal maradt 3,3V-on. De ez így eléggé cigány megoldás
And: Köszi. Úgy tűnik nem jól értettem mit csinál egy szintillesztő.
[ Szerkesztve ]
( 2b || !2b ) az itt a kérdés...
Új hozzászólás Aktív témák
- Szünetmentes tápegységek (UPS)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Energiaital topic
- Windows 11
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Politika
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Autós topik
- Formula-1
- Sokat fogyaszt az AI, egyre több az adatközpont, kell az atomenergia
- További aktív témák...
- Panasonic Lumix G X VARIO 12-35mm f/2.8 II ASPH. Power O.I.S. (H-HSA12035)
- 2db Iceriver KS0 KASPA bányagép + 180W új tápegység 2 év garanciával.
- Panasonic Lumix DC-G9 (V-Log L kiegészítéssel, 4 akkuval)
- Commlite CM-EF-NEX Auto-Focus Adapter (Canon EF - Sony E)
- Üzletből, garanciával, legújabb Asus Vivobook 17" i7-1355U 10 mag 5GHz/16RAM/1TBSSD/17,3"FULLHD
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen