Keresés

Részletes keresés

Prof Creative Commons License 2016.08.19 0 0 2054

http://hestore.hu/prod_10036436.html

https://store.arduino.cc/product/GBX00067

http://hu.rs-online.com/web/p/processzor-es-mikrovezerlo-fejlesztokeszletek-es-kiegeszito/7154084/

 

Az utóbbi kettő garantáltan eredeti, a hestore kétesélyes.

 

Nem értem, hogy miért ragaszkodsz az eredetihez.

Előzmény: Xtremehun (2052)
Vargham Creative Commons License 2016.08.19 0 0 2053

https://store.arduino.cc/

 

Amúgy miért fontos, hogy eredeti legyen?

Előzmény: Xtremehun (2052)
Xtremehun Creative Commons License 2016.08.18 0 0 2052

Sziasztok 

 

Eredeti arduino mega alaplapot hol érdemes beszerezni "ahol biztos eredetit kapok"

 

Köszönöm.

Prof Creative Commons License 2016.08.18 0 0 2051

Jaigen...

Látom, hogy van billentyűzeted valamilyen formában.

Menü alapelv:

-- gombfigyelés, ha van gombnyomás,

-- gombvizsgálat (melyik gomb lett lenyomva), ennek megfelelően:

-- adott paraméter(ek) átállítása (szintén gombfigyeléssel), majd:

-- visszalépés a főmenübe.

Ez nyilván vizsgálatok sorozatát jelenti, amiből a fő gombvizsgálatnak a fő loop-on belül kell megtörténnie, mégpedig elég sűrűn (pontosabban nagyjából folyamatosan). Mivel az arduino kissé béna megszakításkezelésben, én inkább kezdésre a sima "van-e gombnyomás" vizsgálatot javaslom. Erre van számos példa az arduino fórumon, illetve a tudástárban. A kód jelentős része egyébként megvan az általad küldött mintában, onnan kiszedve (lényegében egy másik függvényt írva) meg lehet csinálni azt, hogy az adott relét válaszd ki. Attól függően, hogy mit és hogyan akarsz állítani, én egy sima fa-struktúrájú menüt csinálnék (főmenü, utána 1-2-3-4 relé kiválasztása, azon belül értékállítás, jóváhagyás, vissza).

Javaslom a switch/case algoritmus beható vizsgálatát. Ilyen esetekben roppant hasznos megoldás.

Előzmény: Daszkalosz19 (2049)
Prof Creative Commons License 2016.08.18 0 0 2050

Hali!

Csak az elv:

 

void loop()

{

 

// ez lesz a változód, aminek adsz valami értéket (ezt fogod átadni a függvénynek):

int valtozo = ertek;

 

// itt hívod meg a függvényt:

fuggveny(valtozo);

}

 

void fuggveny(int x)

{

// ez a függvény törzs, amit hívsz, amiben a void loop() valtozo változója x-ként reinkarnálódott

}

 

Tehát. Van egy függvényed (a példában ez a relaysecBe_settting függvény), amit úgy tudsz  meghívni, hogy a fő programrészből csak a nevére és a paramétereire hivatkozol:

relaysecBe_settting(relayNum);. Ha a függvény nem kér vagy nem akarsz paramétert átadni, akkor a zárójel üresen marad, ha paramétert akarsz átadni, akkor azt a zárójelbe írod be. A függvény egy külön szakasz, ami úgyszintén void-dal kezdődik és a függvény neve után jönnek a függvényhez használandó paraméterek változó deklarációi. Az uint_8 a változó típusa, a byte megfelelője. A lényeg, hogy amit átadsz változót (a fenti példában a valtozo) és ami a paraméterlistában van, azonos típusú kell legyen, vagyis bool, int, unsigned int, long, unsigned long, float stb., lásd Arduino.cc fórumok.

 

uint8_t relayNum;

 

Ez egy változó deklarálás a változó értékének megadása nélkül. Ha a void loop()-on belül van, akkor csak ott fog élni, ha az egész hóbelevanc elejére, közvetlenül a könyvtárhívások után teszed, akkor globális változó lesz, minden függvény használni fogja (nem kell vesződni a paraméterátadással).

 

relayNum = 0; //0...3

 

Ez a változó értékadása. Ezt te választod meg és/vagy maga a szoftver állítja (pl. menüből, véletlenszerűen stb.). A loop-on belül bárhol lehet (illetve ha relayNum globális változóként lett deklarálva, akkor az egész cuccon belül bárhol lehet értékadás).


relaysecBe_settting(relayNum); << ide kerül a relé száma 0 ... 3

 

Ez maga a függvény hívás. Mindenképp az után legyen, hogy a relayNum-nak értéket adtál (eggyel ezelőtti sor), ellenkező esetben az lesz, hogy egy memóriából véletlenszerűen kapott számot fog hozzárendelni, aminek lehetnek nem várt káros következményei (javaslom, hogy az alapérték már a deklarációkor egy olyan szám legyen, amihez nem tartozik konkrét művelet, tehát ha 4 relé van, 0-tól 3-ig, akkor 4-et hozzárendelni). Szóval, ez a függvényhívás lehet szintén a loop-ban nagyjából bárhol, ahol értelme van (végre akarod hajtani a függvényben található utasításokat -- ahogy elnézem, valamilyen idő beállítását, illetve ellenőrzését szolgálja).

 

Mivel a void loop()-ot nem láttuk, ennél többet nem tudok tanácsolni.

 

 

Előzmény: Daszkalosz19 (2049)
Daszkalosz19 Creative Commons License 2016.08.18 0 0 2049

Sziasztok!

 

Időkapcsoló órát tervezek,de elakadtam. A menürendszerhez nem értek.

Ezt  a rutint kellene meghívni a menü rendszerhez a "Dugalj" "BE" almenühöz. Hogyan kell?

// Kel 1 menü ahol kiválasztod a relé számát, és onan meghivod vele a rutinodat:
...
relaysecBe_settting(relayNum); // 0 ... 3
...

//............................................................sec_settting()................................................
void relaysecBe_settting(uint8_t relay)
{
char keypressed;

relaysT[relay].Rbe_sec = now_.minute();

lcd.setCursor(0,0);
lcd.print("Set second, relayBe: ");
lcd.print(relay);
lcd.setCursor(0,1);
lcd.print("mPerc = ");
if(relaysT[relay].Rbe_sec < 10) lcd.print(" ");
lcd.print(relaysT[relay].Rbe_sec);
do { //

lcd.setCursor(8,1);
if(relaysT[relay].Rbe_sec < 10) lcd.print(" ");
lcd.print(relaysT[relay].Rbe_sec);
keypressed =customKeypad.getKey(); //
delay(100);
if (keypressed=='1') //
{
if(relaysT[relay].Rbe_sec < 60){
relaysT[relay].Rbe_sec ++; //
}else{
relaysT[relay].Rbe_sec = 0;
}

}
if (keypressed=='2') //
{
if(relaysT[relay].Rbe_sec > 0){
relaysT[relay].Rbe_sec --; //
}else{
relaysT[relay0].Rbe_sec = 59;
} //
}
//delay(100);
} while(keypressed != '3'); //

}

 

Ez is kellene hozzá,de nem tudom hova kell beilleszteni!

 

uint8_t relayNum;
...
relayNum = 0; //0...3
..
relaysecBe_settting(relayNum); << ide kerül a relé száma 0 ... 3
Amit át adsz a hívott rutinak

mekkGyver Creative Commons License 2016.08.18 0 1 2048

A régi lakásomban így volt megoldva pár évvel ezelőtt, és működött. Általában :) Annyi plusz volt, hogy egy mini PC volt még az álmennyezet alá berakva, hogy tudjam távolról is vezérelni. Ahol most lakunk nincs álmennyezet, ezért nem tudom egy pontról elhúzni a vezetékeket, így mega helyett - szobánként - egy-egy olcsó nano volt, rs485 kommunikációval. Most ESP és WiFi a nyerő, ami még talán olcsóbb is. Igaz én 10 éve fejlesztgetem már a dolgot és nem csak lámpakapcsolást tud, hanem mozgás- fény- hang- hőmérséklet- érzékelést is. A lámpakapcsolást úgy megprogramozni, ahogy írtad, nem lesz nehéz, inkább a vezetékelésben látok buktatókat, hogyha úgy akarod megoldani, hogy minden lámpát és kapcsolót egy "csillagpontról" vezérelnél.

 

Előzmény: Máma? (2045)
Prof Creative Commons License 2016.08.18 0 0 2047

Így a végén annyit tennék hozzá, hogy én a teljes nagyfeszültségű részt és annak minden elemét (nyilván együtt) külön tápra tenném, továbbá az arduino használatban lévő kimeneteit hidegíteni + diódával védeni. Watchdog elengedhetetlen.

Előzmény: Máma? (2045)
Prof Creative Commons License 2016.08.18 0 0 2046

Megfelelő minőségű relével nem lesz baj. Ha nem is az örökkévalóságnak készültek, borzasztó mennyiségű kapcsolást elviselnek. Az SSR-nek ehhez képest csak annyi előnye van, hogy halk, ha olyan, akkor zéró-átmenetnél kapcsol, egészen gyors váltásokat is tud csinálni (a relé ezt annyira nem kedveli), és jóval kisebb az áramfelvétele.

Előzmény: mekkGyver (2042)
Máma? Creative Commons License 2016.08.17 0 0 2045

Köszönöm a válaszokat!

 

Egy Mega-val szeretném megoldani a kivitelezést. Van hozzá relé modulom ami a leírtak alapján optocsatolós. 

Ebben az esetben azért lehet keresnivalóm? Úgy fog folyni a villany mint egyszer!

digium Creative Commons License 2016.08.17 0 0 2044

Tegyél minden ki/bemenetre optocsatolót, jó tápot és hibátlan lesz.

Előzmény: Máma? (2041)
Törölt nick Creative Commons License 2016.08.17 0 0 2043

Fűtés vezérléshez használom az Arduinót, egy Nano lappal, ami Unonak képzeli magát (bootloader csere) WTD aktív.

Csak SSR relékkel stabil, sima relével a WTD ellenére lefagyott, és nem indult újra, csak tápfeszt ki-be kapcsolva.

Előzmény: Máma? (2041)
mekkGyver Creative Commons License 2016.08.17 0 0 2042

Önmagában sajnos nem stabil, mivel a kapcsoláskor keletkező impulzusok (főleg ledes-neonos világításnál) néha megfagyasztják a kontrollert. Szükséges egy úgynevezett watchdog áramkör, ami ilyenkor újraindítja az arduinot, és a kapcsolók állapotát célszerű letárolni a memóriába, hogy reset után visszatérjen az előző állapotba. Így már egész használható tud lenni. Sok múlik a tápegységen és a vezetékelésen is. Saját tapasztalat, hogy asztalon hetekig működő kapcsolás élesben katasztrofális viselkedést produkált, igaz nálam a lámpák 90%-a ledes, amiben a kapcsolóüzemű táp nagyot tud "visszarúgni" induláskor. Én diakos optoval leválasztott triakot használok ilyenre (szilárdtest relé / SSR), de lehet, hogy sima relével nem lenne ilyen érzékeny, de azt nem tartom hosszú távon megbízhatónak.

Előzmény: Máma? (2041)
Máma? Creative Commons License 2016.08.16 0 0 2041

Sziasztok!

 

Zsenge vagyok még Arduinoban, DE nagyon tetszik! Azt szeretném kérdezni, hogy szerintetek 7/24 stabilan működne-e a szerkezet ha komplett lakás világítást (kb 13-15 kör villany) szeretnék rákötni? Kezdetben egy sima nyomógombos koncepcióval. 

 

Üdv néktek!

Prof Creative Commons License 2016.08.10 0 0 2040

Hű, van like gomb. :-)

Teljesen egyetértek.

Előzmény: mekkGyver (2039)
mekkGyver Creative Commons License 2016.08.10 0 1 2039

Biztos vagyok benne, hogy halott ötlet! Nem véletlen, hogy a hardveres ASIO kártyák jóval drágábbak, mint a szoftveres megoldások. A zenében nagyon kis késés (latency) is zavaró tud lenni, ezért fontos a gyors eszköz. Az arduino önmagában nem lenne lassú, de a sok port bővítő meg D/A kiolvasása több ms késést eredményezne, ami tuti, hogy az élvezhetőség határán túl lenne. Persze ez akkor fontos, ha a VST hang real time szólal meg, ha csak rögzítésre kell, akkor persze jóval nagyobb késés is elfogadható. Nem tudom mire kellene pontosan a szerkezet, de ha zenéléshez, akkor a billentyűzetet egy régi jó minőségű elektromos zongorával oldanám meg, a potikat/kapcsolókat meg virtuálisan valami érintőkijelzőn pl.

Előzmény: T_szerel (2026)
Prof Creative Commons License 2016.08.10 0 0 2038

Hali,

Ez egyrészt kiváló, elteszem, köszönöm.

Másrészt. Fogalmilag én kettészedném az I/O portsokszorozást (a szimpla I/O portokat kiköltözteted egy adatbusz végén ülő elemre) és a mátrixot (áramköri elemek ki- és bemenetekre való ügyes felfűzésével ki- és bemeneteket spórolunk, 12 gomb beolvasásához így nem 12 port, hanem csak 7 db kell [16-hoz 8, ami fele annyi]).

Azok a multiplex IC-k, amiket posztoltál a két feladatot többé-kevésbé egyszerre oldják meg (van ilyen millió féle, max7221-ből vagy két tucat van itthon, MCP23017-ből is van 2-3 darab legalább). Számomra a multiplexing a mátrix (legalábbis a posztban erre gondoltam), ott pedig tudomásom szerint kevéssé életszerű potmétereket a bemenet forrásaként használni.

 

Előzmény: digium (2028)
Prof Creative Commons License 2016.08.10 0 0 2037

Hali!

Itt már osztott észt más is mbed viszonylatban (annó kb. 1-1,5 évvel ezelőtt a "melyik nagyobb szar, az Arduino vagy az RPi" témakörben). Akkor megírtam a tapasztalataimat az mbedről (Arduinoval összevetve), és ez most, 1,5 év után sem változott érdemben, pedig azóta 10-ből 8 fejlesztési feladatot mbeden csinálok, a maradékot Arduinón.

Annyiban lett szofisztikáltabb a véleményem, hogy HA csak egy megvalósítandó cél van ÉS van hozzá valahol egy teljes, jól dokumentált leírás ÉS inkább kezdő, akkor irreleváns, hogy min csinálja, egyébként elsősorban Arduino. Kivéve, ha programozói tapasztalata van C-ben, mert onnan az Arduino kódra visszatérni egy rémálom.
Tekintheted mindezt vitaindítónak is.

Előzmény: digium (2034)
Prof Creative Commons License 2016.08.10 0 0 2036

Nem blődség egyáltalán.

A portok száma kis jóindulattal irreleváns, a nagyobb gondot a billentyűleütések időbelisége adja. Illetve most rájöttem, hogy az sem annyira jó, ha van polifónia, mert az egyidejű több billentyű lenyomás multiplexingben annyira nem biztos, hogy nyerő, mert bizonyos billentyűkombinációkat vagy eseményeket félreértelmezhet. Alapvetően nem az a baj, hogy százas nagyságrendben kell bemeneteket lekérdezni, a gond azzal van, hogy ezeknek az ellenőrzése egy kissé körülményes (időigényes). Egy józan paraszti ésszel, szintaktikailag hibátlanul megírt szoftver futása egy alap arduino kártyán akár a tizedmásodperces ciklusidő közelébe is eljuthat (csak tipp, nem mértem, de hasonlóval volt már gondom), ami elfogadhatatlanul sok.

Több Arduinoval előrébb vagy, de az időzítést nem egyszerű megoldani. Két megoldásod van: vagy mindegyik Arduino egy Midi eszköz (a midi fordítást és csomagküldést kell megoldani), vagy az összes arduino össze van kötve adatcserére/gyűjtésre, és egy van, amelyik kvázi masterként továbbít a Midi portra. Egyiket sem magától értetődő megírni, de nyilván nem lehetetlen.

I2C egy másik történet. Alapvetően Master-Slave felállású többpontos perifériahálózatok hozhatók létre. Arduino környezetben se nem kifejezetten gyors, se nem kifejezetten megbízható, egy rosszabbul megírt könyvtárral meg rengeteget lehet szívni. Ugyanakkor vannak olyan áramköri elemek (portsokszorozók, multiplexerek), amelyek i2c protokollon címezhetők, így az Arduino oldalán csak két lábat foglal, és 2-3-4 ilyen elem egymás után kötve elvben rengeteg adat olvasható ki elég gyorsan. Ezzel érdemes lehet kísérletezni, ha nem is úgy, hogy 255 egyedi alkatrész van egymás után kötve.

Előzmény: Zizikus (2029)
halaloszto Creative Commons License 2016.08.10 0 0 2035

csak ikaruszt vezetni egyszerűbb megtanulni mint repülőt. pl többen vannak akiktől lehet.

 

Vajk

Előzmény: digium (2034)
digium Creative Commons License 2016.08.10 0 0 2034

Midi meg usbmidi kód van hozzá.

Szerintem egyszerűbb és kényelmesebb 100 embernek repülővel elmenni mondjuk Párizsba, mint két összevonórudazott Ikarus busszal...

Előzmény: halaloszto (2033)
halaloszto Creative Commons License 2016.08.09 0 0 2033

de ő nem 100+ cuccot akar programozni, hanem egyet. de ahhoz is kezdő. az arduinóban az a poen, hogy mindenre van kész kód, csak meg kell érteni. komplett midi keyboard kód is van, nem is egy. az mbedhez is van sokminden, de messze nem olyan nagy a community.

 

Vajk

Előzmény: digium (2032)
digium Creative Commons License 2016.08.09 0 0 2032

Van rá jópár fejlesztő környezet.

Neki bőven elég egy böngésző (felhő alapú): mbed.org.

http://www.youtube.com/playlist?list=PLWy-YwxbAu8FDpD2saP1p6IFHgvbzODyc

A kódja innentől 100+ fejlesztőkártyán fog működni.

Előzmény: halaloszto (2031)
halaloszto Creative Commons License 2016.08.09 0 0 2031

és hogyan fogja programozni? van rá arduino?

Előzmény: digium (2030)
digium Creative Commons License 2016.08.09 0 0 2030
Előzmény: Zizikus (2029)
Zizikus Creative Commons License 2016.08.09 0 0 2029

Abszolút kezdő vagyok ezért, ha blődséget írok akkor elnézést kérek.

 

Arduino port problémára:

 

1 Több Arduino lapot is lehet használni.

 

2 I2C protokoll nem jöhet szóba? Pl nem kell annyi bemenet, mert végigballag igen gyorsan minden rácsatlakoztatott ezközön (max 255), címez/olvas. Van keymatrix illesztő is I2C protokollal, azaz azt a lapot kötöd az Arduinora, a lap többi kimenete meg a billentyűk felé.

 

 

Előzmény: Prof (2027)
digium Creative Commons License 2016.08.08 0 0 2028

Analog multiplexer/demultiplexer ic-k:

4051 8:1

4052 2x4:1

Előzmény: Prof (2027)
Prof Creative Commons License 2016.08.08 0 0 2027

Szia,

A kártya elvileg alkalmas rá, multiplexelve pláne. Bár ez utóbbinak elvben hátránya, hogy viszonylag hosszú "vak" ideje lehet, amíg, bár nyomod a gombot, nem látja, hogy nyomod. (Részben csak feltételezem, az egyetemen nem hallottam.)

Potenciométert (analóg jelforrást) nem fogsz tudni multiplexelni. (A multiplex lényege az, hogy több csatlakozás egyszerre bemenetként és kimenetként is funkcionál, felváltva. Ha az egyik bemenetet aktiválod [magas állapot], akkor ha egy bizonyos gomb be van nyomva, akkor egy bizonyos kimeneten megjelenik úgyszintén egy magas jel, de a többin nem. Hátránya, hogy elvileg két gomb nem lehet egyszerre benyomva [azonos szálon lévők semmiképp]. A megoldással egy 4×3 gombos billentyűzethez nem 12 bemenet kell, hanem csak 7, pontosabban 3 ki- és 4 bemenet. A kiolvasás is egyszerűbb, mert soronként elég csak egy vizsgálat [van-e jel], és ha van jel, akkor kell megnézni, hogy pontosan hol -- szemben a sima 12 bemenetes, körönként 12 vizsgálatot tartalmazó beolvasással.)
Ha az idővel nem lesz probléma, megoldható a dolog szerintem, de ezt mérni és számolni kellene elég sokat.
Mindenképp modulonként írnám hozzá a szoftvert, és haa egy modul működik, akkor mennék tovább a következőre.

Üdv.

Előzmény: T_szerel (2026)
T_szerel Creative Commons License 2016.08.08 0 0 2026

Szia!

 

Köszönöm a linkeket. Pontosan ilyesmit szeretnék.

 

 

Egészen pontosan:

 

két manuált 3,5 oktáv billentyűzetet  2 * 44 sima kapcsoló, mert orgonánál nincs dinamika :)   

két drawbart 2 * 9 potmétert

egy láb hangerő pedált 1 potméter 

és 9 sima kapcsoló ( rotari, lesli stb ) 

 

kellene beolvasnia és lefordítani MIDI-re. Csak kimenet a számítógép felé, mert a hang a PC-n egy VST hangszeren keletkezik.

Úgy tervezem, hogy a két billentyűzetet egy-egy multiplex olvassa.

A két potméter sort is egy-egy, ha egyáltalán lehet ilyet csinálni.

 

Egy Mega2560-s panelt szereztem be erre a célra. Szerinted eltudja látni?

Előzmény: Prof (2025)
Prof Creative Commons License 2016.08.07 0 0 2025

Szia,

Csak műszaki tekintetben is elég jelentős kihívás. Tegyük most félre, hogy egy szál billentyűnek hány féle paramétert kell rögzítenie a sima "le van nyomva a billentyű" állapoton túl. A következő menet az, hogy ebből alapból ugye 88 darab van, ami oktávonként 13-mal csökken. A legtöbb midi billentyűzet 4 oktávos, ami 52 gombot jelent. Plusz egy analóg bemenet (ha csak egy potmétered van). Ez testvérek között is 53 bemenet, plusz a ki/bemenet a midihez (2 port). Ezt önállóan csak a nagyobb cuccok tudják (Mega, Due stb.).

Ez a hardveres rész. A szoftveres részben az a nehézség, hogy az összes szükséges bemenet állapotát egyszerre kell figyelni, és mivel 54 van belőlük, ez egy felettébb időigényes művelet, amit tovább lassít a midi feldolgozás és illesztés (elég időérzékeny a midi, bár azt most nem vágom, hogy egy nagyságrenden belül vagyunk-e vagy van az Arduinóban tartalék, az a tippem, hogy ha van is, csak minimális).

Itt van egy példa, de ez esetben multiplexelve vannak a billentyűk (szokásos eljárás, de az időfaktor itt is elég erősen játszik): http://www.midikits.net/midi_8x9_keys/midi_8x9_keys.htm

Leírás az Arduino.cc-ről: https://www.arduino.cc/en/Tutorial/MidiDevice

 

Előzmény: T_szerel (2024)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!