- További kavarás a Pixel 10-ek körül
- Samsung Galaxy A56 - megbízható középszerűség
- Redmi Note 9 Pro [joyeuse]
- CMF Phone 2 Pro - a százezer forintos kérdés
- Mobilinternet EU-n kívül, eSIM adatcsomagok használata
- Nem várt platformon a OnePlus Nord 5
- Yettel topik
- Samsung Galaxy S25 - végre van kicsi!
- Milyen okostelefont vegyek?
- Motorola Edge 40 neo - színre és formára
-
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
-
Janos250
őstag
válasz
MasterMark #3726 üzenetére
Elvben: igen
Gyakorlatban : nem biztos
A kontrollerek zöménél a kimenet nem ad akkora áramot, hogy tönkretegye a ledet.
Túlterhelni a kontroller kimenetét ugyan nem illik, de a tapasztalat szerint jól bírja, általában nem megy tőle tönkre. Persze lehet fordítva is :-(
Hajdanában PC-s, Microchip PIC-es koromban az akkori ledekre símán ráadtuk az 5 voltot. Világítottak mint a nap, de többnyire nem mentek tönkre.
Múltkor be akartam ugyanezt mutatni mostani leddel és 5 volttal. Pillanat alatt kiégett a led. -
Janos250
őstag
-
-
Janos250
őstag
válasz
MasterMark #3718 üzenetére
Szerintem igen.
-
Janos250
őstag
válasz
szaszyka #3687 üzenetére
Fog ez menni!
Az elképzelés jó, hogy ahhoz a helyiséghez viszonyítva dolgozzon, ahonnan szívja.
Tehát ha az időjárás miatt a hálóban is 80 % , akkor ne erőlködjön a szellőztetéssel, hogy levigye mondjuk 60-ra, mert úgyse fog menni.
2 s-os késleltetést ne tegyél bele, hagyd jobban futni.
Ha nem elég gyors időközönként lép rá újra a loopra, a WDT nyavalyoghat, amit persze ki lehet védeni, de nem érdemes. -
Janos250
őstag
válasz
MasterMark #3665 üzenetére
Ha már itt tartunk, érdemes belekukkantani a
hardware\arduino\avr könyvtárban a
boards.txt
platform.txt
programmers.txt
fájlokba annak, aki már más rendszert használt, csak az arduino új neki.
Segít a logikájának a megértésében! -
Janos250
őstag
válasz
MasterMark #3665 üzenetére
Az analóg lábakat nemigen használom, azt a példaprogramokban kell megnézni.
Talán valami: (nálam)
Arduino\arduino-1.6.10\hardware\arduino\avr\cores\arduino\wiring_analog.c
Ebben a könyvtárban egyébként is érdemes szétnézni.Meg itt is:
Arduino\arduino-1.6.10\hardware\arduino\avr\variants
Pl.:
Arduino\arduino-1.6.10\hardware\arduino\avr\variants\mega\pins_arduino.hPontosan persze én se tudom :-(
Vagy itt:
C:\Arduino\arduino-1.6.10\hardware\arduino\avr\variants\standard\pins_arduino.h#define PIN_A0 (14)
#define PIN_A1 (15)
#define PIN_A2 (16)
#define PIN_A3 (17)
#define PIN_A4 (18)
#define PIN_A5 (19)
#define PIN_A6 (20)
#define PIN_A7 (21)static const uint8_t A0 = PIN_A0;
static const uint8_t A1 = PIN_A1;
static const uint8_t A2 = PIN_A2;
static const uint8_t A3 = PIN_A3;
static const uint8_t A4 = PIN_A4;
static const uint8_t A5 = PIN_A5;
static const uint8_t A6 = PIN_A6;
static const uint8_t A7 = PIN_A7; -
Janos250
őstag
válasz
MasterMark #3663 üzenetére
Eredendően számmal, tehát 9.
Az adott panelhoz tartozó fájlok egyikében (fejből nem tudom melyikben) van definiálva konstansként, hogy D9=9.Pl. a D1 panel hoz tartozó fájlt találtam meg hirtelen:
static const uint8_t SDA = 4;
static const uint8_t SCL = 5;static const uint8_t LED_BUILTIN = 2;//new ESP-12E GPIO2
static const uint8_t BUILTIN_LED = 2;//new ESP-12E GPIO2static const uint8_t D0 = 3;
static const uint8_t D1 = 1;
static const uint8_t D2 = 16;
static const uint8_t D3 = 5;
static const uint8_t D4 = 4;
static const uint8_t D5 = 14;
static const uint8_t D6 = 12;
static const uint8_t D7 = 13;
static const uint8_t D8 = 0;
static const uint8_t D9 = 2;
static const uint8_t D10 = 15;
static const uint8_t D11 = 13;
static const uint8_t D12 = 12;
static const uint8_t D13 = 14;
static const uint8_t D14 = 4;
static const uint8_t D15 = 5;Például innen lehet tudni, hogy a beépített led melyik lábon van.
-
Janos250
őstag
Tegnap megérkezett a kínai tápegységem.
Rá van írva a gyártási dátum: 2016. 10. hó :-)
Még mondja valaki, hogy nem lehet az időben visszafelé utazni!
Ennyit a kínai precizitásról. -
Janos250
őstag
válasz
gyenesmartin #3648 üzenetére
Közben kiegészítettem de 2 elég akkor is, ha a táp csatira csatlakoztatod.
-
Janos250
őstag
válasz
gyenesmartin #3639 üzenetére
Ezek 5V-tal mennek. Az alábbi megoldások bármelyike önmagában jó, feldugott tápcsati mellett nem okoz gondot ha mellette az USB is be van dugva.
1.) 5V az USB csatin
2.) Stabilizált 5V az 5V-os csatlakozó helyen
3.) Tápcsatin elvileg max 12 V, de 12V-nál már nagyon melegszik a fesz. stab. IC
Én általában 9V-os táppal használom őket, de így is eléggé melegszik. Sajnos 5V-nál nagyobb táp csak 9V-os kapható normális áron, kisebb (pl 7V) nem.
Ha épp olyan kedvem van, akkor a táp és a tápcsati közé teszek egy DC/DC konvertert, aminek a kimenetét 7V-ra szoktam állítani.
Az már biztosan elég a fesz. stab. IC-nek, és alig melegszik.Lítium cella estén én az alábbit javasolom:
Lítium cella - DC/DC konverter (2-300 Ft) 5 V-ra állítva - 5V-os csati. Ugyanis kár a fesz. stab. IC-n melegítésre pazarolni az akku energiáját, a DC/DC konverterek hatásfoka viszont elég jó. -
Janos250
őstag
válasz
MasterMark #3608 üzenetére
Na, ez a legnagyobb probléma. A csúcstechnika párszáz Ft-ért beszerezhető, de a doboz....
Én a 700 Ft-os ESP12E-hez 1000 Ft-ért vettem dobozt :-( -
Janos250
őstag
Ezen a panelon van egy 3.3 V-os fesz szab, ezért a csatlakozón 5V-os táp kell neki, és a led nem a fesz szab. után van bekötve.
Az újabb gyártásúra már nem is rakták be a ledet, símán üresen hagyták a helyét. Sokat nem tököltem vele, részleteket nem tudok, mert nem volt még rá időm, félre van téve jelenleg a megcsinálandók közé. -
Janos250
őstag
1. A mágneszárak tudtommal 15 V-al működnek, de ebben nem vagyok biztos, lehet valóban 12. Igen, szerintem is a relé a legjobb megoldás. Ha ESP, vagy ARM, akkor 3.3 V! Pl.:
[link]
[link]
2. Mivel én ESP mániás vagyok, először ahhoz írom az én elképzeléseimet.
a.) ESP, szerrvernek programozva az ajtóra, relével nyit. Indítás mobiltelefonról, WEB lapról. Előnye, nem kell semmi más, hátránya, hogy mire csatlakoztatod a WiFit a telefonodon, és behívod a lapot, hazamegy, aki be akart jönni.
b.) Szerver ugyanígy, de nem telefonról, hanem másik ESP-ről indítva, egy gomb megnyomásával. Előnye, hogy azonnal reagál, hátránya, hogy minden nyomógomb mellé kell egy ESP12E (célszerűen) darabonként 700 Ft, +doboz, + valami táp megoldás.
RFID:
Hova akarod az RFID érzékelőjét? Az ajtóra, vagy az asztalodra?
Szerintem egy lehetséges megoldás:
Ajtónál: ESP12E , kezeli az ajtónyitó relét, és az ajtónál kívül elhelyezett olvasót, hogy akinek van hozzá tag (70-80 Ft/db) az be tud jönni.
Astalodon:
a.) ESP+nyomógomb ugyanúgy.
b.) szintén ESP-olvasó, ami WiFin keresztül utasíítja az ajtónál lévőt nyitásra, ha odateszed a taget.
RFID megoldás:
Ehhez
[link]
vannak kész könyvtárak, nem panaszkodnak rá, elvileg egy bejáratott technika, nem próbáltam.
Másik:
[link]
ez kényelmesebb, ha működik, mert benne van egy proci, és folyamatosan küldi a közelébe helyezett tag kódját UART-on.
Nekem egy verzió egy darabig működött, aztán nem. Próbáltam másikkal, az meg egyáltalán nem működött. Tovább nem próbálkoztam, eltettem akkora, amikor majd jobban ráérek. Nem egy kiforrott típus, mert pl egy smd led közvetlenül 5V-ra van kötve, ami kiég. -
Janos250
őstag
válasz
MasterMark #3596 üzenetére
Az összes föld össze van kötve, tehát bármelyiket használhatod, de egy átlagos projektnél, így is kevés van belőlük, hiszen minden hozzá kapcsolt szerkentyű áhítozik egy földre.
-
Janos250
őstag
válasz
Daszkalosz19 #3582 üzenetére
Mint írtam, ez egy nyers változat, reszeld ízlés szerint.
Másodperc:
Van még hely a képernyőn! :-)
Megkeresed a programban a formot és teszel be még egy-egy kalitkát! -
Janos250
őstag
válasz
Daszkalosz19 #3529 üzenetére
Itt válaszolok, hátha mást is érdekel az arduino (ESP8266)-al WiFin keresztüli szabályozás.
Szóval én az arduinóhoz display (menü) és klaviatúra csatlakoztatás helyett azt javasolom, hogy válasszuk az ESP8266 alapú panelt, ami 700 Ft-tól 3000 Ft-ig terjedő áron kathatók. Használjuk a WiFi lehetőséget! Nem kell minden szerkentyűhöz mindenféle gombokat, klaviatúrákat, kijelzőket csatlakoztatni, mert a mai világban szinte mindenkinek van okostelefonja, tabletje, laptopja, stb., ami nagyon kényelmesen használható. Tetszőleges számú gombot, beviteli mezőt, kiírást stb. tehetünk rá. Biztosan nincs áramütés probléma sem, mert nem érünk hozzá.
Hamarjában összeütöttem egy NYERS verzióját a Te modellednek, aminek a képernyőképét mellékelem. A programot is felteszem.A téglalapok a nap 24 óráját jelölik, ahol fehér, ott ki van kapcsolva, ahol piros, ott be van kapcsolva.
Az alul lévő formmal lehet a ki/bekapcsolást módosítani. Ez PC-s képernyőkép, de telefonon is kipróbáltam.
A panel a WeMos D1 R2. -
Janos250
őstag
válasz
Teasüti #3555 üzenetére
Rendben, megkezdett projektet nem könnyű variálni, de azt azért ne sajnáld, hogy az újabb led sort vetted! Jó az!
A linkelt 700 Ft-os ARM laphoz csak annyit, hogy:
"All USART interfaces can be served by the DMA controller."
Ez azért ugye már egy más kategória. Bár én még ezt nem használtam ki.
Ha DUE-ban gondolkodsz, azon az áron már egész jó lapot is lehet venni, ami ugyanúgy teljesen passzol az Arduinohoz. -
Janos250
őstag
válasz
Teasüti #3553 üzenetére
"A FAB LED library kikapcsolja a megszakításokat a led szalag frissítése előtt"
A megszakítást a led frissítésénél nem kell végig kikapcsolni, csak amíg a magas szint van, ez kevesebb, mint 1 microsec.
Az alacsony szint hosszában elég nagy a tolerancia, 8-9 microsecig elmehet alacsony szinten.
"kell egy második MCU"
Nem feltétlenül! Egyszerűbb, ha választasz egy korszerűbb CPU-t!
Például:
[link]
Ez ARM Cortex-M3 CPU, 72 Mhz-en jár, 64K flash memory, 20K SRAM, 720 Ft-ért.
Én persze ha csak lehet, azaz ha nem kell túl sok láb, az ESP8266-ot használom, de hát ez az én mániám.
Pl.:
[link]
1000 Ft-ért
[link] 800 Ft.
vagy a WeMos D1 R2-t, ami már 2-3 eFt Ft.
[link]
Ezzel a WeMosszal az a baj, hogy nem tudni, hogy a kicsi kínai valóban az R2-t küldi és nem az R1-et.
"Biztosítékot nem a tápra kell méretezni? Vagyis ha 15A-es tápom van, akkor zárlat esetén 15A fog áthúzni."
Nem! Egy mai jólnevelt táp, ha rövidrezárod, leáll, tehát ez a védelem már eleve benne van a tápban. Próbáld ki egy PC táppal. Ha rövidrezárod, leáll.
Ha biztosítékot akarsz betenni, akkor azt a maximális fogyasztásnál egy kicsit nagyobbra kell méretezni.
Egyébként ugyebár ilyesmire általában PC tápot (mert gyakorlatilag ingyen van a kiszuperált PC-kből), vagy laptop tápot szoktak használni. Vagyis akkora a valószínűsége, hogy a rendszered kigyullad, mint amekkora a valószínűsége, hogy egy PC, vagy egy laptop kigyullad. Nem nulla, de elég kicsi. Ilyen alapon a laptopoktól is nagyon kellene félni.
"Akkor még egy kérdés: létezik olyan túláram védelem, ami a táp kapacitása felett korlátozza felvehető áramot?"
Igen, maga a táp :-) ha az öreganyámnál egy kissé fiatalabb. -
Janos250
őstag
-
Janos250
őstag
válasz
Daszkalosz19 #3527 üzenetére
Közben kiderült, hogy nem az RTC volt a rossz.
Addig jutottam, hogy kikommenteltem a menü és a gombok részeit, mert az nincs, nem tudom kipróbálni.
Így, ha kézzel beállítod a kikapcsolási és bekapcsolási időpontot, csinálja, amit ellenőrizni tudsz ledekkel,
illetve beletettem ideiglenesen egy serialra kiíratást is, ott is látszik.Ha az RTC nincs beállítva, akkor a PC órája alapján beállítja. Utána már - ha van benne elem -
működik.
Itt van, megnézheted.
Majd folyt. köv. -
Janos250
őstag
válasz
Daszkalosz19 #3520 üzenetére
Sajnos elakadtam :-(
Ami RTC modult hazahoztam, az rossz :-(Mellesleg melyik RTC modult akarod használni, mert nem csak egy van, és ahhoz kell illeszteni a libraryt?
Pár dolgot azért megnéztem:
Szerintem túl van bonyolítva:
Amikor egy relének a ki/bekapcsolási ideje van, akkor ellenőrzi, hogy nem olyan állapotban van-e már, amilyenben lenni kell. Azaz, hogy ugyanabban a másodpercben ha már bekapcsolta és ugyanabban a másodpercben nézi újra, ne akarja újra bekapcsolni. Ez szerintem felesleges, mert ha mégegyszer kiírja a porta az 1 vagy 0 értéket, semmi gondot nem okoz.
Hétfőn tudom folytatni másik modullal, remélem az működik, mert harmadik már nincs a fiókban :-( -
Janos250
őstag
válasz
Daszkalosz19 #3512 üzenetére
Szia!
Holnap megnézem.
Ma strand volt. -
Janos250
őstag
válasz
Teasüti #3506 üzenetére
Nem emlékszem már biztosan, de valahonnan úgy rémlik, hogy:
13-as LED bootloader állapottal kapcsolatos, lehet, hogy a gépre dugás egyből boot állapotba viszi?
D3: talán a watchdoggal kapcsolatos
Talán D7,D8,D9 valami hiba információ, de soha nem használtam, nem tudom.
Ajánlják az interneten, hogy félig halott panelnél :kikapcs
reset bonyom, nyomva tart
USB bedug
upload
mikor ténylegesen elindul a feltöltés (pontok) akkor kiengedhető a resetHa egyszerűen elvágod a fesz. stab. IC lábát és stab. feszt adsz rá?
-
Janos250
őstag
válasz
Teasüti #3497 üzenetére
Én is javasolom tvamos első kettő linkjén szereplőket, én is használom mindkettőt, igen elégedett vagyok vele. Akkut is ilyennel töltök.
A harmadikat nem ismerem, de tetszetős, egyből rendeltem is egyet :-)[ Ezeken kívül én még használom a filléres tápokat is, persze mielőtt valakinek a kezébe adom, magam állítom be a feszültséget :-)
[link] 210 Ft
[link] 240 Ft
Ezen meg áramkorlát is állítható 430 Ft-ért:
[link] -
Janos250
őstag
Elvileg igen. Azért mondom, hogy elvileg, mert még nem csináltam.
1. Az "üres" atmegába vagy programozóval, vagy egy másik arduinoval, tudsz programot felrakni.
Ez vonatkozik bármely programra, a bootloaderre is.
2. Az ember életét megkönnyítendő, szokás a mikrokontrollerekre felrakni olyan pici programot, ami utána képes betölteni a usernek egy másik, ténylegesen általa írt programot. Ez a bootloader.
3. Ha ez valamiképp felmegy, akkor már a PC-ről az arduino keret fel tudja tölteni az általad írt programot. A PC- az USB-t használja, ezért vagy az arduino panelon van egy USB-soros átalakító, vagy használsz külön USB-soros átalakítót. A kész panelok egyik része az egyik, másik része a másik módszert használja.
4. A WEB áruházakban árult panelok mikrokontrollere már tartalmazza a bootloadert.
4. Egy szó mint száz, programozóval (ami lehet egy másik arduino is) bármit feltölthetsz, arduino keret által fordított, vagy bármi más programot is. -
Janos250
őstag
válasz
Daszkalosz19 #3472 üzenetére
Holnap valószínűleg lesz annyi időm, hogy megnézzem.
Hirtelenjében csak annyi tűnt fel, hogy a pinMode előzze meg a digitalWrite-ot! -
Janos250
őstag
válasz
Daszkalosz19 #3468 üzenetére
Közben letöltöttem az LCD könyvtárát, így ha a megfelelő sorrendben raktam össze a részeket és kikommentelten a (szerintem) hiányzó dolgokat, akkor lefordította.
Kipróbálni nem tudom, mert ami LCD kijelzőt nekem I2C gyanánt küldött a kicsi kínai, az nem az :-(Nekem úgy tűnik, hiányzik a
readButtons()
navigateMenus()
relayhour_setting()
relayminute_setting()
relaysec_setting() -
Janos250
őstag
válasz
Daszkalosz19 #3466 üzenetére
Pár megjegyzés:
Próbáltam legalább szintaktikailag leellenőrizni, rendbehozni.
Az LCD kivételével a többi rendbehozható (szintaktikailag), ahhoz valószínűleg meg kell keresni a passzoló könyvtárat, de arra már nem futotta az energiámból.A MenuBackend menükezelőből több példány kering a neten, a legújabb valószínűleg az 1.1,
de ebből is hiányzik a
void toRoot() {
setCurrent(&getRoot() );
}
tagfüggvény, amit ha használni akarja az ember, kézzel be kell írni.
[link]
Egyébként ez a MenuBackend meglehetősen régi, régóta nem fejlesztik, vannak más menükezelők is. (Én egyiket se használtam)A LiquidCrystal_I2C könyvtárral szintén vannak gondok, mert (nekem legalábbis) a megjegyzéssel ellentétben nincs az arduino standard könyvtárában.
Amit a Google elsőre kiad, azzal nem kompatibilis.Egyébként ez valóban hátránya a szabad szoftveres dolgoknak, hogy mindenki fejleszti, nem tudni ki melyik verziót használta, kik adták ugyanazt a nevet a saját fejlesztésű könyvtáruknak.
-
Janos250
őstag
válasz
MasterMark #3462 üzenetére
"szabad is ilyet venni"
Persze. Közben rájöttem, hogy nem ezzel voltak gondjaim a feltöltésnél, hanem ezzel:
[link]
mert nincs USB csatlakozás, soroson kell feltölteni, és nem figyeltem arra, hogy kézzel kell a feltöltés előtt bootloader módba állítani.
"nem gyújtja fel a lakást?"
Nem! :-)
5V, (vagy 3.3) és párszáz mA még akkor sem csinálna bajt, ha valami gubanc lenne, de nem szokott lenni.
Mennek ezek rendesen. Nálam még az egész arduino seregből egy se purcant ki, pedig mind a legolcsóbb kínai.
Ha meg túl pesszimista az emberfia és fél az 1-2 Watt-tól, akkor egy olyan táppal hajtja meg, ami eleve csak kisebb áramot tud leadni.Az más kérdés, hogy én helyette (mivel ez ATmega328 procival megy) inkább az ARM chippel készülteket szoktam ajánlani, pl:
[link]
Ezt a lapocskát én nagyon szeretem. Jók a paraméterei, gyors, miegymás. Na, meg ARM.
vagy :
[link]
Az a jó - többek között - az Arduino kompatibilis lapokban, hogy a megírt program az adott lapra fordítva ugyanúgy fut gyakorlatilag mindegyiken. Persze, ha nem használunk spéci dolgokat.Na, meg ezeket is kedvelem, mert szintén nagyon jók a paraméterei és alapból benne van a WiFi:
[link]
[link] -
Janos250
őstag
válasz
MasterMark #3459 üzenetére
Persze.
A minire a program feltöltéssel nekem voltak gondjaim, de aztán megoldódott.
Ha jól emlékszem úgy, hogy az ebay-en megadott linkről töltöttem le a drivert, de ebben már nem vagyok biztos, régen használtam. -
Janos250
őstag
válasz
Teasüti #3454 üzenetére
"Mit értesz vektor alatt?"
Amit Te puffernak nevezel.
"ugyanúgy el kell tárolnom a ram-ban a vezérlőbájtokat minden szalagra vonatkozóan"
Így van.
"akkor ezt sehogy nem lehet leredukálni egy változóra"
Azt tényleg nem.
"Vagyis ha jól értem az egyetlen előny az volna, hogy átláthatóbb és rendezettebb lenne a program a mostani katyvasz helyett."
Jól érted. -
Janos250
őstag
válasz
Teasüti #3451 üzenetére
Igen, jól érted.
Nem biztos, hogy jó a javallatom, mert nincs energiám részleteiben átbogarászni a programod.
Talán: egy képkocka generálás egy class, paraméter a kocka adatait tároló vektor.
Egy képkocka adatait mindenképpen egy vektorban kell tárolnod, és egyszerre küldeni ki a szalagra, mert - ha jól emlékszem - talán
8-9 microsec lehet max a szalag következő ledjének az adatainak küldése között, mert ha hosszabb, akkor "elölről kezdi",
azaz ami pl. 10 microsec múlva érkezik, azt már újra az első led kapja el, mint "sajátját".
Tehát akkor:
Egy képkocka első szalagra, bele a vektorba.
A vektor kiküldése az első szalagra.
Egy képkocka második szalagra, UGYANABBA a vektorba (memória takarékosság)
A vektor kiküldése a második szalagra.Változók/memória:
Amit a classban "felül" deklarálsz, azok a példány élete során végig megmaradnak. Amit az egyik tagfüggvényben, az csak a tagfüggvény működése közben.
A class a paramétereket (többnyire) érték szerint veszi át, de pl. a vektort nem, hanem "hivatkozás szerint", azaz a címét veszi át, és a "kintit" használja, így nem foglal
külön memóriát. Ha kell, lehet olyat is, hogy valamely változóból ne jöjjön létre példányonként egy-egy, hanem összesen egy, és minden példány azt az egyet használja ("static"). -
Janos250
őstag
válasz
Teasüti #3442 üzenetére
Sajnos nincs kéznél, és a napokban nem is érek rá csinálni , neten meg nem tudok egyszerűt.
"Az effektezésnél tudatosan vannak kihagyva, így paramétertől függően végigmehet mindegyiken."
Én azért próba-szerencse alapon kipróbálnám enélkül, azaz ideiglenesen kikommentelve.
Vagy másként szervezném a switchet, hogy szabályos legyen, bár lehet, hogy így is az.Erőforrás:
Ja, igen, én ESP-t és ARM-ot használok többnyire :-) -
Janos250
őstag
Pár szigorún szubjektív megjegyzés azoknak, akik színes led szalagot akarnak programozni:
#include <RGBConverter.h> után kényelmes RGB - HSL átszámítási lehetőséget kapunk:
RGBConverter enKonverterem = RGBConverter();
enKonverterem.rgbToHsl(R, G, B, HSL); //byte R, byte G, byte B, double HSL[]
enKonverterem.hslToRgb(H, S, L, RGB); //double H, double S, double L, byte RGB[]
Az eredményt az utolsó paraméter 3 elemében kapjuk.
Ha az RGB-t átrakjuk HSL-be, változtathatjuk a H (hue) színezettséget,azaz a színt, az S (saturation) színtelítettséget, és az L (lightness) fényerőt.
Utána visszarakhatjuk RGB-be.LED szalaghoz én az Adafruit osztályát próbáltam:
#include <Adafruit_NeoPixel.h>
Egy ciklusban (vagy akárhogy) feltöltjük minden egyes (i.) ledhez a három színt.
enLEDszalagom.setPixelColor(i,R,G,B);
Amikor kész a feltöltés, akkor jöhet a show:
enLEDszalagom.show();
Szerintem kényelmes, de több másik is fellelhető a neten.A neten található példákban a szabályozásra különféle tekertyűket használnak. Azt már korábban írtam, hogy - sokakkal ellentétben - én a mindenféle tekertyű helyett a WiFi/telefon képernyője használatát javasolom.
-
Janos250
őstag
válasz
Teasüti #3437 üzenetére
Még egy megjegyzés egy amatőrtől:
Majd amikor már teljesen készen lesz a program, javasolom a globális változók használata helyett a class/objektum-ra átírást. Ugyanis ha csak egy szalagod van, akkor nem okoz gondot a globális változók használata, de ha több szalagot vezérelsz, akkor egymásnak bekavarnak. Objektum esetén viszont minden példánynak sajátjai vannak, tehát nem bántják egymáséit. -
Janos250
őstag
válasz
Teasüti #3437 üzenetére
Okosat nem tudok mondani, de az egyik case-ből hiányoznak a break-ek.
Tapasztalatom szerint ez teljesen meg tudja bolondítani a programot, teljesen váratlan módon képes futni, nem csupán azt teszi, hogy ráfut a többire is.Ezt másnak is hangsúlyozom: Hiányzó break-ekre vigyázni!
-
Janos250
őstag
válasz
Teasüti #3421 üzenetére
Esetleg egy próba:
Már nem pontosan emlékszem a problémára, és nem találom az eredeti bejegyzést, de soros átvitel során elvesznek adatok.
Nekem a Serial.print okozott hasonló problémákat ott is, ahol nem lett volna szabad. Igaz, én ESP-t használtam. Ha kihagytam az ellenőrző Serial.print-eket, hiba nélkül ment. Ha a Serial.print-ek elé, után delayt raktam, általában az is megjavította. Ha gondolod, próbáld ki.
Nincs más a programban, ami a megszakításaival bekavar? -
Janos250
őstag
válasz
gyapo11 #3366 üzenetére
"én pl. még nem láttam azt a kódot, ami akkor fog lefutni, amikor ezt a sort hajtja végre és küldi ki a soros portra a byte-okat"
Tessék:
size_t HardwareSerial::write(uint8_t c)
{
_written = true;
// If the buffer and the data register is empty, just write the byte
// to the data register and be done. This shortcut helps
// significantly improve the effective datarate at high (>
// 500kbit/s) bitrates, where interrupt overhead becomes a slowdown.
if (_tx_buffer_head == _tx_buffer_tail && bit_is_set(*_ucsra, UDRE0)) {
*_udr = c;
sbi(*_ucsra, TXC0);
return 1;
}
tx_buffer_index_t i = (_tx_buffer_head + 1) % SERIAL_TX_BUFFER_SIZE;// If the output buffer is full, there's nothing for it other than to
// wait for the interrupt handler to empty it a bit
while (i == _tx_buffer_tail) {
if (bit_is_clear(SREG, SREG_I)) {
// Interrupts are disabled, so we'll have to poll the data
// register empty flag ourselves. If it is set, pretend an
// interrupt has happened and call the handler to free up
// space for us.
if(bit_is_set(*_ucsra, UDRE0))
_tx_udr_empty_irq();
} else {
// nop, the interrupt handler will free up space for us
}
}_tx_buffer[_tx_buffer_head] = c;
_tx_buffer_head = i;sbi(*_ucsrb, UDRIE0);
return 1;
}Nem gondolom, hogy az Arduinot használók között túl sokan vannak, akik az assembly kódot akarják bogarászni. Aki mégis, az meg azt is tudja, hogyan kell a fordítót paraméterezni, hogy legyen egy közbülső assembly kódod is.
-
Janos250
őstag
Egy "amatőr" cég [Microchip
] honlapjáról egy ajánlás:
"chipKIT Development Platforms Professional Tools Inspired by Arduino"
"Simple code development with the official Arduino IDE (v1.6.7 or later);
compatible with most Arduino functions and libraries"[link]
http://ww1.microchip.com/downloads/en/DeviceDoc/00001423C.pdfMár a Microchip saját oldalának ajánlatai között is szerepel Arduino?
-
Janos250
őstag
válasz
Teasüti #3361 üzenetére
Az okát jól leírta gyapo11.
Amatőr megoldás a problémára:
1. Az öregecske 328-as proci helyett egy korszerűbb. Nem drágább pl. egy ARM, ami sokkal gyorsabb, nagyobb a memóriája, korszerűbb. A megírt arduino program úgyanúgy (általában) fut rajta.
2. Multiprocesszor amatőr megoldása, hogy ha ragaszkodsz a 328-as procihoz, hogy egy picike külön 328-as Arduino panel (5-600 Ft), ami semmi mást nem csinál, csak a soros portot kezeli, ha lehet/szükséges előfeldolgozást végez, és akkor küldi át a ténylegesen dolgos procinak, amikor az kéri. -
Janos250
őstag
válasz
printpro #3334 üzenetére
Saját szórakoztatásomra tököltem vele egy órát. Simán össze lehet rakni, és a kombinálás se gond. Pénzes melót nem vállalok, nem azért írom, de saját szórakozásra meg fogom csinálni, ha néhány nap múlva visszajövök vidékről, mert megtetszett a dolog, ahogy felváltva egyik, majd másik "műsor megy", változtatott fényerővel. A hue, saturation változtatás valószínűleg még élvezetesebbé teszi, de azt még nem próbáltam, mert képletekkel kell átszámítani az RGB-t, változtatni, majd vissza. :-)
-
Janos250
őstag
válasz
soldi3r #3337 üzenetére
Természetesen!
Az egy C++-ról lefordított program. Sőt, ha ARM-ra, PIC-re fordítod, ott is megy, persze ha nem alap szinten kezeled a hardware-t. Ha úgy tartja úri kedved, akár az Arduino bootloadere nélkül is betöltheted.
A framework tartalmazza minden illesztett procira egy fájlban, hogy az adott, C++-ban (C-ben) megírt kódot, "hogyan kell fordítani". (Pongyolán fogalmazva. Aki precízen akarja, utána olvashat. ) Például, hogyan kell fordítani azt, hogy a programban 2-es lábnak nevezett lábat emelje fel, vagy tegye le, és melyik lesz a "2-es" láb. -
Janos250
őstag
válasz
printpro #3329 üzenetére
A sokféle vélemény kíváncsivá tett!
A kezem ügyében lévő cuccokból (Uno + led szalag) összeütöttem egy próbát.
Sokat nem tököltem vele, de az adott minták közül a "Ripple"-t próbáltam.
Minden gond nélkül működik.
Majd egyszer kipróbálom a többit is, de ma már hamarosan aludni fogok, holnap meg valószínűleg strand.
Majd valamikor a jövő héten.
Úgy látom, itt most az lett a jelszó, hogy ha nem elég bonyolult az életünk, akkor igyekezzünk feleslegesen elbonyolítani. Az én elvem ezzel szemben az, hogy ember segíts magadon, Isten is csak akkor segít!
A vezérlés sem egy ördöngősség. Én - mint általában - a WiFi megoldást javasolom, bár ezért többen visszaszednék rólam a keresztvizet.
A WiFi előnye szerintem (többeknek különbözik a véleménye):
1. egyszerű programozni, html lapot írsz.
2. böngészővel (Firefox, stb) kezeled, ezért paltform független, megy iPhonon, Androidon, Windowson, Linuxon, telefonon, tableten PC-n egyaránt, ami épp a használó keze ügyében van.
3. minden bizonnyal 10 év múlva is ismerni fogják a böngészők a html-t, ezért hiába jön mindenféle verzió váltás, nem avul el. -
Janos250
őstag
válasz
gyapo11 #3328 üzenetére
"Mikrovezérlővel igen"
Az Arduino nem mikrovezérlő? (Atmel, ARM, ESP, Microchip PIC, stb. ezeken fut az Arduino kód.)
"netről levadászott kódok"
Nem kell a netről vadászottat használni, írhatsz sajátot.
"általában C-ben"
Ha nem tetszik a C++ , Arduinora is írhatsz C-ben is.
"Ennek megfelelően az ára is több 10-ezer lehet egy ilyen egyedi fejlesztésnek."
Üzleti oldalához nem tudok hozzászólni.Az igaz, hogy hardverközeli program írása esetén csak azon az (általában) egyetlen kontrolleren fog hibátlanul futni, amire írtad, de egy ilyen LED vezérlés egyetlen (!) láb le-föl mozgatásából áll, megfelelő időzítéssel, de adott esetben elég nagy toleranciával. Ez nem egy egetrengető feladat.
Ketten más szemszögből nézzük a dolgokat.
-
Janos250
őstag
válasz
ghostie #3300 üzenetére
Én Sokimm válaszához csatlakozom. Az Arduino egy lego, amit csinálni kell. A neten rengeteg példa van, szinte mindenre. Ha led és ellenállás van benne, akkor azt is odaírják, hogy mekkora ellenállást tegyél oda. Majd, ha már sok mindent megcsináltál, közben megtanulod, hogyan számold ki azt az ellenállást.
Fiatal koromban, amikor elkezdtem elektronikával foglalkozni, megkérdeztem egy villanymérnök kollégát, hogy a Z80-as panel egyik TTL IC-jéhez mekkora hidegítő kondit tegyek. Hát, az nem olyan egyszerű, azt meg kell méretezni, mondta. Aztán láttam, hogy az ő paneljaira hasonló helyre mindenhova 100nF kondit tesz. Megkérdeztem, miért? Ekkorát szoktunk, mondta. Utána én is olyat tettem.
Ha arra vártam volna, hogy megméretezze nekem, ma sem tartanék sehol. Az Arduinoban az a jó, hogy akár alapismeretek nélkül is lehet kezdeni, és az ismereteket közben bővíteni. Ha csak az elektronikai alapismeretekkel kezded, egy idő után megunod és abbahagyod. Tapasztalatból tudom, hogy 15-20 óra alatt pl. el lehet jutni elektronikai alapismeretekkel nem rendelkező srácokkal oda, hogy a saját mobiltelefonjukról kapcsolják ki-be az ESP8266-hoz kötött ledet (vagy készülék fűtést).
Ez persze az én szubjektív véleményem és tapasztalatom, nem akarom cáfolni az ellenkező véleményen állókat. Mindenkinek saját magának kell döntenie. -
Janos250
őstag
válasz
Gergosz2 #3288 üzenetére
Gergos2 és tvamos!
Pap és papné esete.
A WiFi chip használata során a vezérléshez html kódú WEB lapot írunk. A html-t majdnem minden második ember ismeri, és elég stabilan állja az idők próbáját.
A többi meg minden programban ugyanaz, mivel a kész osztálydefiníciókat használjuk.Egy hevenyészett példa:
ESP8266WebServer amiNevetSzervernekValasztottam(80);
void ezthajtsdVegreHaGyokerbeLepek() {
String teendo = amiNevetSzervernekValasztottam.arg("macska");
if (teendo == "ehes"){
//adj enni a macskanak
}else if (teendo == "nyugos"){
//simogasd meg
};String WEBlapKodja = "<html>\r\n";
WEBlapKodja += "<!DOCTYPE HTML>\r\n";
.......ide írjuk be, a WEBlap részeit: gombokat, linkeket, miegymast
WEBlapKodja += "</html>\n";
amiNevetSzervernekValasztottam.send(200, "text/html", WEBlapKodja);
}void setup(void)
{WiFi.mode(WIFI_AP); // AccessPoint
WiFi.softAP("amiNevetWiFiSSDnekValasztok","hozzaJelszo"); // SSID, pw.
amiNevetSzervernekValasztottam.begin(); // start the HTTP serveramiNevetSzervernekValasztottam.on("/", ezthajtsdVegreHaGyokerbeLepek); // megadjuk, melyik fuggveny hajtodjon vegre, ha rootba lepek
}
void loop(void)
{amiNevetSzervernekValasztottam.handleClient(); // ez mindig ez
}
bongeszobe beutni:
http://192.168.4.1/?macska=ehes (ha nem változtattam meg az IP-t, hanem az alapertelmezettet hagytam)Vagy ha megírom hozza tagfuggvényt:
http://192.168.4.1/masikfeladat?villany=lekapcsAkkor kell még:
amiNevetSzervernekValasztottam.on("masikfeladat", ezthajtsdVegreHamasikfeladat);
void ezthajtsdVegreHamasikfeladat() {String teendo2 = amiNevetSzervernekValasztottam.arg("villany");
if (teendo2 == "lekapcs"){
//kapcsold le a villanyt
};String WEBlapKodja2 = "<html>\r\n";
WEBlapKodja += "<!DOCTYPE HTML>\r\n";
.......ide írjuk be, a WEBlap2 részeit: gombokat, linkeket, miegymast
WEBlapKodja2 += "</html>\n";
amiNevetSzervernekValasztottam.send(200, "text/html", WEBlapKodja2);
} -
Janos250
őstag
válasz
Gergosz2 #3283 üzenetére
Ízlés kérdése. Mindenkinek a saját szempontjai alapján kell dönteni.
Én azért pártolom a WiFit, mert az sokkal általánosabb, gyakoribb mint a többé-kevésbé egyedi RF chipek. Egy WiFis megoldásban szerzett gyakorlat biztosan nem válik holt tudássá évek múltával sem. Sokkal több WiFis chipet használnak a világon, mint az egyéb RF megoldásokat. Attól még persze lehet használni a spéci RF chipeket is, ha valakinek az a szimpatikusabb, vagy van valami oka, hogy az ő alkalmazásában azt használja. -
Janos250
őstag
-
Janos250
őstag
Genuino 101-et nem ismerem, nem akartam Intel irányba elmenni, én az ARM irányt céloztam meg, pl:
http://www.ebay.com/itm/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino-/291693366485?hash=item43ea478cd5:g:74YAAOSwZ8ZW5jfe
[link]
és hasonlók, azokkal nagyon kellemes tapasztalataim vannak.Én az ESP-t (ESP12-E, NodeMcu Lua, és ez: http://www.ebay.com/itm/Hot-ESP8266-ESP-12E-WIFI-Wireless-Dev-Board-for-Arduino-IDE-UNO-WeMos-D1-F7-/222050036152?hash=item33b336a9b8:g:qaoAAOSwxp9W4pIk [link] ) kedvelem, mert önmagában egy komplett, jó teljesítményű 32 bites Arduino is.
A soros vonala tapasztalatom szerint megbízhatóan működik, így - elvileg - gond nélkül együtt kell működnie a 101-el is.
Pár példány van belőlük, az oktatás során sem sikerült egyet sem kinyírni a félév során. :-)nfc shoeldet nem ismerem.
RFID-ként a következőt próbáltam (Mifare):
http://www.ebay.com/itm/Mifare-RC522-RFID-13-56Mhz-Module-Wireless-Module-ICSH008A-/351374091757?hash=item51cf8725ed:g3AAAOSwGXtXgLbM [link]
Ez - elvileg - nagyon kényelmes, mert mindent elintéz a rajta lévő proci, ha egy tag (pl. kártya) közelít hozzá, folyamatosan ismételgetve küldi soros vonalon a kártya ID-jét.
Ez az elv, mert nekem támadtak vele gondjaim, aztán ez is a fiókba került, amikor sürgősebb dolgok kerültek elő (a már írt ESP hőmérséklet mérés). Azóta még nem vettem elő.
3V-on működik, rajta van egy fesz. szab. , ezért 5 V-al kell megtáplálni, de a soros vanal 3V-os. A korábbi változatokon volt egy LED, közvetlenül az 5V-ra kötve. No ez általában elfüstölt, azóta az újabbakon csak a helye van.
Nekem volt amikor működött, de volt amikor nem. Van hozzá egy "gyári" tesztelő program, én is azt (is) használtam, de a NET szerint az észreveszi, ha nem eredeti a dolog, és kinyírja a prociban lévő firmware-t, tehát újra kell tölteni.
Na, ez még nálam nem került sorra. Van szűz példányom is, idő hiányában még a fiókban. Azt nem próbálom ki a teszt programmal, csak simán olvasom majd az adatait a soroson, remélem megy.Ez meg egy régebbi, de kész könyvtárakkal - állítólag - jól programozható, stabilan működik. Nekem még a fiókban van, nem próbáltam. :
http://www.ebay.com/itm/RC522-Mifare-Card-Read-Antenna-RF-Module-RFID-Reader-IC-Card-Proximity-Module-/172229986397?hash=item2819b5085d:gGEAAOSwvg9XUupm [link]
-
Janos250
őstag
Hasonlót.
Mióta (1-2 éve) beillesztették az ESP8266-ot is az Arduino sorba, hogy ne csak AT parancsokkal lehessen programozni, ezek a célszerűbbek:
[link]
vagyÉn mindkettőt használom, meg vagyok velük elégedve.
Pl. hőmérséklet szenzort olvas, WEB szerverként konfiguráljuk és mobiltelefonról böngészővel olvassuk az értéket.
Az ESP8266 chip önmagában Arduino is, jobb paraméterekkel, mint számos egyéb Arduino lap.
Tehát nem kell külön WiFi shield.
Gyors, nagy memória, szerintem egyetlen hátránya a kevés I/O láb.
Arduinoként C-ben, C++-ban programozható, nagyon jó kész könyvtárak vannak hozzá.
32 bites proci. -
Janos250
őstag
válasz
Daszkalosz19 #3244 üzenetére
"Show verbose output during compilation
enabled in File > Preferences."Ha ezt bejelölöd, több mindent kiír, azt is, hogy hol keresi.
Ha nem ott, ahol van, akkor másold be oda (is) -
Janos250
őstag
válasz
Teasüti #3209 üzenetére
https://www.arduino.cc/en/Hacking/LibraryTutorial (a library készítést írja, de a végén az is le van írva, hova tedd, stb.)
[link]https://www.arduino.cc/en/Guide/Libraries
[link]aztán ha megnézel egy libraryt, látsz még benne ezt-azt.
library.properties néhány jellemző
keywords.txt itt adhatod meg, hogy miket milyen színnel jelöljön meg a keretprogram. "helyesírásellenőrzésre" jó
src könyvtárba kerülnek a .h és .cpp forrásfájlokbiztos még sokféleképpen jó, de így is működik.
-
Janos250
őstag
válasz
Teasüti #3202 üzenetére
A /267 meg a B7h karakter, ami egy vesszős nagy E, vagy hasonló.
Tippjeim:
1. kicsomagolási, másolási hiba a fájlban.
2. valami olyan szövegszerkesztővel szerkesztetted, ami az ASC karakterek mellé még valami berak.Tehát a hiba azt jelzi, hogy nem ASC karakterek találhatók a fájlban.
Én nem látok az aplicationmonitor.h fájlban oda nem illő karaktereket.
Nálad valahogy nem jó ez a fájl. -
Janos250
őstag
válasz
Daszkalosz19 #3190 üzenetére
Hopsz, látom, igen, úgy van beállítva.
Akkor a következő lépés, hogy a file/preferences menüben berakod a pipát a
Show verbose output during részben a compilation elé.
Akkor igen szószátyár lesz, minden lépést kommentál, de akkor talán több látszik, hogy hol akad el.Azt gyanítom, hogy valami vagy hiányzik, vagy összekavarodott.
Lehet, hogy új letöltés lesz a vége.
Megpróbálhatod egy új letöltést, és a ha a portable verzióval használod, nem zavarja meg a már meglévő installáltat. -
Janos250
őstag
válasz
Daszkalosz19 #3190 üzenetére
-
Janos250
őstag
válasz
Daszkalosz19 #3181 üzenetére
Nekem is lefordítja. Írd ide, mit ír ki hibaként, hogy tudjunk segíteni!
Továbbá:
Milyen Arduino panelt használsz? (pl. UNO, stb.)
Melyik verziót használod az Arduino környezetből? 1.6.9 jelenleg a legújabb, de a régebbiek is jók.
Ugye innen (https://www.arduino.cc/en/Guide/HomePage) töltötted le? (Találtam már a neten máshol berhelt verziót)
Az installálós, vagy a portable verziót használod?
(Portable attól lesz, hogy a zip fájlt egyszerűen kicsomagolod, és első indítás ELŐTT csinálsz benne egy portable könyvtárat. Ugyanott, ahol a többi könyvtár is van. Ő csinál magának a portable könyvtárban a programjaidnak egy sketchbook könyvtárat, ahova a programjaidat teszi. Indítani az arduino.exe indításával lehet. A portable verzió ide rakja a saját dolgait, és békén hagyja a dokumentumok könyvtárat. ELVILEG bárhova áthelyezve működik, és ha több portable verzió van egymás mellett, nem zavarják egymást.) -
Janos250
őstag
-
Janos250
őstag
válasz
norbert1998 #3084 üzenetére
Bocs, most látom, nem tárcsával emeled. Akkor munka képlettel lehet kiszámolni.
0.3 Nm-el egy fordulat mennyi munka. Leméred, 1 fordulattal mennyit emelkedik, az mennyi munka. Melyik a kevesebb. -
Janos250
őstag
válasz
norbert1998 #3084 üzenetére
Ha jól emlékszem még a fizikára, akkor 20 N * 0.015 m = 0,3 Nm , tehát másfél centis sugarú tárcsával tudja felemelni.
Elvileg, és ha jól számoltam :-)
Új hozzászólás Aktív témák
Hirdetés
- btz: Internet fejlesztés országosan!
- További kavarás a Pixel 10-ek körül
- Samsung Galaxy A56 - megbízható középszerűség
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Gyúrósok ide!
- Robotporszívók
- alza vélemények - tapasztalatok
- Redmi Note 9 Pro [joyeuse]
- Kerékpárosok, bringások ide!
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- További aktív témák...
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
- Nitro AN515-56 15.6" FHD IPS i7-11370H RTX 3050 16GB 512GB NVMe magyar vbill gar
- HP Pavilion 15-ec2057ur 15.6" FHD IPS Ryzen 7 5800H RTX 3050 16GB 512GB magyarított vbill gar
- AKCIÓ!!! GAMER PC: Új i5-14400F +RTX 5070 +Új 16-32GB DDR4! GAR/SZÁMLA! 50 FÉLE HÁZ!
- Corsair RM750
- REFURBISHED - HP USB-C Universal Dock G1 docking station (DisplayLink)
- Bomba ár! Dell Latitude 7420 - i7-1185G7 I 16GB I 512SSD I HDMI I 14" 4K I Cam I W11 I Garancia!
- Geforce GTX 1050, 1050 Ti, 1060, 1650, 1660 - GT 1030 - Low profile is (LP)
- BESZÁMÍTÁS! Asus TUF B450M R5 5600X 32GB DDR4 512GB SSD RTX 3060 XC 12GB Rampage SHIVA Chieftec 600W
- LG 65QNED86T / 65" - 164 cm QNED / 4K UHD / 120Hz & 3ms / HDR 10 Pro / FreeSync Premium / HDMI 2.1
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest