-
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
-
-
tvamos
nagyúr
Oke. Biztos ugy van. Tenyleg nem emlekszem, csak arra, hogy ugyan az a rutin hajtja. Meg annyi meg, hpgu van kulpnbseg, hogy autos, vagy repcsis speed cobtrollert hasznalsz.
En mar nem hasznalom oket, csak h-bridge-eket. Az sokkal gyorsabb, mint az esc."Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
happy555
aktív tag
Kicsit tisztázzuk ki a dogokat!
Pontosan hova adsz, és hány voltot az arduinora?
Vin vagy Vcc?
Ha stabil 5V-ot adsz a Vcc-re, és ugyanazt az 5V-ot viszed a relékhez attól nem "megy át áramerősség" az arduinon!
Viszont ha pl 9V adsz a boardodra és a vcc-t viszed tovább, akkor lehet megsütöd azt a pirinyó feszstabját![ Szerkesztve ]
Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
happy555
aktív tag
Szóval, ha az adapter bemeneten táplálod az arduinot akkor legalább 7V-ot kell adnod, mert onnan a feszstabjára kerül, amin ugyebár esni fog a feszültség....
A relén pedig az a jumper nem tesz mást, mint egy kapcsoló.
Ha zárod akkor behúz a relé, ha nem, akkor csak a visszajelző led gyullad ki.
Arduino "5V" és relé "VCC" összeköt, és mehet a tápodra! De az tényleg 5V legyen!!Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
happy555
aktív tag
Szóval:
Mint már írtam:Ha stabil 5V-ot adsz a Vcc-re, és ugyanazt az 5V-ot viszed a relékhez attól nem "megy át áramerősség" az arduinon!
Viszont ha pl 9V adsz a boardodra és a vcc-t viszed tovább, akkor lehet megsütöd azt a pirinyó feszstabját!Másképp:
Ha az arduinon lévő (DC bemenet) feszstabbal előállított 5V-al táplálod meg a reléket akkor lehet füst.Remélem érted, ha nem, akkor tényleg hagyjuk....
Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
Danex
addikt
Én banggood-ról rendeltem, csak ugye a 433MHz-est.
De itt a 315MHz-es verzió
Én Jan 06-kor rendeltem, ma érkezett vidékre.
-
happy555
aktív tag
Ha a "digitalWrite(ACvPin, HIGH);" fut újra meg újra, annak mi értelme?
Itt mindent csak egyszer állítasz, így minden marad a leírtak szerint, amíg másképp nem rendelkezel.
Írj más feltételekhez új kimeneti szinteket.[ Szerkesztve ]
Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
Danex
addikt
Annyira én se vagyok benne (próbálgatásokkal tudok csak működő programot csinálni), szerintem úgy lehetne megoldani, ha az eseményekhez külön változós készítesz.
Mármint a loop-ba beraknám a
if (Gomb1 == HIGH && Gomb2 == LOW && Gomb3 == LOW)
{
if (XYZ_mode == FALSE)
{
mostvaltozottmeg = TRUE;
}
else
{
mostvaltozottmeg = FALSE;
}
XYZ_mode = TRUE;
}
else
{
XYZ_mode = FALSE;
}
if ( mostvaltozottmeg)
{
digitalWrite(jelzoPin, HIGH);
delay(500);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(iranyPin1, HIGH);
delay(200);
digitalWrite(iranyPin2, LOW);
delay(500);
}
if (XYZ_mode)
{
digitalWrite(ACvPin, HIGH);
}Tehát ha mindhárom gomb le valamilyen állásban van akkor az ACvPin-en kívüliek egyszer fussanak, viszont az ACvPin meg a gombok lenyomása alatt végig.
Ha minden igaz a fenti kód ezt csinálná, de már éjjel 1 óra van és mint mondtam, próbálgatással tudok még csak programozgatni
[ Szerkesztve ]
-
Danex
addikt
Már látom, hogy kihagytam az "igaz -hamis" másik ágát
Tehát vizsgálja a feltételed, majd ha az igaz, akkor utána megnézi, hogy az előző "loop körben" már teljesült-e ez a feltétel vagy sem. (Ha nem az azt jelenti, hogy most nyomódott le a gomb tehát most kell lefuttatni az egyszer futtatandó parancsokat ("mostvaltozottmeg")
Ezután megváltoztatja a XYZ_mode IGAZ-ra (ide igazából az utolsó tartalma mehetne)
if (XYZ_mode)
{
digitalWrite(ACvPin, HIGH);
}Majd a következő if meg lefuttatja a "mostvaltozottmeg" parancscsoportot. (Ide még szerintem be kéne rakni egy "mostvaltozottmeg = FALSE; -t is.)
De látok hibákat a kódban , de talán a logikai része működőképes és azon elindulhatsz. (Az a baj, hogy a kimenetek nem tudom mi mit kapcsol, így nehéz
[ Szerkesztve ]
-
happy555
aktív tag
Ha végálláskapcsoló valamelyik, amit figyelni akarsz, arra van több megoldás is, hogy kikapcsold a motort.
Ha jól értem amit szeretnél,pl.:
while (Gomb1 == HIGH && Gomb2 == LOW && Gomb3 == LOW)
{
if(digitalRead(ACvPin)==LOW){
digitalWrite(jelzoPin, HIGH);
delay(500);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(iranyPin1, HIGH);
delay(200);
digitalWrite(iranyPin2, LOW);
delay(500);
}
digitalWrite(ACvPin, HIGH);
}Ha a feltételek adottak, akkor lefut az egész. Viszont amint az ACvPin HIGH lesz ki fogja hagyni az if ciklus alatti utasításokat.
Aztán ha változik a feltétel, azonnal kiugrik a while ciklusból.
Így a delay-ek csak egyszer futnak le, és utána azonnal ki tud lépni.
Így gondoltad?[ Szerkesztve ]
Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
happy555
aktív tag
Lesz baj ezzel így , több is :/
int lowlow = (nyitoGomb == LOW && zaroGomb == LOW) == true;
Ha egy változó csak igaz vagy hamis funkcióval kell hogy bírjon akkor elég ha boolean.
Program elején deklarálnám, és loopban csak állítanám az értékét.
DE! Ha do - while ciklust használsz akkor a feltétel tárgyát cikluson belül állandóan vizsgáltatnod kell, különben sose fog kiugrani belőle, így elakad a program.Inkább kihagynám a lowlow-t és while(digitalRead(nyitoGomb)==HIGH || digitalRead(zaroGomb)==HIGH);
Jó éjt!
[ Szerkesztve ]
Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
happy555
aktív tag
Majd kiderül, mindig szokott beesni 1-2
Talán inkább annyi, hogy egy kicsit egyszerűsíteni kellene a rendszert, hogy ne egy távírányítós modul reléje kapcsolgassa az arduino bemeneteit, és azt ne kelljen resetelni tápelvétellel.
Tisztább lenne illlesztened egy rf vevőt (meg akár adót is), és akkor nem kellene annyi relét kattogtatni.
6 helyett csak 2 relé kéne. 1 az irány kiválasztásához, és 1 a delej kapcsolásához.Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
happy555
aktív tag
A relé modul amit linkeltél az 1x záró 1x bontó érintkezős, vagyis tudsz vele váltani a két irány közt.
Egy másikkal kapcsolnám erre a relére a 220-at, kis késleltetéssel.
Villogó 220-as??
Ha nem, akkor pl. MOSFET, TRANYÓ, ...Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
happy555
aktív tag
Lehet csiszolgatni (fogod is ) bőven.
Már csak azért is, mert megfelel erre a feladatra, de mást így nem tud végezni, mivel megakasztod a programot egy led villogtatás loop-al.
Pedig míg nincs más dolga, kezelhetne esti fényt, mérhetne és küldhetne hőmérsékletet, kezelhetne csengőt, fénysorompót, stb......
Jahh és lehetne benne "kiskapu funkció" is, amikor nem nyit ki teljesen, csak hogy gyalog be lehessen menni.Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
-
-
happy555
aktív tag
#define nyitas 246757
boolean nyitoGomb=false;if(receivedCode==nyitas){
nyitoGomb=true;
receivedCode=0;
};Ezutan vizsgalhatod hogy if(nyitoGomb==HIGH) ....
Csak művelet befejeztével vissza kell állítani false-ra.De egy kicsit foglalkozz a C++-al, fejtegesd a mintákat!
Nem vagyok babonás, mert az szerencsétlenséget hoz!
-
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
Új hozzászólás Aktív témák
- Lenovo ideapad C340 / i3-10110U / 8 GB / 1 TB SSD / FullHD érintőkijelző
- RAZER BlackWidow V4
- Eladó/cserélhető iPad Pro (2018) 11", 64 GB, WiFi, Space Gray, 94% BH + tok
- Dell UltraSharp U2415b, AH-IPS, 100% sRGB, FHD+, pivot talp, számla +garancia 1 év
- Acer Predator Helios 500 - 17"- GTX 1070 - Gamer
- Lenovo Thinkpad E14 Gen 2 Ryzen 7 PRO 4700U/16GB RAM/512GB NVME SSD/14" FULL HD garanciás laptop ela
- Félkonfig Asus B250M-Plus alaplap, i7-6700 proci,Crucial 2x8GB 2400Mhz memória, gyári hűtő eladó.
- I7-es Acer számítógép! I7-2600, 8GB, 128GB SSD, 1TB HDD, GTX650 VGA
- IPHONE 15 PRO MAX 256GB
- Slot1 PIII.550MHz 128SD Félkonfiguráció.
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen