Hirdetés

2024. április 20., szombat

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.hu

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.

Összefoglaló kinyitása ▼

Hozzászólások

(#401) Pubszon válasza happy555 (#399) üzenetére


Pubszon
veterán

Utána fogok olvasni, egyelőre ezt feladom, semmire sem jutottam vele. :O

(#400) g0dl: Itt van.

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#402) g0dl válasza Pubszon (#401) üzenetére


g0dl
addikt

Köszi, ezzel megy

(#403) tvamos válasza Pubszon (#386) üzenetére


tvamos
nagyúr

Azert, mert nem szabad! Es amit szabad, az sem dragabb, tehat felesleges is!

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#404) Pubszon válasza tvamos (#403) üzenetére


Pubszon
veterán

Most már tudom, de lassan egy éve, hogy megvettem.
El nem fogom dobni, majd csak jó lesz valahova. :K

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#405) Pubszon


Pubszon
veterán

Na végül sikerült megcsinálnom, 2 gombot már be is programoztam, van benne pár felesleges parancs, de már csak finomitanom kell rajta. :)

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#406) happy555 válasza Pubszon (#405) üzenetére


happy555
aktív tag

:)
Ugye h megy az!
Egy progi sosincs kész, ha kreatív vagy :K

[ Szerkesztve ]

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#407) Pubszon válasza happy555 (#406) üzenetére


Pubszon
veterán

Hát igen, még lesz 2 szabadon felhasználható gomb, nem tudom mi lesz velük, de valami biztos. :D
Amúgy az RCSwitch-el sikerült.
Nélkületek tuti nem jött volna össze. :R
Ez a projekt lassan kész, de találok ki másikat. :D
Mondjuk a kapuba nem az UNO-t fogom berakni, hanem úton van 2db NANO.

Na de lenne még két részben ide tartozó kérdésem.

1. Az RF receiverre milyen antennát rakjak, mert jelenleg pár méter a hatósugara antenna nélkül.
Gondolom a bal alsó sarokba lehet forrasztani.

2. Szilárdtest relével egyenáramot is lehet megszakítani ha azon csak váltóáram van feltüntetve?
Például.

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#408) happy555 válasza Pubszon (#407) üzenetére


happy555
aktív tag

Igen oda kell forrasztani.
Az antenna hosszáról több adatot is találni ebben a videóban is láthatod. Van ahol 17cm-t írnak, nem tudom melyik jobb.
Szerintem elmegy a relé dc-vel is, de lehet nem terhelheted annyira. Van belőle dc változat is, inkább azt vedd!

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#409) schawo


schawo
titán

Nekiugrok egy új projektnek:
Arduino alapú repülőgép vezérlőpanel MS Flight Sim X és Lockheed Martin Prepar3d szimulátorokhoz.

Az alkatrészlista összeállítása megvan, és jórészt a kód is, egyelőre fejben. A héten rendelem be Kínából a szükséges alkarészeket. Ha minden jól sikerül, akkor a tervek között van kereskedelmi terméket csinálni belőle. Persze újratervezett vezérlő elektronikával, akkor a protoboard kilőve.

Ilyenek lesznek az előlapok:

[ Szerkesztve ]

evDirect villanyautós töltőhálózat

(#410) Pubszon válasza happy555 (#408) üzenetére


Pubszon
veterán

A videóban 24cm-t hallok a vevőre.
Rakok rá egy ilyet, ha nem lesz olyan jó akkor levágom 17cm-re.

Nem akarok azért venni relét, van itthon 2db AC változatú.

(#409) schawo: Na, ez nem semmi! :)

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#411) happy555 válasza schawo (#409) üzenetére


happy555
aktív tag

Segíthetek? :)

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#412) schawo válasza happy555 (#411) üzenetére


schawo
titán

Hmm, hogyne. Bár egy ilyen kérdésre nem számítottam. :) Miben tudnál segíteni, és hogyan? Bármilyen segítséget elfogadok :)

evDirect villanyautós töltőhálózat

(#413) happy555 válasza schawo (#412) üzenetére


happy555
aktív tag

Segíteni tudok mindenben:
Forrasztásban, vásárlásban, nyáktervben, cnc-ben, grafikában, programozásban,agyalásban, babérok learatásában,a milliók elköltésében.

Miben kéne?
;]

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#414) schawo válasza happy555 (#413) üzenetére


schawo
titán

evDirect villanyautós töltőhálózat

(#415) Goldrox


Goldrox
újonc

Sziasztok
Az arduino 328 pro mini táplálható közvetlen 12V ról???

(#416) happy555 válasza Goldrox (#415) üzenetére


happy555
aktív tag

[Igen]

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#417) Pubszon


Pubszon
veterán

Azt hogy tudom megcsinálni, hogy az if ciklus addig fusson míg egy feltétel nem teljesül (ez tiszta) vagy mondjuk 15 másodperc? Tehát az idő a lényeg.
Ehhez ha jól tudom kell egy óra modul? Ha ige, akkor jó egy DS1302 chipes?

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#418) Danex válasza Pubszon (#417) üzenetére


Danex
addikt

Azt hiszem van egy parancs amivel az Arduino számolja hány másodperce (vagy más időegység) van bekapcsolva (Uptime), szerintem ez is használható lehet hozzá, bár sose próbáltam és amúgy engem is érdekel, hogy az ilyen időzítésekhez mindenféle képen kell-e az óra modul. :F

(#419) JozsBiker válasza Danex (#418) üzenetére


JozsBiker
aktív tag

Itt van rá példa:

[link]

(#420) tvamos válasza Pubszon (#417) üzenetére


tvamos
nagyúr

Az nagyon jo cucc, nyugodtan megveheted!

Ha nem feltetlen akarsz penzt kolteni, bar tudom, van az ugy, akkor a millis() a te baratod! A peldaban ott van, hogyan hasznald.

A masik kerdest nem ertem. State machine-ekkel csinalod a programod? Mert akkor nem lehet kerdes... De jobb a switch-case...

Amugy ciklust while-al!

Minden keppen jo, ha megnezegeted a doksit. Legalabb gyakorlod az Angolt is! (Nem egy bonyolult szoveg.) Amugy a wiki-n legorgetsz alulra, es ott van ket (ingyenes!!!) tanfolyam, ha vegigcsinalod, profi leszel! (En, igy 18 ev szoszoles utan vegigolvasgattam, hogy tudjak velemenyt alkotni, es nagyon jo a TavIR!)

Ugyen nem valami ilyesmit csinalsz: [link]!!!

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#421) happy555 válasza Pubszon (#417) üzenetére


happy555
aktív tag

Lehet sokféleképp, a Ds1302 abszolút nem indokolt.
Ha meg akarod akasztani ezidőre a program futását akkor a while az embered amin belül figyeled hogy elérte-e a meghatározott millis() értéket, és mellé teszed || (OR) a másik feltételed.

if(.....){
unsigned long lejarat=millis()+15000;
while(millis()<lejarat || egyéb){
.........;
}
}

[ Szerkesztve ]

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#422) Pubszon


Pubszon
veterán

Köszi srácok, utána nézek akkor a millis() parancsnak, hogy értelmezzem.
Lassan, de tanulom. :)

(#421) happy555: Kipróbálom. A void setup() elé pedig beírtam, hogy long lejarat = 0;

else if (value == lampaON)
{
{
value = mySwitch.getReceivedValue();
digitalWrite(lampaPin, LOW);
unsigned long lejarat=millis()+15000;
}
while(millis()<lejarat);
digitalWrite(lampaPin, HIGH);
}

Mint korábban írtam, van benne felesleges dolog.
Így jó lesz szerinted? 15 másodpercig fog világítani ha jó értelmezem, aztán magától lekapcsol.

(#420) tvamos: A TavIR ingyenes tanfolyamát elkezdtem, bár még csak a 3. leckénél tartok. :)
Még kezdő vagyok, az if, do és a while parancsokat használom leginkább.

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#423) happy555 válasza Pubszon (#422) üzenetére


happy555
aktív tag

Huhhh, nagyon nem!
Tényleg csináld a tanfolyamot!
Sorry, de ez több sebből vérzik!
Ez nem több, mint delay (15000);

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#424) Pubszon válasza happy555 (#423) üzenetére


Pubszon
veterán

Igen, erre rájöttem. :(

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#425) tvamos válasza happy555 (#423) üzenetére


tvamos
nagyúr

Ha jol emlekszem, ott sem tanitjak a state machine-eket. Es nem is tudok ingyenes tanfolyamot, ahol tanitananak ilyesmit. Pedig hasznos eszkoz, es nem is bonyolult.

(#422) Pubszon
Nezd meg meg a break-et is, a while-hoz.

Ha jol emlekszem....
temp=mills()+1000;
while ( !button && (mills()<temp) ) ;

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#426) happy555 válasza tvamos (#425) üzenetére


happy555
aktív tag

Valahogy így javasoltam én is.
Csak annyi (esetleg) a baj vele, hogy megreked a progi egy lámpa vezérlése miatt, miközben lehetne jobb dolga is.

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#427) JozsBiker válasza Pubszon (#424) üzenetére


JozsBiker
aktív tag

A dolog lényege, hogy a ketyere léptet egy számlálót ezredmásodpercenként onnan hogy feszültség alá helyezed, egész addig míg ki nem kapcsolod ( jó, nyilván ha a számláló megtelt akkor nullába fordul és onnan folytatja, de az jó sok idő, kb. 50 naponként következik be ). Az időmérés úgy zajlik, hogy amikor el akarod indítani a mérést kiolvasod ennek a számlálónak a pillanatnyi értékét egy változóba a millis() függvénnyel. Ezzel tulajdonképpen "elmented az aktuális időt". Ezután pedig csak annyi a dolog, hogy figyeld, hogy a millis() -el kiolvasott érték és az általad a változóba elmentett érték ( tehát tulajdonképpen az aktuális idő és a lementett időpont ) különbsége elérte-e már az általad kívánt értéket, azaz a Te esetedben az 15000 ms -ot.
Nem kell várakozó ciklusban figyelni, elég ha a loop -on belül van egy lekérdezés és ha még nem teljesül a feltétel mehetsz tovább, a loop maga úgyis ciklikusan végrehajtódik. ( A belinkelt példát tényleg érdemes végigbogarászni, még ha az angol magyarázó szöveg nem is világos, a programot lehet értelmezni. )

(#428) tvamos válasza happy555 (#426) üzenetére


tvamos
nagyúr

Ha nincs mas dolga, minek menjen tovabb?

Amugy meg, ahol o tart a programozassal, meg ez is jo szerinem. Majd 1-2 honap mulva johetnek a state machine-ek, es akkor kiraly programokat tud majd irni! (Arduinon nem hasznaltam meg sosem, mert cask gyorsan osszeheftelni valamit mutatoba hasznalom.)

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#429) happy555 válasza tvamos (#428) üzenetére


happy555
aktív tag

Ok, azért tettem oda hogy: "(esetleg)"

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#430) Pubszon válasza JozsBiker (#427) üzenetére


Pubszon
veterán

Ha jól értem akkor kell egy jelenlegi idő(time) és egy késleltetési idő(lejarat).
És akkor tudom azt csinálni, hogy ha loopon belül megvizsgálom a time értékét (mondjuk 1.000.000ms) és a késleltetést mondjuk (5.000ms) akkor az addig fogja csinálni, amíg a time<lejárat+time lesz avagy 1.005.000 lesz a time.
Ezt értem is, de még azt nem tudom, hogy mit hol nézzek és hogy melyik paranccsal. :F

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#431) Pubszon


Pubszon
veterán

Na, de ezt is megcsináltam! :DD
A nem releváns ciklusokat és részeket nem rakom ide bele, csak ami érintett.

unsigned long lejarat;
unsigned long time;

void setup()

void loop()

time = millis();

if ((value != RFnyitas) && (value != RFzaras) && (nyitoGomb == LOW) && (zaroGomb == LOW)) // Tetlen allapot

{
value = mySwitch.getReceivedValue();
digitalWrite(iranyPin1, HIGH);
digitalWrite(iranyPin2, HIGH);
digitalWrite(jelzoPin, HIGH);
if (value == lampaON)
{
lejarat = time+2500;
digitalWrite(lampaPin, LOW);
}
if ((value == lampaOFF) || (time>lejarat))
{
digitalWrite(lampaPin, HIGH);
}
if(((millis()/500) & 1) == T) //tizedmásodperces ütemezés
{
T=!T;
digitalWrite(ledPin, T);
}
}

Nekem itt kb annyit segítetek mint amennyi egyéb infót a neten is találok.
Lehet fárasztó vagyok nektek, ezt nézzétek el nekem. :)
Köszi. :R

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#432) happy555 válasza Pubszon (#431) üzenetére


happy555
aktív tag

Nahh, jól van ! :)

egy longot (time) megspórolhatsz:

unsigned long lejarat;

void setup()

void loop()

if ((value != RFnyitas) && (value != RFzaras) && (nyitoGomb == LOW) && (zaroGomb == LOW)) // Tetlen allapot

{
value = mySwitch.getReceivedValue();
digitalWrite(iranyPin1, HIGH);
digitalWrite(iranyPin2, HIGH);
digitalWrite(jelzoPin, HIGH);
if (value == lampaON)
{
lejarat = millis()+2500;
digitalWrite(lampaPin, LOW);
}
if ((value == lampaOFF) || (time>lejarat))
{
digitalWrite(lampaPin, HIGH);
}
if(((millis()/500) & 1) == T) //tizedmásodperces ütemezés
{
T=!T;
digitalWrite(ledPin, T);
}
}

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#433) Pubszon válasza happy555 (#432) üzenetére


Pubszon
veterán

Így volt először, csak az egyszerűség kedvéért csináltam time-ot belőle. :)
Viszont továbbmentem és a késleltetés idejét egy változóval helyettesítettem, amit egy potival állítok, így a világítás idejét 1-5 percig tudom állítani, csak az a baj, hogy nem lineáris. :)

Most pedig ráállok az RPM számlálós témára, mert az aktuátorba meg van minden ami ehhez kell.
Ez is jó dolog, mert ha esetleg valami miatt megszorulna a kapu, akkor inkább állítsa le, mintsem leégjen valami. :)
Ha ehhez van valami tipped, ötleted, szívesen várom. :R

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#434) happy555 válasza Pubszon (#433) üzenetére


happy555
aktív tag

Map-tól majd lineáris lesz. :K

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#435) Pubszon válasza happy555 (#434) üzenetére


Pubszon
veterán

Ígycsináltam én is.
val = map(val, 0, 1023, 1000, 10000);
A poti állása szerint pedig: Minimumon 1 másodperc, középen kb 2-3, maxon pedig 10.
Szerintem maga a poti ilyen. :U

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#436) happy555 válasza Pubszon (#435) üzenetére


happy555
aktív tag

Akkor biztos.

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#437) Pubszon


Pubszon
veterán

Mai kérdésem.
Feltételnek hogy kell azt beállítani, hogy pl a ledPin, HIGH?

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#438) happy555 válasza Pubszon (#437) üzenetére


happy555
aktív tag

A kimenetként definiált láb állapota is visszaolvasható a digitalRead-el.

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#439) Pubszon válasza happy555 (#438) üzenetére


Pubszon
veterán

Köszi, sikerült, ezzel írtam egy új programot amit lehet bővíteni és nem fogja meg semelyik művelet, kivétel azt a néhány ezred delay-t. :) :R

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#440) Pubszon


Pubszon
veterán

Ezt a kódot honnan tudom megszerezni?

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#441) kagzer válasza Pubszon (#440) üzenetére


kagzer
aktív tag

Bocs, nem ide akartam. :D

[ Szerkesztve ]

(#442) kagzer válasza Pubszon (#440) üzenetére


kagzer
aktív tag

Biztos van ennél profibb megoldás, de ez is működik:

int pin = 9;
int led = 13;
int m_state = 0;
int ledState = 0;

int state()
{
return m_state;
}

bool setState(const int value)
{
if(m_state == value) return false;
m_state = value;
return true;
}

void toggleLed()
{
ledState = ~ledState;
digitalWrite(led, ledState);
}

void setup()
{
pinMode(pin, INPUT);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
}

void loop()
{
if(setState(digitalRead(pin)) && state()) {
toggleLed();
}
}

(#443) tvamos válasza Pubszon (#440) üzenetére


tvamos
nagyúr

Probalkozz igy: [link] [link]

En azert tennek bele egy kis prellmentesitest. (Debounce.)
Arduino-ban: File --> Examples --> Digital --> Debounce

Nyilvan megszamlalhatatlanul veges sok megoldas letezik... vagy forditva?

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#444) Pubszon


Pubszon
veterán

Köszi srácok, holnap kipróbálom ezt a verziót!
Sokat kerestem de mégsem találtam meg. :B

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#445) Pubszon


Pubszon
veterán

A pulseIn paranccsal barátkozok, minden oké is, de az a baj, hogy lebénítja arra az időre a működést amíg várja a pulzust.
Nem lehet úgy megoldani, hogy közbe mást is tudjon csinálni?

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#446) happy555 válasza Pubszon (#445) üzenetére


happy555
aktív tag

Azt mihez akarod használni?

Nem vagyok babonás, mert az szerencsétlenséget hoz!

(#447) Pubszon válasza happy555 (#446) üzenetére


Pubszon
veterán

Az aktuátorba van egy kör alaku mágnes, mellette egy reed relé.
És ahogy forog, egyfolytában nyit/zár. Ez gyárilag van benne, mert ha valamit oda zár vagy nagyon erőlködik, akkor a gyári tápegysége lekapcsolja és 3 másodperc után lehet újra elindítani.
A pulseIn parancs nem jó, mert olyan mint a delay, addig nem tudok mást csinálni vele, amíg le nem jár a beállított idő.
Viszont rátaláltam erre, de ez meg csak egyszer fut le, de annyiszor meg le kell, és utána nem nézi folyamatosan tovább.
Meg az utóbbit nem is tudtam igazából használni, csak soros monitoron néztem.
Ha nincs rá megoldás, akkor az van, hogy egy másik arduino panelt erre kell felhasználni. :U

Neked van erre valami ötleted? :)

[ Szerkesztve ]

ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...

(#448) tiggger


tiggger
csendes tag

Tisztelt hozzáértők.

Egy kérdésem lenne hozzátok.
Van egy sainsmart mega 2560 -as vezérlőm,és valamit sikerült hazavágnom benne :)
Az a helyzet,hogy 12 voltról simán működik,semmi gond.
Ellenben ha USB-ről kapja a feszt,legyen az PC vagy 5 voltos USB-s táp,akkor percek alatt lekapcsol,mert tűzforróvá válik az 5 V-os feszültség regulátor IC,illetve IC-k,Mert a nagy rohadtul és valamelyest a kicsi is melegszik....Van valakinek valami tippje?Nem lenne probléma,ha már feltoltam volna rá a kivánt programot,de sajna addig nem jutottam el :(
Ilyenkor az IC lábain 1,3 és 4,3 voltot mérek,nem is értem hogyan jut fesz az IC-be,azt hittem USB-s betápnál az kimarad a körből....
Segitségeteket előre is köszönöm...

....nem baj ha lassan haladunk,mert egyáltalán nem biztos,hogy jó felé megyünk....

(#449) JozsBiker válasza tiggger (#448) üzenetére


JozsBiker
aktív tag

Nem tudom a megoldást, de itt

[link]

a rajza, alul van egy komparátor és egy FET, ami elvileg úgy működik, hogy a komparátor kimenete kapcsolgatja a FET -et attól függően, hogy jön-e az USB felől feszültség vagy sem. Tulajdonképpen ez határozza meg, hogy az áramkör az USB tápról vagy külsőről működik.
Persze ezzel még nem magyaráztam meg semmit, hiszen - ha jól értem - amikor melegszik csak az USB van rádugva a panelra. A rajz bal felső sarkában vannak a táp IC -k, elvileg üzemszerű hogy az 5 V rájusson a kimenetükre.

(#450) tiggger válasza JozsBiker (#449) üzenetére


tiggger
csendes tag

Köszi,tételezzük fel,hogy értem amit irtál,bár ez nekem egy hosszabb folyamat lesz :),mivel ennyire azért nem vagyok otthon a témában :(
Minden bizonnyal rövidzárlatot csináltam,mert USB-ről túlhajtva nem volt,hisz csak PC-re dugtam...
A 12 voltos bemenetre raktak a gyárban túlfeszvédelmet,de az Usb-s ágra nem,ezért gondolom ott a problem,csak sajna nem tudom hol keresni....Nem is tudom érdemes e vele kinlódni....ha valami bagatel baja van,én meg rendelek egy másikat....hát..szét fog vetni az ideg :)Egyszerűen nem értem,hogyhogy 12v -ról simán megy,usb-ről tojást lehet sütni rajta...Nem lehet valahogy megkerülni az usb-ről való tápellátást?Szóval,hogy programozni lehessen de közben 12v-ról üzemeljen?

....nem baj ha lassan haladunk,mert egyáltalán nem biztos,hogy jó felé megyünk....

Copyright © 2000-2024 PROHARDVER Informatikai Kft.