-
IT café
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
-
bacus
őstag
Valamit kerversz, mert az arduinora a kódot egyszer kell feltölteni (előtte megirni), utána az ha tápot kap, akkor csinálja amire programoztad.
Ennek az egész projektnek nem igen látom értelmét, mert itt a notebookról kell mindenképpen lejátszani, és azon kell fusson egy szoftver, ami átadja az adatokat az arduiononak.
Nekem inkább ez tetszik, ennek látom értelmét https://www.youtube.com/watch?v=tRDAzJrfZiM#t=287
Persze itt is van gond, mert ez ugyan teljesen egy raspi on fut, de ennek meg hdmi bemenet kell, azaz a normál tv még nem lesz ilyen ambilight rendszer, rtl klubot nem nézheti igy az ember...
Nem tudom, hogy a modern tv-k kinyomják e magukból scarton, vagy kompositon vagy akár hdmi-n a jelet (mert a régi tévék közül sok ment úgy, hogy a videoval a tv tunerjének a jelét vettem, az ugyanis jobb tuner volt, mint ami a videokban volt)Kössünk egyezséget, megegyezős egyezséget... https://www.paypal.me/engiman/30
-
nagyúr
válasz daninet #13679 üzenetére
Állapotgép. Egy végtelen ciklusban minden alkalommal beolvasod a bemenet értékét. Kell egy változó, amit még a ciklus előtt deklarálsz, és amiben az előző állapotot tárolod. A beolvasás után összehasonlítod az aktuális állapotot az előző ciklusban elmentett állapottal, ha nem egyforma, akkor végrehajtod a feladatot, amit változáskor kell lefuttatni, felülírod az előző állapotot a mostanival és kész.
-
M@nH.
aktív tag
válasz daninet #13679 üzenetére
Szia
Szintén kezdő vagyok, de ha jól értem valami ilyesmit szeretnél.bool buttonState = 0;
bool lastButtonState = 0;
void setup()
{
pinMode(2, INPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
buttonState = digitalRead(2);
if (buttonState != lastButtonState)
{ if (buttonState == HIGH)
{
Serial.println("on");
}
else
{
Serial.println("off");
}
delay(5);
}
lastButtonState = buttonState;
}
-
Dißnäëß
veterán
válasz daninet #13687 üzenetére
Nemrég lettem kész egy picivel, erősítőbe standby gomb on/off implementáció, zajszűréssel (Examples -> Debounce) együtt, mivel az nyomógomb. (Görgess lentebb, megtalálod a nagy üdvrivalgásomat). Eddig jó, sokat megy.
Cimbi geotermikus, napenergiás és mindenféle vegyes modern rendszert vezérel Pi-kkel meg egy raklap Arduino-val egy hotelnek és a teljes "rancsnak" (minden melléképület, uszoda, stb). Hőmérséklet, pára, mindenféle figyelések, szivattyúk, stb. komplett a teljes hóbelevanc vezérlése. Hibátlanok, betonstabil évek óta az egész. Fontos a jó táp, áramfelvételekre ügyelni, ha relék is vannak, + környezeti jellemzőkre, ha nem csak házon belül lesz 21 fokon, azért ezek alapjáraton nem durván Szibériába szánt kütyük. Ilyen alap dolgokat betartva teljesen megbízhatóak, elmondása szerint. Ahol kell, olyan dobozba tette őket, medence közelben, párás helyen, ilyesmiknél, de ez a már említett alapdolgok tartozéka, szóval ha gyári speckókon belül maradsz (bőven belül), elvileg hibátlan.
POKE 16017,44 ..... SYS 2077
-
Atamano
csendes tag
válasz daninet #13687 üzenetére
Az Arduino az egy fejlesztő környezet. Ezzel a fejlesztő környezettel kompatibilisek az Arduino-t fejlesztő cég saját lapjai és ezek kínai klónjai.
A fejlesztő lapon található mikrokontrollerek pl atmega328p normál körülmények között 20 éves időtartamra számolva alacsony meghibásodási százalékot garantál a gyártója (Atmel).
Csak gondolj bele,hogy mennyi 20-30 éves 8 bites konzol muzsikál jól még manapság is.
Természetesen a várható élettartamot erősen befolyásolja a nyáklapon található egyéb alkatrészek száma,fajtája. Pl szerintem az elektrolit kondenzátorok hamarabb adják meg magukat.
Azonban leszögezném,hogy minden egyes kínai klón alapvetően egy nagy big black box,mert ezeket a költséghatékonyság jegyében állították elő.Tehát a legolcsóbb készleten lévő alkatrészekből. Amivel nincs is baj addig,amíg az ember csak led villogtatásra használja a lapokat.Ahhoz aztán tényleg csak annyi kell,hogy működjön.
Itt csak,akkor kezdődik a baj,amikor mindenre is ezeket akarjuk felhasználni.Az oke lenne,ha a prototípust tervező asztalon próbapanelon összerakjuk, teszteljük.Arra viszont felvonnom a szemöldökömet ,amikor egy uno nyáklap dupont csatlakozóit + egy rakat ragasztót felhasználva készülnek komoly feladatok kivitelezésére eszközök.
Ettől ne várjunk már megbízhatóságot,hosszú élettartamot meg minőséget. -
daninet
veterán
válasz daninet #17805 üzenetére
kiírtam a két láb pulzusát, hogy lássam mi történik. Ha balra ha jobbra tekerem ez a kimenet:
Ez egy darab fordítás18:52:07.316 -> DT: 1 CLK: 1
18:52:07.349 -> DT: 1 CLK: 1
18:52:07.349 -> DT: 1 CLK: 1
18:52:07.384 -> DT: 1 CLK: 1
18:52:07.384 -> DT: 1 CLK: 1
18:52:07.417 -> DT: 1 CLK: 1
18:52:07.417 -> DT: 1 CLK: 1
18:52:07.451 -> DT: 1 CLK: 1
18:52:07.451 -> DT: 1 CLK: 0
18:52:07.485 -> DT: 0 CLK: 0
18:52:07.485 -> DT: 0 CLK: 0
18:52:07.520 -> DT: 0 CLK: 0
18:52:07.520 -> DT: 0 CLK: 0
18:52:07.553 -> DT: 0 CLK: 0
18:52:07.553 -> DT: 0 CLK: 0
18:52:07.587 -> DT: 0 CLK: 0
18:52:07.587 -> DT: 0 CLK: 0
18:52:07.620 -> DT: 0 CLK: 0
18:52:07.620 -> DT: 0 CLK: 0
18:52:07.655 -> DT: 0 CLK: 0
18:52:07.655 -> DT: 0 CLK: 1
18:52:07.688 -> DT: 1 CLK: 1
18:52:07.688 -> DT: 1 CLK: 1
18:52:07.721 -> DT: 1 CLK: 1
18:52:07.721 -> DT: 1 CLK: 1
18:52:07.754 -> DT: 1 CLK: 1
18:52:07.754 -> DT: 1 CLK: 1
Miért vegyem meg, ha 3x annyiért, 3x annyi idő alatt megépíthetem? ´¯`·.¸¸.·´¯`·.¸><(((º>
-
biker
nagyúr
válasz daninet #17808 üzenetére
Aryes leírta, de a rotaryk lapján is ott a metódus, 0101 vagy 1010 a forgatás, plusz van félosztású rotary is.
Kell hozzá feldolgozás, hogy a bejövő 0101 az CW a kimenő és jó lesz
a néha visszaforgás jelaz meg olyan hiba ha félosztásba rakod és 0101 0101 0110 jön véletlen
és szimulátor kormányokhoz építek lapokat, azokon kitapasztaltamElektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
Undoroid
őstag
válasz daninet #17836 üzenetére
Szia!
Csak halkan kérdezem meg: zsír új az enkóder?! Honnan kap tápot ez az egész masina? Nem lehetséges, hogy egy kapcsoló üzemű tápegység 'zaja' (f)okozza ezeket az anomáliákat?
Ha van lehetőséged, akkor próbáld meg szűrni közvetlenül az enkóder betápját egy 1000uF/10V elkóval és egy 100nF/50V-os kerámiakondival! Hátha csak ennyi a probléma...vagy -első körben- mehetne ugyanez a mikrovezérlő betápjára (is) Kezdő lévén sajnos más ötletem nincs![ Szerkesztve ]
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
-
ekkold
Topikgazda
válasz daninet #17860 üzenetére
Minden mechanikus kapcsoló hajlamos egy olyan jelenségre amit "prellezésnek" hívnak. Fizikailag amikor az érintkezők összeérnek akkor rugalmasan torzulnak, majd az érintkező visszapattan, az áramkör megszakad majd újra összezáródik (akár többször is egymás után). Ez általában ezredmásodperces időtartományban zajlik (vagy akár 100usec tartományban). Emberi szempontból ez nagyon rövid idő, de digitális elektronikák szempontjából ez sok idő, simán észreveszi az áramkör és megpróbálja feldolgozni - ami alaphelyzetben hibás működéshez vezethet.
Két megoldási lehetőség van:
- Szoftveresen felkészülni a prellezés kezelésére - ahhoz hogy ez jól működjön nem lesz elég egy egyszerű kód. Persze megoldható teljesen jól is, csak az nem pár soros programrész lesz (készítettem már ilyet).
- A prellezés hardveres kezelése: a kontaktusokra kapcsolt felhúzó ellenállások után egy megfelelő időállandójú R-C szűrő is kell (ilyenkor a belső felhúzó ellenállást ki kell kapcsolni). Ez több alkatrészt igényel, viszont a szoftver viszonylag egyszerű maradhat.
Ha a programozás nem az erősséged, akkor a hardveres megoldás a könnyebb út, mivel az egyszerű áramkört igényel... Már én is elgondolkoztam rajta, hogy nekem is egyszerűbb lett volna hardveresen megoldani, mint szoftveresen, csak akkor már a hardver kész volt, így nem volt választásom.Eladó: https://www.hobbielektronika.hu/apro/apro_159350.html
-
ekkold
Topikgazda
válasz daninet #17860 üzenetére
A kapott adatokról: a programod soros portra küldi ki amit kap, viszont a soros portra írás ideje összemérhető (vagy akár hosszabb) mint az enkóder impulzus-ideje. Ezért össze kellene gyűjteni egy csomó adatot és egyben kiírni - vagy méginkább egy megfelelő programmal számlálni az enkóder lépéseit, és csak a számláló változása után kiírni az értékét.
Eladó: https://www.hobbielektronika.hu/apro/apro_159350.html
-
őstag
válasz daninet #17864 üzenetére
Mindenféle kódot mellékelve, használj egy multimétert az enkóder kivizsgálására.
Adatlapja szerint vagy 10K ellenállást kell mérned a + pin irányba, vagy zárlatot a GND-re.
Nézd meg épp hogyan áll, és mozdíts egy ugrást rajta (gondolom diszkrét pozíciói vannak, 20 impulzus nem sok) majd nézd meg újra. Csak az egyiknek kellene változnia.
Ugyanitt elkövetheted azt is, hogy digitális pin helyett analógra kötöd, és az analóg értéket írod így ki sorosan, hogy lásd valóban analóg zaj van az enkóderen, vagy digitális.Mások számára a kondi fáradós, nekem farad-os...
-
ekkold
Topikgazda
válasz daninet #17864 üzenetére
1, Valószínűleg fizikailag vagy nincs az enkóder panelján felhúzó ellenállás, vagy túl nagy értékű.
2, Mindenképpen kell felhúzó ellenállás (akár belső, akár külső) mert különben lebegni fog a bemenet és mindenféle zavart összeszed.
Felhúzó ellenállással valószínűleg azért nem működik amit írtam - mivel kicsi az esélye, hogy két különböző helyről, két különböző enkóder is hibás lenne.Eladó: https://www.hobbielektronika.hu/apro/apro_159350.html
-
ekkold
Topikgazda
válasz daninet #17868 üzenetére
Ha felhúzó ellenállással nézzük akkor egyetlen lépésre ezt kellene kapni:
11 (mindkét kontakt nyitva)
01 (egyik kontakt zár)
00 (másik kontakt is zár)
10 (első kontakt bont)
11 (második kontkt is bont)
A másik irányba forgatva, a 01 és az 10 állapot fordított sorrendben jön.A kis panelen ugye bekötötted a GND-t és a +Tápot is az arduino panelre?
Eladó: https://www.hobbielektronika.hu/apro/apro_159350.html
-
biker
nagyúr
válasz daninet #17872 üzenetére
az a baj, nem tudom mit csinálsz rosszul, sőt abban sem vagyok biztos, hogy rosszul működik, csak nem az elvárt eredményt kapod és az zavar, holott a jó működés van, csak mást szeretnél.
Én tucatszám rakok össze buttonboxokat, kormány vezérlő panelt (simhez) és sosem volt még gond rotaryval
de használtam saját terhelés megosztóhoz is rotaryt, na ott kicsit macerás volt, mert a megszakítások gondot okoztak, de végül jó lettA képen a legutóbbi rendszer, 2 arduni, 8 rotary, 28 nyomógomb + 4 rotary nyomógomb, LCD és RGB led kijelző
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
nagyúr
-
And
veterán
válasz daninet #17957 üzenetére
Ehhez nem kell feltétlenül analóg kimenet. Egy kellően magas frekvenciásra állított PWM-kimenet és egy külső aluláteresztő / integráló szűrő (egyetlen RC-tag formájában) is megfelelő lehet. A kitöltési tényező változtatásával az RC-tag után egy változó DC-szintet kapsz. Ha a PWM-kimenet 5V-os, akkor 0..100% kitöltésre 0..5V DC-t kapsz.
-
And
veterán
válasz daninet #17959 üzenetére
Képtalálatok: [link], itt tényleg csak az RC-tagok (a jelúttal soros R- ill. utána a 0V felé kötött C-tag) érdekesek. A konkrét értékük több tényező függvénye lehet, mint pl. a PWM frekvenciája, a szükséges időállandó (R*C érték) vagy épp a vezérelt áramkör bemeneti impedanciája. Ha a PWM frekvencia és a fogadó áramkör impedanciája kellően magas, akkor elég széles tartományból válogathatunk, de alapesetben néhány kΩ és pár µF megfelelő.
-
Undoroid
őstag
válasz daninet #18003 üzenetére
Szia!
" Ráadásul ha megy a serial monitor nem tudja bezárni és hibát dob kód feltöltésnél, eddig ez sem volt " Ez nálam akkor fordult elő, amikor rájöttem arra, hogy behalt az adatkábelem... vagyis akkor, amikor egy régen feltöltött kódot szerettem volna lecserélni az új adatkábelemmel, amiről végül kiderült, hogy kizárólag csak akkutöltésre való! Feltöltéskor szépen elindult a program fordítása és ment volna át a vezérlőre, de az nem indult el, hanem hibával zárult! Röviden: cserélj adatkábelt és nagyon valószínű, hogy el fog múlni a problémád!
Egy gondolat: nem ez okozta a múltkori rotary-enkóderes anomáliát is?
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
-
Undoroid
őstag
válasz daninet #18008 üzenetére
Értem...sajnos az ok elhárításában segíteni nem tudok! Minden esetre elég érdekes!
* * *
Ha már itt járok, akkor kérdeznék is: szereztem egy W88-C szolár töltésvezérlőt (nagyon valószínű, hogy klón) ami úgy tűnik, hogy feladta a harcot. Nem volt füst! Megy is, de nem állítja meg az akku töltését, ha már elérte a beállított max értéket! A kijelzőn továbbra is a töltést jelzi és végre is hajtja! Ennek a központi egységét szeretném rendbe tenni! Nos, erről a vezérlőről nem találok semmit: UH3887 (esetleg VH3887) QSOT-tokos és 24lába van. LCD-kijelzőt hajt meg, a kezelő gombokat figyeli és a töltő FET-ek vezérlését is felügyeli! Amiért itt kérdeztem meg: a panelon van kialakítva egy olyan hely, amin keresztül programozni lehet a központi egységet! (összesen 4pólus, ebből kettő a belső tápfesz...) Ismeri valaki ezt a vezérlő IC-t?
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
-
ViZion
félisten
válasz daninet #18035 üzenetére
Ha ennél a résznél:
else if ((digitalRead(ON1_pin)== HIGH)...
elhagyod a feltételeket, csak simán:else
currentSpeed = 0; digitalWrite(Relay_pin, HIGH); targetPWM = PWMspeed0;
lenne?[ Szerkesztve ]
Hold on, trying to give a fuck... Nope, not Happening • Powered by Fedora Linux • "Az élet olyan sz@r, szerencsére a felén már túl vagyok" Al Bundy
-
Tankblock
aktív tag
válasz daninet #18038 üzenetére
Ha csak 3 eshetőség lehetséges akkor nem látom értelmét az egész if else résznek.
Olvashatatlan.....Hozzáteszem szerintem egyszerűbb lenne ha egy tömbbe beletennél az egész változó kavalkádot és a pinek kilovasása után a tömb azon elemét címeznéd meg ahányadik.....
Majd az így kapott paraméterhalmazzal 1x megtetnéd ugyanazon fvnyeket.....nem lennének átláthatatlan feltételeid.....
Kapcsoló végett nézheted az állapotát csak 50 [ms]enként és probléma megoldva....Csak próbálok segíteni....
Release the Beast....
-
Tankblock
aktív tag
válasz daninet #18041 üzenetére
Szia,
nem az a lényeg hogy spóroltál-e, vagy sem.
A jó arhitechtúrának nem az a célja hogy spóroljunk.
Átlátható-e, és bővíthető-e más elemekkel ha szükséges később, pl 4 állapotra, vagy még egy változó kezelésével.
Ha előveszed 1 év múlva mennyi időt fogsz a kódod megértésével tölteni...
Itt jön elő az hogy milyen a kód minősége.
Nem állítottam hogy spórolsz vele, csak azt hogy olvashatóbb lenne.mint írtam csak próbálok segíteni.
Release the Beast....
-
-
ViZion
félisten
válasz daninet #18047 üzenetére
Nálam minap vetődött fel -csak elfelejtettem bárhol utánajárni - hogy router + modem + switch + NAS + egyéb kis trafó van bedugva, nem lenne vajon hatékonyabb, ha PC tápról (az is ott van, molexről csak ki kell vezetni) kapna 12 V-ot, aminek az kell és step-down-al 5V-ot (táp 5V ága nem szokott erős lenni, de nem néztem alaposabban), aminek az kell?
Egy baCCot nagy elosztót nyernék vele, ami most ott van... de hatékonyságban melyik lenne a jobb? Valaki foglalkozott ilyesmivel?Hold on, trying to give a fuck... Nope, not Happening • Powered by Fedora Linux • "Az élet olyan sz@r, szerencsére a felén már túl vagyok" Al Bundy
-
nagyúr
válasz daninet #18051 üzenetére
Az enyém ragaszkodott hozzá, hogy minden ledcsík külön tápon legyen és a villanykapcsoló a tápot kapcsolja, nem a szalagot. Nálad ha gond van, egyszerre fog kimenni mindenütt a világítás.
A routerem mostanában sokat vacakol, lehet nálam is táp gond van? 🤔 Kösz a tippet! -
Tankblock
aktív tag
válasz daninet #18045 üzenetére
// init parameters
int aiParameters[3][5] = {
{1,2,3,4}, // switch state 1
{5,6,7,8}, // switch state 2
{9,10,11,12} // switch state 3
};
// Ha különbozők kellenek akkor marad a struct
struct myParameters {
bool isNoGood;
double dRandomValue;
int iIntegerMe;
};
myParameters myParam[] = {
{isNoGood = true, dRandomValue = 0.0, iIntegerMe = 1},
{isNoGood = false, dRandomValue = 0.1, iIntegerMe = 2},
{isNoGood = true, dRandomValue = 0.2, iIntegerMe = 3}
};
int giSwitctState = 0;
giSwitctState = ReadSwitch();
// itt hívódik 1x ami kell
funcPntr_set(aiParameters[giSwitctState][0],aiParameters[giSwitctState][1],aiParameters[giSwitctState][2],aiParameters[giSwitctState][3]);
//vagy itt
funcPntrMagic_set(myParam[giSwitctState].isNoGood);Na valami ilyenre gondoltam....
A sok ifből generált jumpok helyett egy sorfolytonos dolog lesz. Bővíteni nem nehéz, remélem átmegy a lényege. Esetenként nézd meg melyik mekkora kódot generál. If else megoldás és ez....Release the Beast....
-
őstag
válasz daninet #18051 üzenetére
A nem okoz tüzet részhez azért szerényen állnék, de legalábbis nem versenyeztetném a 230VAC-val.
- 24VDC esetén ugyanarra a teljesítményre tízszeres áram szükséges. Ehhez jelentős keresztmetszet növelés kell(het) a veszteségek csökkentésére. Persze LED fényforrásból 100-200W már jelentős, ami még mindig 10A alatt lesz.
- De a tartós üzemi áram miatt a hibaáram elenyészővé válik. Például keletkezzen egy hibás kötés miatt egy zárlat, aminek 24Ohm az ellenállása. 24V esetén ez 1A zárlati áramot okoz, ami semmiség az üzemi 10A-hez képest, így a táp vígan dolgozik tovább, és 24W-al fűt a zárlatos pont. (A 10W-os USB-s pákám is elég a tűzgyújtáshoz).
Ugyanakkor ez a 24Ohm-os zárlat 240V esetén 10A, ami tízszerese az előbb feltételezett 240W-hoz számolható ~1A üzemi áramnak.
- A tartósan magas üzemi áram esetén nem csak a zárlat veszélyes, hanem az ívhiba is. Egy kilazult kötésnél a megnövekedő átmeneti ellenállás, adott esetben kontakthiba melegedéshez, ívképződéshez vezet úgy, hogy az áramfelvétel nem haladja meg a normális értéket. DC esetén az ívhiba különösen veszélyes, mert nincs nullátmenet, ami megszakítaná az ív fenntartását.Ezzel persze nem azt mondom, hogy rossz dolog a DC hálózat, de egyáltalán nem máz és hab, megvannak a hátrányai is, éppen ezért nem egy elterjedt dolog a mai napig sem.
Mások számára a kondi fáradós, nekem farad-os...
Új hozzászólás Aktív témák
- HP VICTUS 16,1" Full HD 144 Hz, i7-11800H, 16 GB, 512 GB SSD, RTX 3060 6 GB
- Eladó bontott dell, lenovo, hp alaplapok
- ASUS ROG STRIX Z690-A DDR4 White fehér garanciával
- 1060 6GB, Logitech G PRO X Superlight - Nem használt, hibátlan cuccok eladása brutálisan áron alul.
- DELL OPTIPLEX 3020 SFF PC, i5-4570 CPU, 8 GB DDR3 RAM
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen