- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- CMF Phone 2 Pro - a százezer forintos kérdés
- Nem túl penge, viszont olcsó az új ZTE Blade
- iPhone topik
- Samsung Galaxy A54 - türelemjáték
- Okosóra és okoskiegészítő topik
- Android alkalmazások - szoftver kibeszélő topik
- 6 év biztonsági támogatást ígér a Motorola
- Fotók, videók mobillal
- Poco F6 5G - Turbó Rudi
-
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
-
zka67
őstag
válasz
Scooter86101 #10000 üzenetére
Szia, a 32768Hz es kvarc mindkét lába és a GND közé tegyél 5-10 pF-os kondikat. Nekem ez havi 4-5 mp-es eltérésre csökkentette.
-
zka67
őstag
Szia, én mikrohullámú mozgásérzékelőt tennék fel, ehhez nem kell hozzányúlnod az ajtóhoz:
10.525 HB100 220V DC 12-24V 5.8GHz 24GHz Microwave Motion Detector Sensor Switch
-
zka67
őstag
válasz
nagyharcos #7716 üzenetére
Szia, az eepromok hardveresen is címezhetők, erre vannak az A0, A1, A2 lábaik. A cím pedig
1|0|1|0|A2|A1|A0|RW
lesz, azaz ((0x50 | addr) << 1) | RW -
zka67
őstag
válasz
Teasüti #6254 üzenetére
Szia, bocs, hogy beleszólok a ledes témába: a ledekkel az a helyzet, hogy úgy működnek mint a zener diódák, néhány tized volttal megemelve a ráadott feszültséget nagyságrendekkel megnőhet rajtuk az átfolyó áram. Továbbá fix feszültségről üzemeltetve a ledeket, azokon ugye áram folyik át ami hőt termel, és ez a hő lejjebb viszi a ledek "nyitófeszültségét", ami az áram növekedéséhez vezet, ami még több hőt generál, ezáltal még lejjeb kerül a nyitófeszültség és így tovább... pukk.
-
zka67
őstag
Szia, attól fagy le, hogy kbszott atmel proci van benne, amik kvára érzékenyek a zavarokra. A legtöbb esetben még a tonnaszám rápakolt szűrőkondik sem segítenek. Nekem amíg atmel procikkal kínlódtam, egy kétoldalas nyákból kivágott darab leföldelve, rátéve a procira segített valamennyit.
-
zka67
őstag
válasz
Fimre77 #5997 üzenetére
Mondjuk nem lehetetlen fénykardot csinálni, amivel még kardozni is lehet:
Kell hozzá egy mini kompresszor, néhány egymásba csúsztatható átlátszó műanyag rúd, mint régen volt a turista pohár, füst és lézer.
A kompresszort fújás irányba állítva "kilőné" a "poharakat", ami így egy csővé állna össze, ebbe akár a kompresszorral is belefújhatod a füstöt, és egy jó erős leddel megvilágítod. A kompresszort megfordítva visszaszívnád a "poharakat", és össze is van csukva a kardod.
Egy kb. 30 centis nyélbe beleférne 3db pohár rész, meg is van a 90 centis kardod. Természetesen vékony "pengéjű" kardot kellene csinálnod, szerintem 1-2 centi átmérő körülit.
-
zka67
őstag
válasz
Fimre77 #5990 üzenetére
Szia, a kibocsájtott fénynyalábod hossza valóban 90cm lenne, de nem állna meg
Lásd például a pulzárokat, amik több milliárd fényévre vannak tőlünk, és mégis érzékeljük az impulzusait.Csak egy ötlet, szerintem a Vasember kesztyűjét egyszerűbb elkészíteni...
Dual Laser IRON MAN Glove -
zka67
őstag
válasz
Janos250 #5931 üzenetére
Szia, én nem összerakott panelről beszéltem, hanem magáról az ic-ről. Mint említettem, a kínaiak hazahordják a hulladék ic-ket a gyártósorokról és azokat árulják az eBay-en óccóért. Különben hogy tudnák olcsóbban adni, mint a legolcsóbb nagyker a 100e db-os tételt? Az itthoni boltokban tesztelt, jó ic-ket kapsz.
Én is vettem az eBay-en DS1307-et, ami óránkét sietett fél percet, bekapcsoláskor nem az alapértelmezett értékek voltak benne, hanem random időt mutatott. Ilyet itthoni boltban biztosan nem kapsz.
Fogod magad, egy próbanyákra beforrasztod azt a pár lábat, és legalább tudod, hogy jó alkatrészt használsz az órádban.
Ja, eBay-es FT232-es ic-k, tök mindegy RL vagy BL, mind mind szar. Jó esetben felismeri a gép, de ez se jellemző rájuk.
-
zka67
őstag
Sziasztok, egy jótanács az RTC-khez: ne vegyetek kínai szrokat, mind mind mind hulladék. Itthon se olyan drága egy RTC, de az legalább nem a gyártósor selejtjéből van. A DS1307 is kalibrálható elég pontosra, két 5pf-s kondi kell a kvarc és a GND közé, így az enyém évente 30mp-en belül van. Ez nem igaz a kínai hulladékokra, azok képesek napi 5-10 percet is sietni vagy késni, akinek szerencséje van, annak "csak" napi fél percet.
-
zka67
őstag
Szia, én csináltam már magamnak, igaz nem arduionval, hanem más mikrokontrollerrel, de a lényeg látszik:
távirányítós hangerő- és hangszínszabályzóA lényeg az LM1036-os IC ami analóg jelekkel vezérelhető.
-
zka67
őstag
Sziasztok, próbált már valaki Bluetooth 4.0 tag-eket beolvasni arduinoval? Ha igen, milyen modult használt hozzá?
A HM-10 BLE Bluetooth 4.0 modul jó lehet hozzá?
-
zka67
őstag
válasz
fpeter84 #5061 üzenetére
Szia, köszönöm a tanácsodat, az ebben a hsz-ben szereplő modul megérkezett, és kitűnően teszi a dolgát.
Ennyire egyszerű eszközzel még nem volt dolgom
Csak bele kellett tenni a SIM kártyát, bekapcs, két AT parancs és már küldte is az SMS-t. Azt meg nem is gondoltam volna, hogy még telefonálni is lehet vele
-
zka67
őstag
válasz
leventekov #5124 üzenetére
Szia, először is, ez azért fórum, hogy itt tedd fel a kérdéseidet (látom most már megtetted), és ne privátba akard megbeszélni a dolgokat. A fórum azért van, hogy a kérdésedet több ember is lássa, a megoldásokból pedig mindenki tudjon tanulni.
A kérésed az álláshirdetés rovatba való, hiszen te azt kéred, hogy valaki csináljon meg neked egy munkát. Ha egy kicsit is olvasgatod majd ezt a fórumot (látom újonc vagy még), látni fogod, hogy ahhoz hogy segítséget kapj, azért neked is tenned kell valamit, legalább elkezdhetnéd a programodat, és ha elakadsz, akkor jöhet a kérés.
Van programkód gomb, azzal rövidebb kódrészeket beilleszthetsz ide is, de teljes programokat légyszi ne tegyél fel ide, mert úgysem fog senki neked átnézni több száz sort.
Üdv.
Zoli -
zka67
őstag
válasz
leventekov #5100 üzenetére
Szia, van programkód gomb is
A hour*360 + helyett szerintem jobb lesz a 3600-zal próbálkoznod.
-
-
zka67
őstag
válasz
Janos250 #5064 üzenetére
Szia, nem volt nehéz megtalálni, keresőbe A7
-
zka67
őstag
Sziasztok, SMS-t szeretnék küldeni. Első lépésként ez a modul jó lehet hozzá? Használt már valaki ilyet?
-
zka67
őstag
válasz
fpeter84 #4983 üzenetére
Szia, egy 1117-es stab ic nem szokott/tud "leégni", mert beépített teljesítményfelvétel limitere van, azaz, ha túlmelegszik, akkor lekapcsol. Én használok LD1117-eseket is meg AMS1117-eseket is, de soha semmi bajom nem volt még velük.
Nálad inkább arra gyanakszok, hogy a kimenetére küldtél nagyobb feszt, mint amit elvisel.
Ha tudsz még még más gyártót is, aki gyárt 1117-eseket, akkor írd meg légyszi, kíváncsi vagyok rájuk.
-
zka67
őstag
válasz
DrojDtroll #4852 üzenetére
A legnagyobb zaj értékének a kétszeresére állítsd.
Mekkora a legnagyobb zajod? 4-5? Akkor állítsd 8-ra, ha 8-10 akkor 16-ra, csak nagyobb legyen mint a legnagyobb zajod.Meglátod, jó lesz az
-
zka67
őstag
válasz
DrojDtroll #4844 üzenetére
Kétszerese a zajnak.
-
zka67
őstag
válasz
DrojDtroll #4841 üzenetére
Szia, a megoldás pedig nagyon egyszerű: prev előző érték, curr jelenlegi érték, x threshold.
Ha az Abs(prev-curr) értéke kisebb mint x, akkor figyelmen kívül hagyod az új értéket, különben prev = curr;
Visszatérési érték a prev.
-
zka67
őstag
válasz
DrojDtroll #4722 üzenetére
Szia, a 401-es "csak" 84MHz-en megy, míg a 407-es 168MHz-en.
Én egy ST-Link V2-es adapterrel programozom és debuggolom, a Keil uVision4-gyel (ARM). Ha a Keilt választod, akkor kelleni fog hozzá az STM32F4xx_DSP_StdPeriph_Lib_V1.6.1 könyvtár, amit az ST oldaláról tudsz letölteni, valamint a Reference Manual, amit szintén onnan tudsz letölteni. Van benne jópár példaprogram is, de ha elakadsz, a neten minden problémádra találsz megoldást a "how to stm32f407 promléma" kereséssel.
Vagy kereshetsz engem is...
Csak megjegyzem, hogy a Keil sokkal gyorsabb kódot generál, mint az arduino fordító, és tudsz vele run-time debuggolni is.
-
zka67
őstag
válasz
DrojDtroll #4712 üzenetére
Szia, igen
-
zka67
őstag
válasz
DrojDtroll #4710 üzenetére
Szia, DMA-val bármelyik STM32F4xx-es procival simán meg tudod csinálni. Én egy STM32F407VET6-tal színes videojelet csinálok...
-
zka67
őstag
válasz
fpeter84 #4197 üzenetére
Régen én is jól elvoltam a soros portos debuggolással, de amikor áttértem az ST-LINK-re, azóta bánom hogy nem tettem meg korábban.
A sleep módot még nem próbáltam, mert én olyan projekteket csinálok, ahol folyamatosan kell a teljesítmény, sőt van olyan is, hogy szénné kell optimalizálnom a kódot, hogy megfelelő sebességet érjek el. Szóval még nem volt rá szükségem, de ha lesz egy kis időm, meg fogom nézni neked.
-
zka67
őstag
válasz
fpeter84 #4183 üzenetére
Szia, először is, a JTAG portok letilthatóak, de csak óvatosan vele. Nem ismerem a boardodat, a chipet viszont igen. Ha a boardod az SWDIO/SWCLK pineken programozza a chipet, a letiltás után nem fogod tudni újraírni. Meg lehet oldani, kell hozzá egy ST-LINK V2 programozó, és az STM32 ST-LINK Utility nevű program, amivel a Connect Under Reset módban tudod ekkor programozni a chipet, vagy legalább törölni.
Szóval: az STM32F103C8T6 Refenence Maunal 184. oldalán megtalálod a 9.4.2 AF remap and debug I/O configuration register (AFIO_MAPR) leírását, ezzel tudod letiltani a JTAG pineket.
Kap-e órajelet a GPIOA portod? Ezt a 112. oldalon található 7.3.7 APB2 peripheral clock enable register (RCC_APB2ENR)-ben tudod engedélyezni. Ne felejtsd el, hogy minden perifériának engedélyezni kell az órajelét mielőtt elkezded használni.
Ha bármi kérdésed van, szívesen segítek, elég jól ismerem az ST chipjeit
Viszont én a Keil uVisiont használom, nem az arduinot, ezért nem is tudom, hogy mit csinál pl. egy pinMode, amikor ezer féle beállítása lehet egy pinnek, még output módban is négy különböző.Lehet, hogy open-drain módban vannak a pinek, ezért nem világitanak a ledjed. Le kellene szokni a pin és a GND közé kötött ledekről, és áttérni a pin és a Vdd közé kötésre.
A Keil uVision ARM 32kb kódig ingyenesen használható, ST-LINK V2 adapterrel (~800Ft) nagyon jól lehet futásidőben is debuggolni vele.
-
zka67
őstag
válasz
Teasüti #4167 üzenetére
Szia, nem minden esetben:
Ilyesmire gondoltam első lépésben, szerintem ez kisebb kódot generál:
if (menu >= 80) {
if (menu <= 86) {
rtc[86-menu] = 0;
if (++menu > 86) menu = 80;
} else
if (menu <= 94) {
evening[94-menu] = 0;
if (++menu > 94) menu = 90;
} else
if (menu <= 104) {
morning[104-menu] = 0;
if (++menu > 104) menu = 100;
}
// ehelyett
case 81:
rtc[5] = 0;
menu++;
break;
case 82:
rtc[4] = 0;
menu++;
break;
case 83:
rtc[3] = 0;
menu++;
break;
case 84:
rtc[2] = 0;
menu++;
break;
case 85:
rtc[1] = 0;
menu++;
break;
case 86:
rtc[0] = 0;
menu = 80;
break;
case 91:
evening[3] = 0;
menu++;
break;
case 92:
evening[2] = 0;
menu++;
break;
case 93:
evening[1] = 0;
menu++;
break;
case 94:
evening[0] = 0;
menu = 90;
break;
case 101:
morning[3] = 0;
menu++;
break;
case 102:
morning[2] = 0;
menu++;
break;
case 103:
morning[1] = 0;
menu++;
break;
case 104:
morning[0] = 0;
menu = 100;
break; -
zka67
őstag
válasz
Teasüti #4158 üzenetére
Szia, kód feltöltésére ott van pl. a http://data.hu/
A kódodhoz pedig annyit tudok hozzátenni, hogy optimalizálni kell. Nem néztem ugyan teljesen végig, de látszik belőle, hogy ugyan azokat a dolgokat írod le ezerszer, és ezeket ezerszer beleteszi a fordító a programodba.
A helyedben én táblázat alapján kezdenék neki, amit persze nem most fogok kitalálni neked, csak mint egy lehetőséget mondok. Ez a case ... case felejtős. Ahogy azért belenéztem, van morning, rtc stb.. tömböd, amiknek ugyan azokat az elemeit változtatod más más menükben. Ezeket lehetne egy két indexű tömbben tárolni, és nem case-vel, hanem if-fel és a gombok számából számolt indexxel dolgozni, vagy a gombok számát egy tömb alapján konvertálni indexszé, és a végén ha kell, elég egyszer is beletenni pl. a menu++ -t.
-
zka67
őstag
-
zka67
őstag
Szia, az ST programja csak ST-LINK-kel működik, ami szerintem valahol érthető is:
Viszont a program nagyon jó, még letiltott JTAG pinek mellett is képes kapcsolódni a procihoz (Connect under Reset módban).
Szerk: lehet, hogy az utolsó programodban letiltottad a JTAG pineket?
SWD módban elég neki a GND, SWCLK és az SWDIO pineket bekötni...
-
zka67
őstag
válasz
World-Soft #3881 üzenetére
Szia, gondolom...
-
zka67
őstag
válasz
World-Soft #3873 üzenetére
Szia, igen, mehet felhúzó ellenállással a venti vezérlésed. Ha esetleg mégse menne 10K felhúzó ellenállással, csökkentheted az értékét 1K-ig.
Az 5V toleráns lábakat az STM32F103C8T6-hoz ebben a doksiban találod meg, a nope által linkelt más kiosztású procikhoz van.
Egyébként a következő lábak 5V toleránsak: PA8-PA15, PB2-PB4, PB6-PB15, PD0, PD1
Igen. jó az FT232 bekötésed. A BOOT0 jumpert majd át kell tenned 1 állásba, a BOOT1-et pedig 0 állásba a programozáshoz, és resetet kell adnod neki előtte. A program futtatásához a BOOT0 jumpert 0 állásba kell rakni. (Az ST-LINK V2-vel nem kellenek ilyen macerák).
A Demonstrator GUI-t innen tudod letölteni. (Oldal alján a get software, kitöltesz pár adatot és letöltöd).
Bootloadert nem kell feltölteni, benne van a prociban.
Szükséged lesz még a Reference Manualra is, ebben találod a proci teljes leírását.
-
zka67
őstag
válasz
World-Soft #3871 üzenetére
Szia, én csak azt mondtam, hogy szerintem jobban megéri a 407-es procit megvenni, mint a 103-ast, de azt nem mondtam, hogy azt ne használt. A 103-as lábainak többsége is 5V toleráns, nyugodtan használd azt, ha gondolod, csak figyelj oda, hogy melyik lábak azok és melyikek nem.
Nekem nem teljesen világos, hogy mit akarsz és mivel akarsz kapcsolgatni?
Ha elég néhány száz mA, akkor ott van a PMBF170-es mosfet, az bőven kinyit 3V alatt is, ahhoz nem is kell 5V-os PWM. Ha nagyobb áram kell, akkor pl. egy IRF540-nek meg már kevés az 5V is, ezeket én 9V-ról szoktam nyitogatni. Mivel ezt a proci már nem bírja el, ezért kell hozzá valami szintillesztő, én használnám a 170-es mosfetet erre, a D és a 9V közé tennék egy 1K-s ellenállást, és arra kötném az 540-es G-jét. (Azért szoktak fűteni ezek a fetek, mert nincsenek rendesen kinyitva 5V-on).
Az FTDI232 teljesen jó lehet ide - bár azzal nem tudsz debuggolni -, feltéve hogy TTL kimenetei vannak. Ha a VIO lába is ki van vezetve, akkor nincs semmi különösebb teendőd, mint arra adni a 3.3V-ot (ha jumperrel lehet választani a 3.3V és az 5V VIO között, akkor vagy átteszed a jumpert 3.3V-os állásba, és a VIO-t nem kötöd sehova, vagy leveszed a jumpert és a proci tápjáról adsz a VIO lábra 3.3V.ot).
Szerintem ruházz be egy ST-LINK V2-re, nem olyan drága, kb 800Ft az eBay-en, hidd el nekem, megéri.
Így harmadjára is elolvasva amit írtál, szerintem neked bőven elég a PMBF170-es mosfet a kis 5V-os ventillátoraidhoz. Mint írtam, ez a fet kinyit már elég alacsony feszültségen is, így nincs más dolgod, mint egy 10K-s ellenálláson keresztül rákötni a proci kimenetére a G-jét (azért szoktam ellenállást közbetenni, hogy ha netán zárlatos lesz a fet, akkor se vágja haza a procit a feten levő feszültség).
-
zka67
őstag
válasz
World-Soft #3869 üzenetére
Szia, kész áramköröknél ez a legkisebb méretű:
Details about Mini core board STM32 minimum system version STM32F407VET6Igen, elviseli az 5V-os jelszinteket is. A bemenetet GPIO_Mode_IN -re kell állítani, ebben az esetben tökmindegy, hogy 3.3V vagy 5V-os a jeled. A kimenetnél pedig GPIO_Mode_OUT -ra és a típusát pedig GPIO_OType_OD -re kell állítanod, és külső (10K) felhúzó ellenállással kell az 5V-ra kötni.
Ha meg is kell hajtani vele valamit, akkor ajánlott valamilyen driver IC-t használni, pl. 74F573...
A programodat fel tudod tölteni USB-RS232 átalakítóval és a Demonstrator GUI nevű programmal, vagy ST-LINK V2-es adapterrel és az STM32 ST-LINK Utility nevű programmal. Ha van ST-LINK V2-es adaptered, akkor a Keil uVision4 (ARM) programmal is fel tudod tölteni a programodat, és valós időben tudsz vele debuggolni is. (Erre valók az SWCLK...SWDIO pinek, csak vigyázz, ha az ST-LINK 3.3V-ját is rákötöd, akkor nem szabad neki külső tápod ani, mert megkapja az ST-LINK-en keresztül. Ha külső tápról akarod járadni programozás/debuggolás közben, akkor ne kösd rá az ST-LINK 3.3V-ját, nem kell neki, csak a két SW... pin és a GND)
Ha van még kérdésed, csak bátran
-
zka67
őstag
válasz
World-Soft #3853 üzenetére
Szia, ha már STM32 akkor én inkább az STM32F407VET6-ot ajánlom, nem sokkal drágább (az eBay-en) mint az F103-as, viszont 168MHz-en megy szemben a 72-vel, Cortex-M4-es utasításkészlete van, és az összes IO lába 5V toleráns. Azt nem tudom, hogy az aurduino ide támogatja-e, én Keil uVision 4-el használom, és ST-LINK V2 adapterrel programozom, és debuggolom. Simán lehet vele videókimenetet is csinálni DMA-val
C64 emulátor STM32F407VET6-tal
ZX Spectrum emulátor (és még 4 Z80 alapú gép)
Ez pl. saját termék -
zka67
őstag
válasz
Janos250 #3850 üzenetére
Szia, azért vigyázzatok a 103-assal, mert nem minden lába 5V toleráns! Az adatlapon 'F'-el jelölik az 5V toleráns lábakat a lábak leírásánál az IO Level oszlopban.
És igen, ki kell kapcsolni a belső felhúzó ellenállást és ha kimenet, egy külső ellenállással kell felhúzni 5V-ra (általában 10K-t szoktak használni).
-
zka67
őstag
-
zka67
őstag
Szia, nem csak azért tesznek ellenállás a G és a mikrokontroller lába közé, hanem hogy megvédjék a mikrokontrollert és az egész áramkört attól, hogy ha a fet zárlatos lesz, akkor a túlfeszültség tönkretegye azt.
Nekem már sok áramkörömet megmentette az ellenállás (én 1M és 10K párost szoktam használni), mert a userek előszeretettel kötözgetik az áramköröket feszültség alatt, és sokszor csinálnak zárlatot, amit nem szoktak szeretni a fetek.
-
zka67
őstag
válasz
Janos250 #3564 üzenetére
Szerintem az kell neki, amit linkeltem.
SMD-DIP átalakító - csak egy példa - , ebbe megy a tüskesor egyik fele és az arduinon a tüskesorhoz való hüvely van.
-
-
zka67
őstag
válasz
Teasüti #3390 üzenetére
Jaja, rossz a megközelítés. Én 100ms-es timer megszakítással szoktam lekérdezni a nyomógombokat, így simán ki lehet szűrni a prelleket, és a megszakítás alatt még azt is lehet ellenőrizni, hogy a gomb most lett lenyomva, vagy már le volt nyomva stb, stb... és egy inkey() rutinnak átadni a paramétert. Én úgy szoktam, hogy ha az inkey() 0 értékkel tér vissza, akkor nem volt gombnyomás, különben a gomb értékét adom vissza.
-
zka67
őstag
válasz
gyapo11 #3363 üzenetére
Szia, bocs, hogy beleszólok, de
Amíg nem tudjuk pontosan, hogy bármely pillanatban mit csinál a processzor
az elég komoly probléma, elég gyenge programozóra vall.
Nem a processzor programoz minket, hanem mi programozzuk a processzort, az pedig végre kell hogy hajtsa az utasításainkat. Nem mást, hanem azt, amit leírunk neki. Ha tudjuk, hogy mit írunk le, akkor tudni fogjuk azt is, hogy melyik pillanatban mit csinál a processzor. Szerintem...
-
zka67
őstag
válasz
Pubszon #3339 üzenetére
Szia, relékkel együtt:
Details about DC 24V 8 Channel Relay Module With Optocouple Relay Control Board -
zka67
őstag
válasz
Teasüti #3223 üzenetére
Szia, az adás és a vétel is ugyan azzal a sebességgel megy, ugye? Nos, amikor jön egy CR vagy egy LF karaktered, akkor te kiíratsz 3 karaktert. Amíg a programod azzal van elfoglalva, hogy megvárja amíg elküldi a 3 karaktert, ezalatt neked jöhet még 3 karaktered, amit nem tudsz kiolvasni, mert a programod épp mást csinál, és ezek a karakterek mennek a levesbe.
Többféle megoldást is tudok neked mondani, az első az, hogy amíg nem értél a vétel végére, addig ne írj semmit a soros portra. A második, használj megszakítást, írj saját rutinokat a küldés-fogadásra, címezd közvetlenül a regisztereket, azaz ne az előre megírt rutinokat használd.
Szerk: most látom, hogy println-t használsz, az még további két karakter jelent.
-
zka67
őstag
válasz
Teasüti #3218 üzenetére
Szia, persze, én sem szoktam végigolvasni a több ezer oldalas doksikat, de amire szükségem van éppen, arra veszem a fáradtságot és átnyálazom alaposan, hogy melyik bit mit is csinál pontosan. Neked is csak rá kellett volna kattintanod az AVR CPU CORE -: STACK POINTER könyvjelzőre a doksiban, elolvasni, hogy hogyan működik és megnézni a hivatkozást az SRAM-ra, és máris tudtad volna, hogy miért nagyobb az SP értéke, mint a RAM mérete. Ezt nem bántásból írom, hanem a jövőre nézve adok tanácsot, sokkal gyorsabban megtalálod a doksikban amit keresel, mint ahogy itt válaszolnak neked. Utána úgyis megnézed a doksiban is azt, amit megnézhetnél kérdés nélkül is. De tényleg csak jószándékból írom ezeket.
De azt a "8 bites tömböt" nem értem, amit írsz.
uint8_t tomb[2048]; // Ez egy 8 bites tomb
uint8_t *pTomb; // Ez pedig egy 8 bites tombre mutato pointerIgen, a 8 bites tömb azt jelenti, hogy minden eleme egy bájtból áll.
Az utolsó elemének a címét pontosabban, nem
Mivel pointerként van deklarálva, ezért természetesen igen. Az elemet a * operátorral tudod elérni.
Üdv.
Zoli -
zka67
őstag
válasz
Teasüti #3216 üzenetére
Szia, az uint8_t * nem 8 bites változót deklarál, hanem egy 8 bites tömböt, aminek a címe egy 16 bites érték.
Az Atmel AVR8 procikban a ram nem a 0-ás címtől kezdődik, hanem 256-tól, és a stack pointert a memória végére címzi, szóval stimmel a 2297-es érték. A memóriád utolsó bájtjának a címe = 256+2047.
Egyébként nem árt megismerkedni a procikkal, amikkel dolgoztok, azaz el lehet olvasni az adatlapjukat, minden fent van az atmel.com oldalán.
uint8_t *report = SP+1;
Ez visszaadja a stack utolsó elemét.
-
zka67
őstag
válasz
DougButabi #3178 üzenetére
Szia, szerintem a const körül lesz valami, ha jól sejtem, akkor a const a kódmemóriába kerül, míg te a ram címét adod át. Próbáld meg, és vedd ki azt a const-ot.
-
zka67
őstag
válasz
DougButabi #3176 üzenetére
Szia, írasd ki soros porton a rawdata karaktereit (hexában) és az strlen értékét, és meglátod hogy van-e különbség az elvárt és a valós értékek között.
-
zka67
őstag
válasz
Teasüti #2972 üzenetére
Szia, sebességben ég és föld a 32 és a 8 bites proci. A Cortex-M procik 1 órajel alatt elvégeznek egy 32 bites szorzást, az osztáshoz viszont 2-12 órajel szükséges (ha a bemenő adatok megengedik, akkor előbb megszakítja a végrehajtást, ha az eredmény független a fennmaradó nulla bitektől). A Cortex-M4-es procikban már van beépített lebegőpontos egység is, ami ugyan így 1 órajel alatt elvégez egy szorzást, de az osztáshoz itt is több órajelre van szükség.
5V-os 32 bites proci nem létezik, hiszen minél nagyobb órajelről járnak, annál kisebb feszültségről kénytelenek működni, hogy ne termeljenek sok hőt. Viszont az NXP és az STM procik legtöbb lába 5V toleráns, így nyugodtan használhatod őket level hifter nélkül bármilyen perifériához. Egy 1117/3.3V-os stab ic kell az 5V-ról a 3.3V előállítására.
Én épp most csinálok egy C64 emulátort egy STM32F407VET6 procival, amiről egy rövid videót is megnézhettek.
A prociban van egy nagyon jó DMA, ezzel mint láthatjátok, simán lehet videójelet is csinálni. A proci csinál mindent, és egy PAL encoder IC van még az áramkörben a tápegységen kívül.
-
zka67
őstag
válasz
gyapo11 #2866 üzenetére
Szia, nem bonyolult a megoldás, mindössze Power-Down módba kell kapcsolnod a procit. Ha lekapcsolod a watchdogot (vagy nem is engedélyezed), akkor ebben az üzemmódban kb. 0.2uA a chip fogyasztása. A chipet megszakítással lehet felébreszteni, szerintem neked a Pin Change Interrupt lesz a megfelelő. Ehhez a megfelelő IO pin konfigurációban a PCINT funkciót kell kiválasztanod, és engedélyezni a megfelelő regiszterben.
Szerintem ehhez nem nagyon találsz arduinos könyvtárat, magadnak kell megírni ezt a pár sort.
Nem bonyolult, de át kell nyálazni a proci leírását, hogy melyik regiszterbe mit kell beírnod. Atmel oldalán megtalálsz minden procihoz minden adatlapot.
-
zka67
őstag
válasz
Janos250 #2798 üzenetére
Szia, én is mindenkinek inkább az ARM vonalat ajánlanám, csak előnyei vannak neki az arduinohoz képest. És nem kicsik.
A legtöbb ARM proci 3.3V-ról működik, ahogy nagyon sok periféria is manapság, viszont a legtöbb lábuk 5V toleráns. Azaz magyarul szintillesztők nélkül lehet összekötni őket, szemben az arduinoval. (Az STM-nél figyelni kell, mert nem minden lába 5V toleráns, az NXP-nek viszont igen)
A sebességről meg ne is beszéljünk, lásd 8 bit vs. 32 bit, és 16MHz vs. 48-tól a csillagos égig.
A Keil fordítója meg olyan jó, hogy néha én is hanyatt esek tőle.
De ahhoz, hogy ARM procikat használjanak, el kellene szakadniuk az embereknek a delay használatától. A legtöbb gyártó minden procijához ad előre megírt könyvtárakat, külön-külön az összes, a prociban levő perifériájához, demóprogramokat, stb, stb... hogy amíg az emberek nem tanulják meg a perifériákat közvetlenül használni, addig se okozzon nekik gondot. (A közvetlenül alatt értem, hogy sok mindent jóval gyorsabban tud végrehajtani a proci, ha nem a könyvtár rutinokat használják, hanem direktben a perifériákat). Én nem vagyok híve annak, hogy megírunk egy programot úgy, hogy az bármelyik gyártó prociján fusson majd, és legfeljebb gyorsabb procit használunk. Úgysem fog, úgyis bele kell nyúlni a programba, akkor meg miért ne használjuk ki a lassabb proci képességeit maximálisan?
Az arduinoban is lehetne direktben használni ezeket a dolgokat, de itt még egyetlen egy hsz-ban se láttam ilyet. Még megszakítást sem, pedig az alapvető dolog a mikrokontrolleres világban.
Szóval amíg a delay a legfőbb utasítás, addig kár is próbálkozni az ARM vonallal...
Üdv.
Zoli -
zka67
őstag
válasz
Teasüti #2770 üzenetére
Szia, azt hiszem a lényeget nem mondták el, és ezért nem érted a dolgot.
A manapság gyártott procikban MOS tranzisztorokat használnak. Ezek "térvezérlésű" tranzisztorok, azaz nem árammal, hanem feszültséggel vezérlik őket. A bemenetük a GATE, ami rendesen el van szigetelve a tranzisztor többi részétől, azaz kapacitást képez. Ez a kapacitás képes töltéseket összeszedni a "levegőből" is, ha nincs semmi a GATE-re kötve, és ha megfelelő mennyiség összegyűlt, akkor kinyithat a tranyó. Csak úgy, a "semmitől". Ezért kell valamelyik potenciálra kötni a "lógó" bemeneteket egy nagyobb értékű ellenállással. Azért használnak nagyobb értékűt, hogy ha aktiválod a bemeneteket, ne zabálja feleslegesen a tápot. Használhatnál pl. 100 ohmos ellenállásokat is, de több tíz bemenet esetén ha kiszámolod, akár amperes nagyságrend is lehetne a feleslegesen elfolyó áram. Túl nagy értéket (>1Mohm) sem szoktak használni, mert ha hosszabb vezeték megy a lábra, akkor az képes annyi töltést összeszedni, hogy még az ellenálláson keresztül is kinyit a tranyó. Ahogy valaki írta is, a 10kohm-os ellenállás tökéletes választás otthoni használatra, kísérletezésre.
Üdv.
Zoli -
zka67
őstag
Szia, az arduino oldalán fent van minden funckció részletes leírása, így az lcd.print is.
Rögtön az elején vannak a paraméterei:
Parameters
lcd: a variable of type LiquidCrystal
data: the data to print (char, byte, int, long, or string)és mint látható, float típus nem szerepel köztük...
-
zka67
őstag
válasz
TESCO-Zsömle #2687 üzenetére
-
zka67
őstag
válasz
TESCO-Zsömle #2685 üzenetére
Szia, nem feltétlenül kell hozzá arduino, de azzal is meg lehet oldani.
Én így csináltam meg a távirányítós hangerő- és hangszínszabályzómat.
Egyedül a balance maradt le róla, de a D/A konverter loudness kimenetét át lehet kötni egy digitális kimenetre, és a felszabadul D/A kimenet pedig mehet a balance bemenetre, ha valakinek nagyon hiányzik.
Az áramkör lényege az LM1036 és a TLC7226-os IC-k. A többi részét pedig bármilyen mikrokontrollerrel meg lehet csinálni.
-
zka67
őstag
Szia, igen, megszakítás használatával pontosan lehet vezérelni több motort is egyszerre.
Tudom, sok embernek fogalma sincs arról, hogy mi a megszakítás, mit lehet és nem lehet megcsinálni vele, de higgyétek el, hogy baromi jó dolog. Én komolyan megőrülök, amikor meglátom egy kódban, hogy a millis-sel időzítetek, vártok, ezalatt a proci nem csinál semmi mást, és nem azért van, hogy lustálkodjon.
Egyébként a millis is egy megszakítással működik...
Gyakorlatilag minden eszközt lehet megszakítással kezelni, a soros porttól kezdve a GPIO-n át az SPI-ig, mindent. Miért várjak arra, hogy jön egy karakter a soros porton? Majd a megszakítás szól, hogy jött egy karakter és akkor majd foglalkozom vele, addig csinálok mást. Vagy miért várjak arra, hogy lenyomjanak egy gombot? Szóljon a megszakítás, hogy lenyomták azt a gombot, és majd akkor foglalkozok vele.
Neked konkrétan egy (vagy akár több) timer megszakításra van szükséged, amivel időzíted a motorod sebességét. Ha le akarod állítani a motort, akkor vagy egy flag-el jelzed a kiszolgáló rutinnak, hogy az a motor éppen áll, vagy ha külön timer-eket használsz, akkor egyszerűen leállítod a timert. A sebességet vagy a timer-rel változtatod, vagy a timert beállítod olyan sűrű megszakításra, amiből tudsz egyszerűen osztással sebességet állítani.
A megszakítást kiszolgáló rutinok nem futhatnak a végtelenségig, előbb-utóbb vissza kell térniük a rendes programhoz, hogy más megszakítások is kiszolgálásra kerülhessenek (vagy lehet még a prioritással is játszani). Ezzel azt akarom mondani, hogy minél gyorsabban lefut a rutin, annál jobb. És ehhez nem árt, ha az ember ismeri a proci utasításkészletét, hogyan lehet assembly utasításokat beépíteni a C kódba, hogyan tud együtt működni a két nyelv.
-
zka67
őstag
Szia, a tranzisztort felejtsd el, főleg ezzel a hűtőbordával. Kb. 3mp-et bírna.
Használj inkább teljesítmény-MOSFET-et. Ha megfelelő típust választasz és megfelelő nyitófeszültséget tudsz adni neki, akkor talán még hűtőborda se nagyon fog kelleni rá.
A lényeg az, hogy minél kisebb belső ellenállású típust válassz, ez az Rds(on) paraméter. Nyitófeszültségnek határeset az 5V, én inkább 10-12V-ot adnák neki, ami újabb alkatrészeket jelent.
A Hobby elektronika topikban szerintem kapsz tanácsot mind típusra, mind pedig kapcsolásra is.
-
zka67
őstag
Szia, hogy ne szívasd magad, szerintem először próbáld ki egy soros átalakítóval és egy terminál programmal, hogy hogyan is működik. Ha kell esetleg egy jó terminál program, én írtam egyet, mindenkinek ajánlom. Innen tudjátok letölteni, a programcsomag többi részét legfeljebb nem használjátok. 8051-es sorozatú mikrokontrollerekhez Pascal és Assembler IDE, beépített szimulátorral, azaz az áramkör megépítése nélkül ki tudjátok próbálni azt, mindenféle perifériákkal.
(#2491) Flashback: A WS8212 adatlapján megtalálod a választ 4. és az 5. oldalon. Egyszerűbb, ha megnézed, mint hogy én kezdem el itt magyarázni.
-
-
zka67
őstag
válasz
soldi3r #2486 üzenetére
Szia, ha az én hozzászólásom tántorított el a topiktól, akkor azt hagyd figyelmen kívül, az ilyen hsz-ek itt nem szokásosak, csak az illető szerintem nem a topikhoz tartozó kérést tett fel. Nulla saját kóddal kész megoldást nem itt szoktak keresni, hanem az álláshirdetés rovatban.
Ha elakadsz valahol, vagy bármilyen kérdésed lenne, nyugodtan tedd fel itt, biztosan fogsz kapni segítséget.
(#2487) Pulsar: Szia, van rajta, nem kell rátöltened semmit. Működik kliens és szerver módban is, nem kell hozzá semmilyen mókolt fw.
Egy kis segítség a parancsokhoz: ESP8266 - AT Command Reference
-
zka67
őstag
-
zka67
őstag
Netán ez problémát okoz számodra, hogy segítséget kértem a fórumon?
Nekem nem probléma, de így, hogy egyáltalán nem értesz a programozáshoz, semmi általad elkészített forráskódot nem tudsz mutatni, szerintem adj fel egy hirdetést, hogy ennyi meg ennyi pénzért keresel valakit, aki megírja neked az általad kívánt programot.
Részemről a téma lezárva.
-
zka67
őstag
Szia, itt találsz kész megoldást is
-
zka67
őstag
Szia, multiplexelve meg lehet csinálni. De jobban jársz, ha a sorok meghajtásához PNP tranzisztort használsz, pl. BC327-et, vagy P csatornás fetet.
Multiplexelés alatt azt értem, hogy a 8 db IC-dre kiadod a 8 oszlop adatait, utána a sor tranzisztorokkal "kigyújtod" a ledeket, majd "eloltod őket egy idő után. Utána a következő sorhoz tartozó oszlop adatokat töltöd be az IC-kbe, majd a következő sor "gyújtod" ki és így tovább.
-
zka67
őstag
Szia, nem kell fw frissítés, az ESP8266 képes duál módban is működni, azaz egyszerre tud kliens és szerver módban is működni. Ehhez szerintem nem fogsz találni kész library-t, ezt majd neked kell megírni, de egyáltalán nem egy nagy mutatvány.
Egy AT+RST parancs után elég egyszer kiadnod az AT+CWJAP=ssid,psw parancsot, azt megjegyzi a modul. Utána a következő parancsokkal tudod elindítani a webszerveredet (a ; utániakat én írtam kommentként)
AT+CWMODE=3 ;AP + Station mode
OK
AT+CIFSR ;IP cím lekérdezés
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:e6:1f:9e"
+CIFSR:STAIP,"192.168.2.100"
+CIFSR:STAMAC,"18:fe:34:e6:1f:9e"
OK
AT+CIPMUX=1 ;Multiple connections, ez mindeképp kell a szervehez
OK
AT+CIPSERVER=1,80 ;Konfigurálás szerverként
OK
0,CONNECT ;A böngészőbe beírtam a 192.168.2.100-as címet, erre ezt küldte a modul
+IPD,0,334:GET / HTTP/1.1
Host: 192.168.2.100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: hu-HU,hu;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cache-Control: max-age=0
AT+CIPSEND=0,7 ;A válaszom hossza 7 karakter lesz
OK
> ;Itt beírtam a HELLO<CR><LF> üzenetet (7 karakter)
Recv 7 bytes
SEND OK
AT+CIPCLOSE=0 ;És lezárom a kapcsolatot, a böngészőben pedig megjelent a HELLO üzenet
0,CLOSED
OKEgyébként szerintem érdemes először egy teminál programmal próbálgatnod a modult, csak vigyázz, mert a modul 5V-ról megy ugyan, de az Rx és a Tx lábai 3.3V-osak.
Egy kis segítség a parancsokhoz: ESP8266 - AT Command Reference
-
zka67
őstag
Szia, ha gondolod töltsd fel a kódodat valami tárhelyre (pl. dropbox vagy hasonló) és szerintem itt összerakjuk veled együtt a programodat.
Az első megjegyzésem, hogy miért használtok még RTC-t, amikor ma már minden háztartásban van wifi? Nem jobb a mindig atompontos óra? Én épp most csinálgatom amikor ráérek az időjárás állomásomat, egy ESP8266-os wifi modul és egy TFT kijelző kell hozzá összesen:
És ennyi lekérdezni a pontos időt, meg még egy kis program kellett hozzá, hogy átkonvertálja UTC+01-re és hogy tudja az automatikus téli-nyári átállást is.
AT+CIPSTART="TCP","time.nist.gov",13
AT+CIPSTART="TCP","time.nist.gov",13
CONNECT
OK
+IPD,51:
57436 16-02-18 22:31:37 00 0 0 669.6 UTC(NIST) *
CLOSEDAz előnye, hogy mindig 1mp-en belüli pontossággal tudod az időt, és soha nem kell beállítani azt
-
zka67
őstag
válasz
JozsBiker #2430 üzenetére
Szia, használd az ethercard-master library-t. Ezzel tudsz multi-packettet is küldeni, vannak benne példák rá. Stabil, egyszerűen használható könyvtár.
Vagy oldd meg javascripttel...
-
zka67
őstag
Szia, az alacsony szint 0.8V-ig tart. Használj schottky diódát, pl BAT54A-t, ebben kettő is van, neked megfelelő bekötéssel. A felhúzó ellenállás ne legyen kisebb 10k-nál.
(#2403) dave0825 Szfvár. Ha nincs szkópod, kérj kölcsön valakitől, ha tudsz vagy vegyél egyet
-
zka67
őstag
Szia, és (#2382) razorbenke92:
A BD241-nek tudjátok mennyi a hFE-je? 10-25. A VBE 1.8V, és ez azt jelenti, hogy 1k-s ellenállással 30-60mA-t tudsz kapcsolni vele
Ennek a tranzisztornak ahhoz, hogy teljesen kinyisson 0.6A bázisáram kell. Ezért mondtam, hogy vagy darlington (ami a mai világban felejtős), vagy FET.
-
zka67
őstag
Szia, nem nyit ki rendesen a tranzisztorod. Szerintem túl nagy értékű ellenállást használsz a bázison. De ez nem is érdekes, hiszen az ilyen tranzisztorokat darlingtonba szokták kötni.
Én azt javaslom neked, hogy ne használj tranzisztort ilyen helyeken, ide sokkal jobb megoldás a FET. Pl. egy IRF540 filléres dolog és elviszi még a házadat is. Ugyan úgy kell bekötni, mint a BD241-et, azzal a különbséggel, hogy a G-S közé (B-E) tegyél egy 100k-s ellenállást, a G-Arduino (B-Arduino) közé pedig egy 10k-sat.
Új hozzászólás Aktív témák
Hirdetés
- Anime filmek és sorozatok
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Kertészet, mezőgazdaság topik
- Formula-1
- Milyen alaplapot vegyek?
- Torrent meghívó kunyeráló
- Milyen TV-t vegyek?
- Genshin Impact (PC, PS4, Android, iOS)
- One otthoni szolgáltatások (TV, internet, telefon)
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- További aktív témák...
- Így lesz a Logitech MX Keys magyar billentyűzetes
- AKCIÓ! Lenovo Thinkpad P15 Gen1 15 FHD notebook - i7 10750H 16GB RAM 512GB SSD Quadro T1000 W11
- Kingmax 1x2GB DDR3-1333 RAM
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- LG 55C3 - 55" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest