-
Fototrend
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
-
tiggger
csendes tag
válasz
JozsBiker #449 üzenetére
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 idegEgyszerű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?
-
JozsBiker
aktív tag
Nem tudom a megoldást, de itt
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. -
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... -
Pubszon
veterán
válasz
happy555 #446 üzenetére
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.Neked van erre valami ötleted?
-
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? -
Pubszon
veterán
Köszi srácok, holnap kipróbálom ezt a verziót!
Sokat kerestem de mégsem találtam meg. -
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();
}
} -
Pubszon
veterán
Ezt a kódot honnan tudom megszerezni?
-
Pubszon
veterán
Mai kérdésem.
Feltételnek hogy kell azt beállítani, hogy pl a ledPin, HIGH? -
Pubszon
veterán
válasz
happy555 #432 üzenetére
Í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. -
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);
}
} -
Pubszon
veterán
Na, de ezt is megcsináltam!
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. -
Pubszon
veterán
válasz
JozsBiker #427 üzenetére
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. -
tvamos
nagyúr
válasz
happy555 #426 üzenetére
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.)
-
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. ) -
tvamos
nagyúr
válasz
happy555 #423 üzenetére
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) ) ; -
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. -
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){
.........;
}
} -
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]!!!
-
Danex
addikt
-
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? -
Goldrox
újonc
Sziasztok
Az arduino 328 pro mini táplálható közvetlen 12V ról??? -
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:
-
happy555
aktív tag
-
Pubszon
veterán
válasz
happy555 #406 üzenetére
Hát igen, még lesz 2 szabadon felhasználható gomb, nem tudom mi lesz velük, de valami biztos.
Amúgy az RCSwitch-el sikerült.
Nélkületek tuti nem jött volna össze.
Ez a projekt lassan kész, de találok ki másikat.
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. -
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.
-
tvamos
nagyúr
Azert, mert nem szabad! Es amit szabad, az sem dragabb, tehat felesleges is!
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Clair Obscur: Expedition 33 teszt
- Ismerkedés a Zyxel NSA325 v2-vel
- A fociról könnyedén, egy baráti társaságban
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Intel találgatós topik
- Háztartási gépek
- PlayStation 5
- Samsung Galaxy Watch6 Classic - tekerd!
- AMD GPU-k jövője - amit tudni vélünk
- További aktív témák...
- DELL PowerEdge R740 rack szerver - 2xGold 6130 (16c/32t, 2.1/3.7GHz), 64GB RAM, 10Gbit HBA330, áfás
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- MSI CreatorPro Z16P RTX A5500 TOUCH! - A világ legerősebb RTX A-s tervezőgépe (vapor chamberrel)
- Nincs még weboldala, vagy szeretne újabbat? 50.000-ért teljes oldalt kap
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest