- Bemutatkozott a Poco X7 és X7 Pro
- Yettel topik
- Magyarított Android alkalmazások
- Hónap végén érkezik a Xiaomi Band 10, ára is van
- iPhone topik
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Google Pixel topik
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
-
Mobilarena
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
-
Dalee
aktív tag
Próbálok egy fűtés projektet összehozni NodeMcu ESP8266 ESP-12E alapon.
A kapcsolás elég egyszerű:
- ESP8266
- DS18B20 hőmérő (onewire kommunikáció)
- relé modul
- állapotjelző LED-ek.
- szabvány USB telefon töltő tápnak.Az alábbi szoftveres komponenseket telepítettem:
- Web szerver (a vezérlés adatok megváltoztatása, hőmérséklet figyelés) ESP Web lapos működéséhez ezt a tutort használtam.)
- E-mail küldés. A hőmérsékletet e-mail-en is küldöm meghatározott időközönként
- Time szerver elérés (log-hoz)
- SPIFFS file rendszerben mért értékek loggolása
- FTP szerver (log adatok letöltése)
- fűtőszál vezérlése relén keresztülAlapban megy is minden, de pár óra elteltével (vagy ha dolgozok az otthoni hálózaton hamarabb) a ESP leszakad a hálózatról és vagy visszakapcsolódik vagy nem, vagy magával rántja fűtés vezérlést vagy nem.
Elég sok WIFI van a környéken, ezért a laptop is gyakran leszakad, szóval elég szar a WIFI, viszont a ESP-nek elvileg újból kellene csatlakozni, illetve nem szabadna megállítani a loop folyamatokat ha jól olvastam.
Gondoltam használom a watchdog timert, de arról azt találtam, hogy a WIFI, WEB könyvtárak kezelik (resetelik), ezért az sem jó megoldás.A flash-re logoltam a loop ciklusban 4 másodpercenként a HEAP-et, hátha elfogy a RAM, de azon sem látszik semmi RAM fogyás, stabilan 20 kb szabad hely van.
Próbálkoztam a WIFI manager könytár autoconnect funkciójával, azzal is meghal a rendszer egy idő után ugyanúgy.
Most 30 percenként resetelem a ESP-t. Így ment egyfolytában 3 napot, de szombat délután egy 30 perces resetet követően, elfelejtette az eddigi router csatlakozási adatokat és szabványos 192.168.4.1-es címen lévő WIFI beállító lapot adta fel a loop-ig el sem jutott.
Nektek is ilyen bizonytalan a működése a WIFI-nek. Van ötlet, hogy mi lehet a hiba vagy, hogy találjam meg mi okozhatja?
Segítségeteket előre is köszönöm.
-
szuszinho
őstag
válasz
Janos250 #7196 üzenetére
Ha jól sejtem, akkor a 01-es.
Amiket néztem leírásokat, abban AT parancsokkal tesztelik, illetve állítgatják, ezért szerettem volna és is így indulni, hogy jól működik-e, illetve, hogy jól kötöttem be?
Az UNO meg az usb miatt kell ugye. Utána akkor le is vehetem majd róla?
Egyelőre nem kell sok port, már egyetlen egy relé vezérlésének is örülnék. Persze, később kellene több is.Akkor mit javasolsz? Tudsz útmutatót?
-
Janos250
őstag
válasz
szuszinho #7195 üzenetére
Az ESP8266 önmagában többet tud, mit az UNO.
Mióta portolták az Arduinot az ESP-re, azóta nem célszerű az AT parancsokat küldözgetni, hanem az UNO-n futó programot szőröstül/bőröstül átrakjuk az ESP-re, és azon futtatjuk. Az UNO-t meg eltesszük emlékbe.
Az AT parancsokkal a WiFit vezérelnénk, de az ESP-n a WiFi kezelésére kész osztályok vannak, amik SOKKAL kényelmesebbek.
Lehet, hogy valami régi irodalom alapján próbálod, amikor még így kellett?
Az UNO előnye az ESP8266-hoz képest, hogy több I/O portja van.
Ha kell a sok I/O port, akkor meg az ESP32 a célszerű. egy-két ezer Ft körül van ebay-en, attól függ, mikor és hol. Most 11.11-én ismét kb. 1300 Ft volt.
Az ESP8266-os lapból is van egy csomó, Neked melyik van? -
Teasüti
nagyúr
válasz
Janos250 #7192 üzenetére
Neeem, bár nem vagyok biztos melyik problémára célzol.
Amivel most küzdök, az egy BLE alkalmazás telefonra.
Mivel nem szeretnék megtanulni Android alkalmazást fejleszteni - nyilvánvaló okokból -, ezért a Play-en keresgélek vmi használható után. A Blynk egy egész ügyes kis alkalmazás lehetne, de nincs kész BLE támogatás egyetlen Espressif MCU-hoz se, hát még az ESP32-höz.
Az UART programok szépen működnek, de nem parancssorból szeretném vezérelni a cuccot.
Most vmi pfodApp nevezetűt próbálgatok.
Ennek sincs ESP32 támogatása - nem meglepő módon -, viszont az általa használt library pofon egyszerű (na jó azért kezdőként kell némi idő míg visszafejti az ember) és a meglévő BLE modulokhoz való UART porton kommunikál. Ezt a library-t akarom módosítani úgy, hogy ne a Serial stream-re tolja ki az adatokat, hanem a Kolban féle BLE UART függvényekbe. Elméletileg nem egy nagy munka átírni a library-t.
Csak mikor megláttam, hogy a Serial-t példányosítja és annak a print függvényeit használja, akkor hirtelen azt hittem elég volna copy&paste módon bedobálni a BLE notify() függvénybe mindent, ami ott megy át.
Persze aztán rájöttem ez se nem praktikus, se nem egyszerűen kivitelezhető.Amúgy okkal csináltam egy topikot ezeknek a témáknak, mert itt mindezt off-ba rakja a nép vmi oknál fogva.
-
Janos250
őstag
válasz
Teasüti #7191 üzenetére
Ugye nem a másik topicban tárgyalt áthallásos problémát akarod szoftveresen megoldani? Mert az nem fog menni! Ez az átka a nagy energiatakarékosságnak, hogy olyan pici áramok mennek, hogy akár a Kossuth rádió is bezavar. Muszáj ellenállással mesterségesen megterhelni. Én a soros átvitelnél tapasztaltam ugyanezt: kb 20 centis vezeték a két IC között, és a csomagok 10-20 százaléka CRC hibásan érkezett.
Mit akarsz variálni?
"Az ESP32-n a HardwareSerial.cpp fájlba kell belenyúlnod. (hardware\espressif\esp32\cores\esp32)"
"int HardwareSerial::read(void)
{
if(available()) {akarmi =uartRead(_uart);
Itt megcsinálod amit akarsz
return itt meg adod neki ami jó Neked!
}
return -1;
}"Az szerintem nem lesz egy ördöngősség! Egyszerűen az uartRead(_uart); rész után csinálsz valamit, nem azonnal adod a returnnek.
-
Janos250
őstag
válasz
Teasüti #7188 üzenetére
Mélyrehatóan nem, de valami:
Az ESP32-n a HardwareSerial.cpp fájlba kell belenyúlnod. (hardware\espressif\esp32\cores\esp32)
A Stream osztály virtuális függvényként megadja, hogy minden gyerekének (pl az egyes processzorok serialjei) kötelezően miket kell tartalmaznia,
ezzel nagyjából biztosít egy bizonyos kompatibilitást.
(class HardwareSerial: public Stream)int HardwareSerial::read(void)
{
if(available()) {
return uartRead(_uart);
}
return -1;
}}
size_t HardwareSerial::write(uint8_t c)
{
uartWrite(_uart, c);
return 1;
}Mint látható, használják az esp32-hal-uart.c fájlból az uartRead-et az meg a hardware\espressif\esp32\tools\sdk\lib\xQueueReceive.a assembly fájl tartalmát.
Érdemes még egy pillantást vetni a HardwareSerial.cpp fájl include-ok utáni első sorára: HardwareSerial Serial(0);
Itt példányosítja előre a mi beavatkozásunk nélkül "Serial" néven a 0-ás UART-hoz kapcsolva. Ezért nem kell őt nekünk példányosítani. -
Teasüti
nagyúr
Van itt vki aki ismeri mélyrehatóan a Serial és az alatta lévő Stream osztályokat?
Szeretném elkapni az UART kommunikációt és továbbítani saját függvényekbe. -
szuszinho
őstag
Sziasztok,
Próbálnám használni az ESP8266 modulomat UNO-val.
Odáig már eljutottam, hogy firmware-t tudok a modulon frissíteni, de bármit csinálok, az AT parancsra nincs válasz. Igaz, nem vagyok biztos abban, hogy melyik a legfrissebb fw.
Az UNO RESET a GND-be van kötve, és rámértem a 3.3V-ra, és az is jó. (3.32V) -
Tankblock
aktív tag
válasz
hodostamas #7179 üzenetére
Hello,
Lábak / Timerek / I2C addressek nem akadnak össze?
Gondolok itt a ethernet shield és a többi eszközre.... -
Teasüti
nagyúr
válasz
hodostamas #7183 üzenetére
Ha nem jutsz dűlőre, akkor még a fenti library-vel lehet matekozni is stack méretet. Ugye az előre lefoglalt memória a ram elején van, a dinamikus memória vagy az úgynevezett stack meg a ram végén. Ha a kettő "összenő", na akkor futsz ki a ram-ból. Ha a stack pozíciója lejjebb van, mint a lefoglalt terület vége, akkor van baj.
-
Teasüti
nagyúr
válasz
hodostamas #7179 üzenetére
Erre mi mutat?
Serial.println(freeMemory(), DEC); // print how much RAM is available.
Persze menet közben monitorozva. (Nem próbáltam ki.)Illetve ha esetleg a program hibázik, akkor kipróbálnám az ArduinoCrashMonitor library-t is.
Ha mindig ugyanannál a sornál fagy le, akkor program hiba.
Velem fordult már elő, hogy a használt library volt a ludas.
Pl régebben a gyári I2C library nekem instabil volt és mindig megszűnt kommunikálni. -
JozsBiker
aktív tag
válasz
hodostamas #7179 üzenetére
Táp elég ?
-
hodostamas
addikt
Hali,
Van egy Arduino Unom a következőkkel:
- Eth shield
- RF24
- DHT22szeretnél még egy kijelzőt rá(SD1306, I2C) de ha bekapcsolom a kijelzőt+ETH-t akkor lefagy. Külön külön megy minden flottul. Netet túrtam ami legközelebb állt hogy lehet túl kevés a memória az UNO-ban.. Mi más lehet?
Hátha valaki már találkozott ezzel...
Jelenlegi használat:
Vázlat használ 28508 bájt (88%) -ot a program tárhelyből. A maximum 32256 bájt.
A globális változók 1541 bájt (75%)-ot használnak a dinamikus memóriából, 507 bájtot hagyva a helyi változóknak. A maximum 2048 bájt.
Kevés elérhető memória, stabilitási probléma fordulhat elő.Maga a cucc egy weather station agya, wireless veszi a kinti nano-tól a hőmérsékletet, veszi a rácsatizott dht22-től és loggolja mysql db-be.
Thx
-
Janos250
őstag
Na, az UNO feeling kedvelőinek megjelent az ESP32 is "UNO-szerű" kivitelben:
https://www.ebay.com/itm/MINI-Wemos-D1-TTGO-UNO-R3-D1-R32-ESP32-CH340-WIFI-Bluetooth-Devolopment-Board-4M/263305416343?hash=item3d4e39ce97:g:ZRcAAOSwIJlaAZr4 -
zeix
senior tag
Közben sikerült is megoldanom.
Ha valakit érdekel, akkor a helyes funkció:int funkcio()
{
digitalWrite(statepl, HIGH);
delay(2);
digitalWrite(statepl, LOW);
delay(2);
digitalWrite(statepl, HIGH);
delay(2);
int eredmeny=digitalRead(stateq7);
allapot[0]=eredmeny;
for (int i=1; i <= 7; i++)
{
digitalWrite(statecp, HIGH);
delay(2);
digitalWrite(statecp, LOW);
delay(2);
int eredmeny2=digitalRead(stateq7);
allapot[i] = eredmeny2;
}
sprintf(osszefuzes, "%d%d%d%d%d%d%d%d",allapot[0], allapot[1], allapot[2], allapot[3], allapot[4], allapot[5], allapot[6], allapot[7]);
int deceredmeny= strtol(osszefuzes, NULL, 2);
return deceredmeny;
} -
zeix
senior tag
Sziasztok!
Problémám van egy funkcióval amit írtam.
Most írtam először C-ben, de természetesen nem működik.
Kapok egy ilyen hibát:return-statement with a value, in function returning 'void' [-fpermissive]
A funkció amit írtam:void funkcio()
{
digitalWrite(statepl, HIGH);
delay(2);
digitalWrite(statepl, LOW);
delay(2);
digitalWrite(statepl, HIGH);
delay(2);
int eredmeny=digitalRead(stateq7);
allapot[0]=eredmeny;
for (int i=1; i <= 7; i++)
{
digitalWrite(statecp, HIGH);
delay(2);
digitalWrite(statecp, LOW);
delay(2);
int eredmeny2=digitalRead(stateq7);
allapot[i] = eredmeny2;
}
sprintf(osszefuzes, "%d%d%d%d%d%d%d%d",allapot[0], allapot[1], allapot[2], allapot[3], allapot[4], allapot[5], allapot[6], allapot[7]);
long deceredmeny= strtol(osszefuzes, NULL, 2);
return deceredmeny;
}
Itt pedig a loop:void loop()
{ int eredmeny=funkcio();
if (eredmeny == 128) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
delay(2000);
}
Jó lenne ha működne.
Tudtok segíteni? -
-
Janos250
őstag
Srácok!
Valaki használta már ESP32-n a CCOUNT-ot? (getCycleCount(), vagy hasonlók)
A guta megüt vele, összevissza adatokat ad, és nem tudom, mi a bánatos Télapó a baja.
Ez egy uint32_t regiszter, ami az órajelciklusokat számlálja, de az uint32_t 240 Mhz-nél tizenegynéhány másodpercenként átfordul, tehát így időzítésre nem igazán jó.
Lehet resetelni (XTHAL_SET_CCOUNT(0)), úgy már jó lenne, de a getCycleCount() a program futása során ugyanarra az utasítássorra egyre nagyobb értékeket ad, még a delay() is egyre lassabb lesz. Mintha egyre csak lassulna, lassulna a gép.
Próbálta már valaki? -
brickm
őstag
válasz
gyapo11 #7168 üzenetére
Sziasztok!
Riasztóközpontom open-collectoros kimenetét szeretném GPIO-ra kötni és kommunikáltatni a hálózaton.
Ehhez szeretnék egy ESP 8266-os modult vásárolni, de láttam, hogy elég sok fajta van.
Az lenne a kérdésem, hogy melyik verzió, melyik tipus lenne nekem a legmegfelelőbb, van egy arduino megám is, lehetőleg azzal legkompatibilisebb változatot szeretném. -
-
Teasüti
nagyúr
Az előző motoromra is készítettem ledet, bár az analóg 12V volt.
A beázással nem volt gond, még az olaj lerakódás se hatotta meg, de még a motor hőjét is tűrte.
Ettől nem is tartok, elég igényesen összeraktam. Ragasztó + zsugorcső az egyik végén, ragaszó + szilikon végzáró a másik végén. Zsugorcső + szilikonzsír a vezetékek összekötésekor. Vízálló csatlakozók.
Nem tudom viszont a digitális szalag mennyire lesz megbízható. Konyhában pultvilágításra már szereltem fel ilyen szalagot, de az nagyon hamar pixelhibás lett. Többször is kellett pixelt cserélnem azon. Remélem csak egy selejtes tekercs volt...(#7163) gyapo11
Köszönöm!
Népszerű leszek a tinik körében, ez azzz!!
Egy igazi nő viszont max megmosolyog.
Ezt a magam szórakoztatására készítettem. -
fpeter84
senior tag
válasz
gyapo11 #7162 üzenetére
Bele kell nézni, rámérni, mert nyákterv függő... A CY7C68013A fő csipp doksija szerint 3.3V tápfesze mellett is 5.25V a Vin max. Viszont ha van mellette egy 74HCT24x is akkor annak rá kell mérni a tápfeszére, mert az enyémen pl az is a közös 3.3V-ról megy ami kiszúrás, mert a csipp doksija szerint a Vin nem haladhatja meg a tápfeszét... Persze a gyakorlatban bírhatja - mire ez feltűnt nekem, sztem párszor már én is megkínáltam 5V-os logikai jellel is és nem ment tönkre - de azért jobb tisztában lenni vele. Esetleg át is lehet kötni kis gányolással a tápfeszét a bejövő 5V ágra, és az akkor kiterjeszti a biztonságos működési sávot...
-
gyapo11
őstag
Vettem egy logic analyzert. A banggood adott egy onedrive-os linket, onnan van egy 1.1.18-as verziószámú (béta )software. Aztán ez szólt, hogy van frissebb, és letöltöttem a Saleae-től az 1.2.14-est. Melyiket érdemes használni, van-e előnye-hátránya bármelyiknek? Alin vettem, egy mukkot nem ír feszültségről a bemeneten, 5 V, 3.3 V vagy mennyi a fölső határ? Meddig veszi 0-nak, és honnan 1?
-
Teasüti
nagyúr
Szeretném megköszönni ezúton is a rengeteg segítséget!
Igazán leköteleztek.
Alább látható az ESP32 vezéreltre ws2812 projektem.
Idővel szeretném interaktívvá tenni, a tacho és speed jelek kiolvasásával, meg épp készülőben van egy saját tervezésű féklámpa is 5730-as ledek felhasználásával (nagyon durvák ezek a fél wattos ledek, 5 db-ot próbáltam ki a prototípuson, de még 8%-on is bántja a szemem. 100%-on meg mintha napba néznék, instant vakufoltok.
Na ezt egy kicsit túllőttem 95 db ilyen leddel...).
Szóval egy szó mint száz, még keresem a bajt így sűrűn fogtok hallani felőlem. :] -
Dzseno
tag
sziasztok!
Tudtok ajánlani jó könyvet arduino témában?
köszi -
válasz
fpeter84 #7156 üzenetére
Tápfeszültség témához off: nemrég teszteltem, hogy lefelé meddig lehet menni. Kínai klón UNO lap +5V-ra két ceruzaelemről vidáman üzemel, sőt, két közepesen töltött ceruzaakksiról is, ami 2,8V.
On: szeretnék egy UNO és egy Wemos d1 mini lapot összekötni, i2c-n megy majd a kommunikáció. A Wemos az UNO +5V-ról kapja a tápfeszültséget, de ugye az esp 3,3V-ról üzemel, amit a wemos onboard regulátorral állít elő magának az 5V-ból. Van értelme a 3,3V-ot is közösíteni a két lap közt? -
fpeter84
senior tag
válasz
dave0825 #7155 üzenetére
Rákötheted közvetlenül is az 5V lábra az 5V forrásodat, a kínai klón nano alapból is úgy oldja meg a közösítést, hogy az USB felől az 5V egy diódán keresztül van egyirányúsítva, illetve vele párhuzamosan van egy 1117-es feszstab - tehát normál esetben USB-re kötve is szembe kapja az álló LDO az 5V-ot a kimenetére. Probléma esetleg ott lehet, ahol a mikrokontrollernek natív USB funkciója is van (Leonardo, Due, stb), mert akkor ha kívülről erőszakolod bele az 5V-ot akkor nem biztos hogy a belső kapcsoló mechanizmusok úgy működnek majd ahogy várod...
Az eredeti nano limit és terhelhetőségi információira ne alapozz! Az eredetin az 5V LDO egy 78M05-ös aminél az absolute maximum rating bemeneti fesz ~35V, az ajánlottat most nem találom de terheléstől függően 20-24V lehet és a terhelhetősége 0.5A, amit teljesít is annyi hűtéssel amit ad neki a nyáklap ha 10-12V-nál nem több a bemenő fesz. A 3.3V-ot is egy LDO adja, mégpedig az LM6206-os 0.25A terhelhetőséggel. Mivel ezek sorba vannak kötve ezért természetesen az össz áramfelvétel nem haladhatja meg a 0.5A-t.
Ezzel szemben a kínai klónokon az 1117 családba tartozó (AMS,LM - egyszer összeszámoltam, van vagy 15 féle) LDO dolgozik ami bár papíron 1A-t is tudna, de a gyakorlatban a kis tokozása miatt attól is max fél ampert várnék el, többre nem terveznék. Ezek az 1117-ek igen sokfélék. A doksikat böngészve találtam olyat is aminél 12-15-18V az ajánlott max bemenő fesz. Mindenesetre nálam már szállt el nano/uno pár nap üzem után ~12.6V-ot adó DC tápra kötve, ezért 9-10V fölé nem mennék a VIN-en... A 3.3V-os ágat pedig LDO helyett a CH340g-ből nyeri gány módon, aminek most nem találom a terhelhetőségét - de lévén hogy ezt valójában belső célra szánták, nem LDO forrásnak így 50mA-nél többel nem terveznék vele...
-
dave0825
őstag
válasz
fpeter84 #7152 üzenetére
Köszi. Fix 5V-ot szeretnék használni (nem autóba lesz). Nem eredeti, eBay-es. Több helyen is láttam, hogy mehet a +5V-ra és megnéztem, oda kötöttem én is még régebben.
"The Arduino Nano can be powered via the Mini-B USB connection, 6-20V unregulated external power
supply (pin 30), or 5V regulated external power supply (pin 27). The power source is automatically selected
to the highest voltage source."Írják egyébként a hivatalos oldalon, hogy 5V a működési feszültség, 6-20V a limit, 7-12V az ajánlott, szóval ezek alapján szerintem mehet a +5V-ra a fix. 5V-os táp. Igaz, nem írtad, hogy nem.
-
válasz
Victoryus #7153 üzenetére
Az L298N-nek kevés a 6V, L9110 alapú vezérlő 2,5V-tól már működőképes. Ha Debrecen környéki vagy, tudok adni kölcsön, amíg megérkezik.
Nekem végül a smart car-omba egy ilyen shield került, irtó jól működik a h-bridge-ekhez képest, i2c-n át működik, csak 2 lábat foglal és saját pwm generátora van. -
-
fpeter84
senior tag
válasz
dave0825 #7151 üzenetére
VIN-re kell kötni a betápot. Ha eredeti az UNO/MEGA, akkor köthetsz rá 12V-ot. Ha kínai klón amin AMS1117 feszstab van akkor bár elméletben mehetne az is 12-ről, de nekem már sült meg ilyen > a 9-10V a biztonságos. Ha autós felhasználásra kell, akkor mindkettő elé ajánlott táp, mert az autóban bármikor kaphat 14V felett is, ami már mindkettőnek sok. Ha Due, akkor abból nálam a kínai klón is 100%-ig megegyezik az eredetivel és mehet rá ~20V tápfeszig bármi. Ha kínai nano/micro, akkor meg kell vizsgálni, mert van olyanom amire olyan táp IC került amire abszolút max 6.5V-ot szabad ráengedni, de inkább csak szűk 6-ot ajánlott...
Az 5V már kicsit kevéske a VIN-nek, mert akkor az 5V-ból csinálna az onboard LDO 5V-ot ami a gyakorlatban már csak 4-4.5V lesz. Valószínűleg erről is elmegy stabilan, de jobb ha min 6-6.5V-ot adsz a VIN-re...
-
dave0825
őstag
Üdv.
Mostanában nemigen foglalkoztam Arduino-val, kb. 2 éve utoljára.
Azóta halványodott az amúgy is gyengécske tudásom, szóval az lenne a kérdésem, hogy hova kell kötni a külső tápot, ha nem USB-ről szeretném működtetni a panelt? Egy 10-12V körüli tápot 5V-ra leszabályozva LM2596-tal a Vin-re, vagy a +5V-ra kell kötni? Úgy emlékszem, hogy egy fesz.szabályzó csökkenti le 5V-ra az Arduinón, ami a Vin-re megy (esetleg 9V, vagy 12V-ot), de a +5V-ra mehet a fix. 5V-os DC táp, de azért erősítsetek meg. Google-ben keresgetve láttam ilyen-olyan megoldást is...
A GND-re persze tudom, hogy a negatív megy, meg ha másra használom a külső tápot, akkor a GND-t össze kell kötni vele, de ez most itt nem lényeg.
-
Sziasztok! Nincs vkinek szüksége egy nagy halom 1.27mm-es JST csatlakozóra, készre szerelve 15cm-es vezetékkel +aljzat? Elnéztem a méretet rendeléskor...
-
Teasüti
nagyúr
válasz
Janos250 #7146 üzenetére
Megcsináltam, működik. Fasza. Azóta életre keltettem a BLE UART-ot is, ami notify() és write() funkciókkal tud csak működni, ami a klasszikus BT-re hajaz, de a fogyasztás nem szempont.
Igazából a hardver több fejfájást okozott, mint a dokumentáció nélküli library.
Ha követed a hobbi elektronika topikot, akkor láthattad mekkorát sz.ptam a szalagok vezérlésével és az állandó boot loop-pal. -
2 ilyen kis motort+ultrahang szenzort+bluetooth vezérlőt elbír motorvezérlő nélkül az uno? Látni akarom végre ahogy gurul ez a kis rohadék kínai selejt... 3 hét mire ideér a következő motorvezérlő, de az már L293d. Ez a L298N döglött.
-
Ez alapján a kép alapján összekötöttem az alkatrészeket. Annyi a különbség, hogy csak 2 motor van, szervo sincs, és csak 4db 2300mAh AA aksi. Az ég világon semmi nem történik. Előtte az arduinóra rátöltöttem a programot ami a codemahal oldalán van.
A motorok jók, az arduino is működik ha közvetlen arra kötöm az elemtartót. Hibás esetleg a motor vezérlő? Motorok nélkül is néztem, akkor se történik semmi. (tuti nem kap áramot az arduino, mert nem is világít egyáltalán). Ha csak simán a motorvezérlőre adok áramot, akkor el kéne indulnia a motoroknak, vagy lehet tesztelni valahogy, hogy működik-e?
ps: Látom elvileg villágítania kéne egy lednek rajta... hát ezen semmi nem világít. -
Janos250
őstag
válasz
Teasüti #7140 üzenetére
Elnézve a macerát, kezd az az érzésem támadni, hogy igaza volt annak, aki megírta "gyalog" módszerrel a WS2812 RGB led szalag programozását az ESP32-re, mert az legalább egyszerű, és működik. Mivel nagy a sebesség, és van 2 mag, nem szorít az idő, hogy hardware alapon kezeljük a szalagot, bár kétségkívül az a szebb, ezért meg kellene próbálni, valami egyszerűbb, áttekinthetőbb megoldást találni rá.
-
gyapo11
őstag
válasz
Spuri2000 #7144 üzenetére
Írj egy kis programot, ami másodpercenként kiírja a millis() értékét. Ott látni fogod, hogy a millis() folyamatosan működő számláló, 50 nap után fordul át. Másodpercenként 1000-rel nő az értéke.
Ha elteszed a pillanatnyi értéket egy változóba, és utána a loopban folyamatosan hasonlítod a változót a pillanatnyi millis()-hez, akkor amikor a különbség elérte az 1000-et, akkor eltelt 1 másodperc.
Azt nem írtad hogyan akarod a gombokkal villogtatni a ledet. Addig, amíg nyomod, vagy egy nyomásra kezdjen villogni, második nyomásra hagyja abba.
Rákötöd a gombokat egy-egy bemenetre, és a loopban beolvasod, hogy meg van-e nyomva valamelyik, amelyik igen, az annak megfelelő változóba beírsz egy 1-est, ez jelenti, hogy a lednek villognia kell, ha 0 van benne, akkor nem villog.
A loopban vizsgálod ezeket a változókat, és az értéküktől függően villogtatod vagy nem a megfelelő ledet. -
Spuri2000
senior tag
Sziasztok
Egy kis segítséget szeretnék kérni.
Nemrég kezdtem ismerkedni az arduinoval ezért kérem nézzétek el ha nagyon alap dolgokat kérdezek.
Két nyomógombbal két Ledet szeretnék villogtatni úgy hogy ha benyomom az elsőt akkor az elkezd villogni és ha benyomom a másodikat akkor az is elkezd villogni. Ezt a két folyamatot szeretném egymástól függetlenül irányítani. Hogyan tegyem?
A delay ugye kiesett, de olvastam valami millisről de az nem tiszta hogyan működik és pontosan mit és hova kell irnom. Ebben tudna valaki segíteni vagy ha van más egyszerűbb akkor azt is örömmel fogadom. -
Megírtam a 'kitt' led villogtatást for ciklussal. Amit nem értek, hogy miért nem írja ki a 0-át. Csak akkor írja, ha az összes számjegy aktív.
#include <TM1638.h>
TM1638 module(8, 9, 10); // define a module on data pin 8, clock pin 9 and strobe pin 10
int szam; //led száma ami világít
int a; //segédváltozó a for ciklushoz
void loop() {
// put your main code here, to run repeatedly:
kitt();
}
void kitt() {
for (a=0; a<8; a++)
{
ledek();
}
for (a=6; a>0; a--)
{
ledek();
}
}
void ledek() { //Figyelem! A ledek számozása 0-7!
szam=a;
module.setDisplayToDecNumber(a,0,false); //1-es a tizedes vessző, true az összes számjegy elvileg
module.setLED(TM1638_COLOR_RED, szam);
delay(200);
module.setLED(TM1638_COLOR_GREEN, szam);
}
Közben leesett, hogy igazából elég lenne az 'a' változó is. -
Teasüti
nagyúr
-
Teasüti
nagyúr
válasz
Teasüti #7139 üzenetére
Hmm úgy néz ki itt vmi típushiba van, ahol ezt alkalmazni szerettem volna.
Más helyen aSTRANDS[i].numPixels
szintaktika működik.
Viszont változó deklarációnál nem veszi be:byte buffer1[(int)STRANDS[0].numPixels * 3] = {};
Erre dobja a hibát:
array bound is not an integer constant before ']' token -
-
-
Teasüti
nagyúr
válasz
Tankblock #7129 üzenetére
Őőő kicsit el vagyok tévedve. Még mindig nem fog menni.
Már az sem megy, hogy hogy tudom lekérni ennek a STRANDS[] tömbnek az egyik elemét.
Hibát dob a compiler ezek mindegyikére:STRANDS[0].numPixels;
&STRANDS[0].numPixels;
&STRANDS[0]->numPixels
És a maradék kombinációra.Próbáltam így is:
strand_t * strands [] = { &STRANDS[0] };
strands->numPixels;
Így se jó.
Kezdek ideges lenni...
Keresnék a neten, de azt se tudom ez melyik témakör, vagy mit keressek.
Object array-ra kicsit más találatok jönnek ki, vagyis többnyire olyan példák, amiben a tömb elemeinek csak egyetlen paramétere van.A demo1-ben ami alapján próbálkozom meg rohadt nehéz átlátni, hogy az függvények miket adnak át egymásnak: pointer-t, objektum tömböt, pointer-ből álló tömböt, stb.
-
Teasüti
nagyúr
Próbálom visszakövetni a forráskódot hol lehetnek a pixelek eltárolva.
Ha megnézem a
digitalLeds_updatePixels(strand_t * pStrand)
kódját a .cpp fájlban, akkor ebből apState->buf_data[0 + i * 3] = pStrand->pixels[i].g;
pState->buf_data[1 + i * 3] = pStrand->pixels[i].r;
pState->buf_data[2 + i * 3] = pStrand->pixels[i].b;
rész érdekes nekem. Az itt lévőpixels[]
az lesz, ami a STRANDS[] objektumban van definiálva.Aztán ott van egyszer a szalag definíció a programban:
strand_t STRANDS[] = { // Avoid using any of the strapping pins on the ESP32
{.rmtChannel = 1, .gpioNum = 17, .ledType = LED_WS2812B_V3, .brightLimit = 32, .numPixels = 93,
.pixels = nullptr, ._stateVars = nullptr},Csak tippelek, de a
.pixels
az az ami érdekes lehet nekem.Ez a .h fájlban így néz ki:
typedef struct {
int rmtChannel;
int gpioNum;
int ledType;
int brightLimit;
int numPixels;
pixelColor_t * pixels;
void * _stateVars;
} strand_t;Itt a
pixelColor_t * pixels;
amit keresnem kell.
Felette meg is vannak az egyes komponensei a pixeleknek:inline pixelColor_t pixelFromRGB(uint8_t r, uint8_t g, uint8_t b)
{
pixelColor_t v;
v.r = r;
v.g = g;
v.b = b;
v.w = 0;
return v;
}Már csak a pStrand maradt hátra az egyedüli elemeként a puzzle-nak, amit még nem egészen tudtam lekövetni, mi hogy mikor és hol kerül meghívásra.
Jelenleg úgy sejtem a*pStrand
az lényegében egy&STRANDS[i]
lesz. Na megyek alámerülni megint...szerk: oh ba.meg MEGVAN! Hisz ezzel indul a függvény meghívás a loop()-ban.
for (int i = 0; i < STRANDCNT; i++) {
strand_t * pStrand = &STRANDS[i];
rainbow(pStrand, 0, 2000);
scanner(pStrand, 0, 2000);
digitalLeds_resetPixels(pStrand);
}
Azt hittem ez globális lesz, mert mindenhol előfordul ez a név.
Közben meg ha jól értem, akkor a loop() deklarálja és innen kerül átadásra a függvényeknek, ahol meg újra lesz deklarálva helyi változóként minden egyes függvényben külön-külön.Akkor azt hiszem ezzel a helyére került minden eleme a puzzle-nak.
Elméletben. Jöhet a gyakorlat... -
-
Teasüti
nagyúr
válasz
Janos250 #7127 üzenetére
Idáig már magam is visszafejtettem a demót.
Amit pillanatnyilag nem értek, az a pStrand használata:digitalLeds_updatePixels(pStrand)
Azt próbálom kisilabizálni, hogy ez egészen pontosan mire is hivatkozik és vhogy át kéne neki adnom a saját byte tömbömet, amiben a pixeleket tárolom globális változóként.
Nem szeretném a demóban lévő rainbow-t használni, az csak példa értékű.
A saját függvényeimet kell átírnom, hogy pointer-t használjanak, vagy pedig kell egy apró függvény, ami az általam alkalmazott byte tömbből csinál mutatót, amit át tudok adni adigitalLeds_updatePixels()
függvénynek.
Ha egyáltalán így működik a pStrand. Amíg nem tudom mire mutat... Egy tömbre? Vagy egy objektumra a STRANDS[] elemei közül? Vagy hogy tudom elérni közvetlenül az egyes pixeleket, amire mutat? -
Janos250
őstag
válasz
Tankblock #7119 üzenetére
Ki, de kiakadt.
A demo2 már sokkal logikusabb.
Teasüti, azt nézd!
https://github.com/MartyMacGyver/ESP32-Digital-RGB-LED-Drivers/tree/master/esp-idf
Ezt a részét tedd a setupba:
gpioSetup(16, OUTPUT, LOW);
gpioSetup(17, OUTPUT, LOW);
gpioSetup(18, OUTPUT, LOW);
gpioSetup(19, OUTPUT, LOW);
if (digitalLeds_initStrands(STRANDS, STRANDCNT)) {
ets_printf("Init FAILURE: halting\n");
while (true) {};Ezt meg a loopba:
for (int i = 0; i < STRANDCNT; i++) {
strand_t * pStrand = &STRANDS;
rainbow(pStrand, 0, 2000);
digitalLeds_resetPixels(pStrand);
}Minden egyéb mehet az elejére a setup elé.
A millis() és a delay() deklarációját kommentezd ki!
Innen:
https://github.com/MartyMacGyver/ESP32-Digital-RGB-LED-Drivers/tree/master/arduino-esp32/demo1a
esp32_digital_led_lib.h és a esp32_digital_led_lib.cpp fájlpkat másold be oda, ahol a programod van. -
BTminishop
aktív tag
üdv
Két olyan eszközt szeretnék majd használni, amikhez szükséges SPI?
Ez lehetséges Mega 2560-on, valaki csinált már ilyet?
köszi előre.
-
Tankblock
aktív tag
válasz
Teasüti #7124 üzenetére
Muszáj, mert W2812b protokolja így néz ki:
https://cpldcpu.com/2014/01/14/light_ws2812-library-v2-0-part-i-understanding-the-ws2812/
szóval azokat RGB koordinátákat egy időbeni eltolásos protokollá kell traszferálni. A Remote Kontroll struktúrája pedig addr0 level [31] period [30:16], level [15], period [14:0] ábrázoással kell tárolni.
level bit 0v1
period hossza amíg ki kell tartani....ezt kombinálva 1 bitet 32 biten kell tárolni W2812b protokollja végett.
-
Tankblock
aktív tag
válasz
Teasüti #7122 üzenetére
Hello,
Ha jól értelmezem a kódot, akkor a
Ebben a structban csak a pixelek színkódjait tárolja:
pState->buf_data[0 + i * 3] = pStrand->pixels[i].g;
pState->buf_data[1 + i * 3] = pStrand->pixels[i].r;
pState->buf_data[2 + i * 3] = pStrand->pixels[i].b;Majd a library ban a
static void copyToRmtBlock_half(strand_t * pStrand);
másolja be a átváltás után HW memóriába:
RMTMEM.chan[pStrand->rmtChannel].data32[data32_idx].val = pState->pulsePairMap[bitval].val;
majd ezt frissíti az interruptban, ahogy kiküldte ameit kell.
-
Teasüti
nagyúr
válasz
Tankblock #7121 üzenetére
Mi a különbség ez:
while (true) {
for (int i = 0; i < STRANDCNT; i++) {
strand_t * pStrand = &STRANDS[i];
rainbow(pStrand, 0, 2000);
digitalLeds_resetPixels(pStrand);
}
}...és ez között?
while (true) {
for (int i = 0; i < STRANDCNT; i++) {
rainbow(&STRANDS[i], 0, 2000);
digitalLeds_resetPixels(&STRANDS[i]);
}
}
szerk: semmi... Eredetileg jelölő nélkül értettem, hogy aztán leesett, hogy mint változó értelmetlen volna aSTRANDS[i]
. Azt leszámítva, hogy jelölőket kell átadni a függvényeknek.Miközben írtam a válaszom jött egy felismerés:
két példány létrehozásához jön jól egy objektumnál, ha a teljesen azonos paramétereknek két eltérő memóriaterületet tudunk linkelni. Szóval a régi dilemmámat lehet feloldani így ha jól értem, amikor változókból próbáltam létrehozni több példányt: pl buffer1[], buffer2[] és e helyett lehet ugyanazt a buffer[] változónevet használni pointer-ként, egy amolyan shift register módon. Ez a gondolatmenet nagyjából köszönőviszonyban van a valósággal?Vmint az RMT külön lefoglalt ram területekről dolgozik. Értem. Ha erre céloztál. Ez lesz a puffer szerintem, az viszont külön téma a library-ben:
// Pack pixels into transmission buffer
if (ledParams.bytesPerPixel == 3) {
for (uint16_t i = 0; i < pStrand->numPixels; i++) {
// Color order is translated from RGB to GRB
pState->buf_data[0 + i * 3] = pStrand->pixels[i].g;
pState->buf_data[1 + i * 3] = pStrand->pixels[i].r;
pState->buf_data[2 + i * 3] = pStrand->pixels[i].b; -
Tankblock
aktív tag
válasz
Teasüti #7120 üzenetére
Hello,
Csak azért vannak a pointerek, mert a 8 csatornát másként teljesen általánosan kezelni nem egyszerű.
A mit miértért, meg javaslom, hogy nézd meg a esp32_technical_reference_manual_en -t. 14.2.1 RMT arcitecture elmagyarázza a HW működést a Remote Controller Peripheral nak. -
Teasüti
nagyúr
válasz
Tankblock #7119 üzenetére
Van demo2 is?
Most próbálm kiollózni a minimálisan szükséges részeket a demóból.
De köszönöm a segítséget, két ember is ugyanezen dolgozik épp... Igazán megtisztelő.
Majd mondjátok mivel tartozom ha ezt tető alá tudjuk hozni!Amúgy egyáltalán nem értem miért kell ennyi pointer ide. Amit beillesztettél ciklus is szerintem pont ugyanazt adná pointer nélkül is közönséges változókkal.
-
Tankblock
aktív tag
válasz
Janos250 #7118 üzenetére
A demo2 nézem....
strand_t STRANDS[]
ből is kivetted a nem kellő részét?int STRANDCNT = sizeof(STRANDS)/sizeof(STRANDS[0]);
void app_main() ben
while (true) {
for (int i = 0; i < STRANDCNT; i++) {
strand_t * pStrand = &STRANDS[i];
rainbow(pStrand, 0, 2000);
digitalLeds_resetPixels(pStrand);
}
} -
Teasüti
nagyúr
Ez a Neil Kolban nagy guru lehet.
Most nézem, hogy van BLE library Arduino alá, és nem a SimpleBLE-ről van szó, hanem rendes implementációnak tűnik első blikkre.
Épp az UART Service példát nézegetem... (Bakker, nem kéne elkalandoznom a feladatról.)
-
-
Janos250
őstag
válasz
Teasüti #7112 üzenetére
Nem okozol gondot.
Igen, az a deklaráció. Egy vektor, aminek minden eleme egy struktúra, ami tartalmazza az adott led paramétereit.
A pStrand az egy strand_t* típusú pointer:class Scannerer {
private:
strand_t * pStrand;strand_t STRANDS[] : a STRANDS[] egy vektor, aminek minden eleme strand_t típusú.
A strand_t egy struktúra, ezért adod meg neki így a kezdőértékeket, pl.: .rmtChannel = 1typedef struct {
int rmtChannel;
int gpioNum;
int ledType;
int brightLimit;
int numPixels;
pixelColor_t * pixels;
void * _stateVars;
} strand_t;tehát tartalmazza az adott ledsor paramétereit (esp32_digital_led_lib.h).
A ledType pedig ezek közül valamelyik:
enum led_types {
LED_WS2812_V1,
LED_WS2812B_V1,
LED_WS2812B_V2,
LED_WS2812B_V3,
LED_WS2813_V1,
LED_WS2813_V2,
LED_WS2813_V3,
LED_SK6812_V1,
LED_SK6812W_V1,
}; -
Teasüti
nagyúr
válasz
Tankblock #7113 üzenetére
Szia!
Erről volna szó:
[link]
Arduino IDE alatt. Jövő héten működésre szeretnék bírni egy projektet, így a megszokott környezetben szeretném berúgni a vasat. Az ESP-IDF-fel való ismerkedés inkább hosszabb távon realizálható.
De megvettem hozzá Kolban könyvét, szóval talán lesz egy épkézláb tananyagom hozzá. -
Teasüti
nagyúr
válasz
Janos250 #7111 üzenetére
Elnézést ha túl sok gondot okozok, nem akarlak feltartani a saját munkáddal!
Csak nem tudom hirtelen hová forduljak segítségért, próbáltam keresgélni az adott library-vel kapcsolatban, de semmit nem találtam még a github-os repo-n kívül, meg egy fórum bejegyzésen kívül, ahol a készítő maga kérdezett vmit.Nekem úgy tűnik, hogy a demóban ez volna talán a deklaráció:
strand_t STRANDS[] = { // Avoid using any of the strapping pins on the ESP32
{.rmtChannel = 1, .gpioNum = 17, .ledType = LED_WS2812B_V3, .brightLimit = 32, .numPixels = 93,
.pixels = nullptr, ._stateVars = nullptr},
};
int STRANDCNT = sizeof(STRANDS)/sizeof(STRANDS[0]);Viszont a programozási ismereteim idáig nem terjednek, így nem tudom mi ez:
strand_t STRANDS[]
. Ez egy objektumként deklarált tömb volna? Az object array leírások nem igazán hasonlítanak erre a kódra. A kapcsos zárójelben lévő elemek is elég furák, mi az a pont minden egyes paraméter előtt? Meg hol van melyik változó milyen típus?És ha jól látom, akkor a frissítés az már a rainbow és a scanner függvényekből történik, vagyis eredendően más megközelítést használ mint én eddig. Én ram-ba írtam az eredményt és azt dolgoztam fel, mielőtt burst write-tal kiment a szalagra - és tulajdonképpen az egész library-ből csak annyit használtam, hogy tolja ki a szalagra az általam felállított byte tömböt.
Ha ennyit el tudnék érni ezzel az ESP-n, hogy írja ki a saját byte tömbömet a szalagra, annyi nekem bőven elég lenne. Nem kell semmi más funkció.Ha megnézem a Scanner osztályát (a class használata nekem kicsit magas, régen sem találtam elég bő lére eresztett leírást a szintaktikájáról, a spéci szimbólumok magyarázatáról), akkor ott látok pár parancsot, ami nekem kell ide, mint a
digitalLeds_updatePixels(pStrand);
valamint adigitalLeds_resetPixels(strands[i]);
parancsok. Viszont nem látom, hogy a pStrand az minek van deklarálva. Az egy tömb lenne?MÁS
Mi a probléma a kapcsoló üzemű táppal?
Stabilizált a táp ill. vannak bypass kondik a lap előtt?
Valószínűleg nem ide tartozik, de én PC táppal tapasztaltam hasonló problémákat, amit meg egy a közelében lévő másik fogyasztó csap le állandóan. A táp egy gőzelszívó ventilátor felett helyezkedik el és valahányszor kikapcsolják a ventilátort, a PC táp reset-el vmiért. Először azt hittem a Nano hülyül meg, televágtam bypass kondikkal, meg ESD védelemmel és még alufóliával árnyékoltam.De még így is levágta, aztán rájöttem, hogy nem a Nano reset-el (készenléti áramról kapja a tápot), hanem a táp maga kapcsol ki.
-
Janos250
őstag
válasz
Teasüti #7110 üzenetére
Hú, nehezet kérdeztél!
Én annak idején csak betöltöttem az elején pár demót, lefuttattam, hogy működnek-e, részletesebben nem foglalkoztam vele.Megnéztem ezt a demót és a libraryt.
A demó meglehetősen el van bonyolítva, de nem tűnik túlzottan vészesnek a library használata.
Persze, lehet, hogy a gyakorlat mást mutat. Majd megpróbálok valami nagyon egyszerű programocskát írni a használatára, de most azzal szívok, hogy az ESP32 mellé tettem a dobozba a kapcsoló üzemű táp panelt, és rendszeresen megbolondul, építhetem át.Persze, ha valaki már használta ezt a libraryt, akkor közösen várjuk az instrukciókat.
-
Teasüti
nagyúr
válasz
Janos250 #6642 üzenetére
Szia!
Kérhetnék egy kis segítséget ahhoz a led library-hez?
Nézegetem a demo1 példát, ami jár mellé, de nem igazán tudom értelmezni.
Nagyon gyenge vagyok a hardver közeli parancsokból, alacsony szinten nem is tudok programozni.
Azt se igazán tudom kisilabizálni, hogy hogy tudok led szalagot definiálni.
Ez a demo inkább emlékeztet egy library struktúrájára a .h fájlokban (a mai napig nem tudok library-t írni, egyszerűen nem értem a szintaktikáját), semmint egy magas szintű példaprogramra. -
Teasüti
nagyúr
Megszakításnál pedig ez az alapeljárás - sok helyen külön felhívják rá a figyelmet, hogy legyen minél rövidebb, lehetőleg egyetlen parancs csupán -, hogy csak egy változót állítasz be (más néven flag-et, ahogy Tankblock hivatkozott rá). Így a lehető legrövidebb ideig tart a megszakítás a loop különösebb hátráltatása nélkül.
A flag elnevezés meg onnan ered, hogy ez az eljárás egy jelzést ad a loop-nak, amiben már szabadon azt csinálunk vele, amit akarunk. Majd ha bevégeztetett a feladat, akkor utána nullázod a flag-et.
Bizonyos feladatokban, mint mondjuk az input capture, ez a flag lehet számláló is és így nézne ki a dolog:void nyissz() {
piros++;
} -
fpeter84
senior tag
válasz
Tankblock #7106 üzenetére
Én inkább a CH340g csippeseket ajánlanám, nekem ez tűnt eddig a leginkább problémamentesnek! Ha eredeti lenne az FT232 az persze szintén jó lenne, de kínából 99% hogy hamisított érkezik, ami hajlamos eldobálni az USB azonosítóját - helyreállítható, de idegesítő jelenség. A PL2303-t szintén orrba-szájba hamisítják a kínaiak - bár a hamis is megbízhatóan megy, viszont csak 8-10 éves driverrel, amit a win10 erőszakosan lefrissít ha nem irtod ki a win update-et és akkor letilt. Még népszerű a CP2102 is. Ezzel nem volt semmi negatív tapasztalatom, de mivel a CH340g messze a legolcsóbb (5db ~800 pénz) ezért ezt javaslom...
-
szuszinho
őstag
Sziasztok,
Megnéztem jópár leírást, videót, de nem tudom működésre bírni az ESP8266-ot. UNO-val próbálom, de a feltöltés mindig hibával elszáll.
Tudtok egy jó leírást hozzá?Köszi!
Új hozzászólás Aktív témák
Hirdetés
- A fociról könnyedén, egy baráti társaságban
- Gigabyte alaplap topik
- Hegesztés topic
- DVBViewer
- Kazy Computers - Fehérvár - Megbízható?
- Autós topik látogatók beszélgetős, offolós topikja
- Max
- One otthoni szolgáltatások (TV, internet, telefon)
- Path of Exile (ARPG)
- AMD Navi Radeon™ RX 9xxx sorozat
- További aktív témák...
- Lenovo Legion 5 Gaming. Az ár irányár, komoly érdeklődés esetén van lehetőség egyeztetésre
- Nintendo Switch bazár (Okosított Nintendo Switch konzolok, játékok, tartozékok)
- Bomba ár! Lenovo ThinkPad T490s - i7-8GEN I 16GB I 256SSD I 14" WQHD HDR I Cam I W11 I Gari!
- LG 34GS95UE - 34" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Honor X7B szép állapotban 6/128GB fekete / 12 hónap jótállással!
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest