- WoW avagy World of Warcraft -=MMORPG=-
- War Thunder - MMO Combat Game
- Ghost of Tsushima: Director's Cut - Íme a gépigény
- Minecraft
- No Rest for the Wicked - Megkaptuk a korai kiadás gépigényét
- Nioh 2 (PS4)
- Dragon's Dogma 2
- PlayStation 1 / 2
- Bestbuy játékok
- Hearthstone: Heroes of Warcraft - free online CCG
-
GAMEPOD.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.
Új hozzászólás Aktív témák
-
junhum
tag
válasz happy555 #102 üzenetére
Szia!
Gyakorlatilag 'x' másodpercig zárni relét, van hogy ga egy relé zár akkor zárjon a másik. A fotocellás az számol 'x' forgást és akkor old a relé ha eléri a megadott értéket.
Vázolva kb ennyit!
Olvasgatok a témában azt már látom hogy lehetséges vele.
Amire még nem egyértelmű a válasz hogy több termék lenne csomagolva és meg lehet e oldani hogy gombbal vagy potival állitani a fotoszámlálót meg adott relének a zárhosszát vagy egyszerűbb annyi boardot venni és csak csatlakozót cserélgetniYour Workout Is My Warm-Up so Shut The Fuck Up And Train
-
Hyperion
senior tag
válasz happy555 #216 üzenetére
Hello!
Idokozben meglett a hiba.A DH11 fugvenytaraval volt a baj. Gozom nincs honnan szedtem le, most az adafruittal kivalo!
Csak a szokasos termosztat funkciokat tudja: idozites, homerseklet beallitas, meresi pont kijeloles, mentes eepromba...
Es mindehez egy szep menu a 20x4 es kijelzon. Ez utobbi vitte el a legtobb helyet, de felhasznalo baratta kellett tenni -
Hyperion
senior tag
válasz happy555 #219 üzenetére
Ami miatt nekiálltam ennek a projektnek az volt, hogy nálunk a gyerekszoba eléggé le tud hűlni.
Mivel a nappaliban van a gyári termosztát, hiába hűl le a gyerekszoba, a nappali tartja a hőmérsékletet és ezért nem indul el a cirkó. Viszont ha napközben a nappaliban vagyunk, fölösleges a gyerekszobát fűteni, ezért a nappali legyen ismét a mérvadó.
Vezetékelni nincs lehetőségem, ezért használok rádiót. Egy arduino mini a cirkónál, ami semmi mást nem csinál, csak ki-be kapcsolja a cirkót. (Ez még nem jött meg sajnos.(Aliexpress))Meddig bírja aksiról az arduinód? Milyen verziót használsz?
-
Hyperion
senior tag
válasz happy555 #222 üzenetére
Hmm, takarékos megoldásnak tűnik.
Mivel itt a tél, berendeltem 600Ft-ért ardu. mini klónt, én azzal oldom meg a sensorokat. Nem anyira takarékos mint a tied, de ahova én szeretném rakni, ott van nagyfesz...Tavasszal átépítem ezt a projektet, mert idegesítene, hogy csak télen használható
Időjárás-állomás + termosztátvezérlés lenne a végcél. 3-6"-os TFT-n... -
DragonKid22
csendes tag
válasz happy555 #229 üzenetére
Blink volt betoltve a mintatarbol, 10mp-re allitott bekapcsolasi es 10mp-es kikapcsolasi idovel. 13as lab es a GND kozt mertem. A lab kimenetkent van definialva. A dolog azon bukott ki, hogy egy MOSFET-et szerettem volna vezerelni, amivel 24V-os magnesszelepet kapcsolok. A szelep nem huzott meg, ha arduinoval vezereltem...
-
DragonKid22
csendes tag
válasz happy555 #231 üzenetére
Nem! Csak a skop volt rakotve, semmi mas, amikor az a felvetel keszult. A FET-tel csak a problema bukott ki es elkezdtuk keresni az okat.
Blinket betoltve USB-rol megtaplalva is ezt csinalja, kulso kapcsolouzemu taprol 12V-tal is ezt csinalja es labortaprol is.[ Szerkesztve ]
-
DragonKid22
csendes tag
válasz happy555 #236 üzenetére
Nem abban volt a hiba.
Mint említettem, a blink nevű mintaprogramot töltöttem be, mikor a fenti kép készült.Annyit módosítottam rajt, hogy 1000ms-ról átírtam a késleltetéseket 10000ms-ra.
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(10000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(10000); // wait for a second
}A lényeg annyi, hogy az arduinora kötött kapcsolásban egy ellenállás értéke rossz volt, emiatt az a láb összeszedte a zavarokat és ezért mutatott mindenféle görbét a szkóp, négyszögjel helyett. A problémára azért nem jöttünk rá, mert mikor csak az oszcilloszkóp volt a gnd-re és a lábra kötve a zavarokat ugyan úgy összeszedte, mint mikor rajt volt a kiegészítő áramkör. Az ellenállást kicseréltük megfelelő értékűre és utána megszűntek a zavarok, olyan négyszögjelet kaptunk, amilyet szerettünk volna. Nem került a kivezetés lebegő állapotba. Most a MOSFET szépen kapcsolja a 24V-os reléket és a mágnesszelepeket.
Ezt a kapcsolást használom 1-2 eltéréssel: [link]
De elsőre a 10k helyett 100R volt bekötve. (Ne kérdezd, miért! Erre a leírásra most találtam rá, mikor szemléltető példát kerestem... Jobb lett volna előbb...)Röhögni ér!
Azt hiszem, ezt egy életre megjegyzem. Jobb ez így, hogy magunk szenvedtük ki a megfejtést, jobban berögződik.
-
Pubszon
veterán
válasz happy555 #245 üzenetére
Értem, köszi.
A feltételeket hogyan adjam meg egy tömbbe?
Például hogy csak akkor kapcsoljon egy relét, hogy ha 2 gomb is be van nyomva külön bemeneteken.
Így helyes?if (buttonState1 == HIGH, buttonState2 == HIGH)
Bocs a sok alap kérdésért, lesz még amit esetleg nem találok meg.
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #249 üzenetére
Jó tudni, köszi.
Még csak a héten rendeltem meg a lapot pár extrával, de a programozást már most elkezdtem tanulgatni.
Egyébként egy elektromos kapunyitót akarok csinálni.
A nyitás/zárás gombok helyett egy ehhez hasonló 2 csatornás transmitter lesz, csak az a baj ezzel, hogy nem pillanatkapcsolós, hanem ha megnyomom egyszer a gombot akkor az úgy is marad.
Ezért arra gondoltam, hogy ha a 2 feltétel megfelel(végálláskapcsoló és a nyitás relé; ez a két button), akkor erről a vevőről egy másodpercre elvenné az áramot amikor a végálláskapcsoló megszakítja az áramkört (bezár a kapu), emiatt az NO alapállapotba kerülne, így nyugodtan tudnám nyitni, szintén míg ki nem nyílik teljesen.
Ebbe az a jó, hogy menet közben is meg tudnám állítani a kaput.
Remélem érthető a dolog.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
-
Pubszon
veterán
-
Pubszon
veterán
válasz happy555 #294 üzenetére
Jah, értem, most látom hogy minimum 7V kell neki.
Oda kell a külső 5V ahol a jumper van VCC és JD-VCC felirattal?
Mi a kettő közti különbség? A JD-VCC-ről adja át a jumper a VCC-re a feszt amit az arduinoról kap?ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #296 üzenetére
Azt értem, de egy videón láttam, hogy mondja a szakember, hogy a 8-as relé modulnak külső táp kell, mert megég a panel, és úgy, hogy semmi más nincs rákötve.
Ezért gondoltam, hogy ha nekem van egy 4 relés modul meg pár gomb, akkor lehet jobb lenne külső tápról megtáplálni a relé modult, mert ha minden jól megy több évig menne 24/7-ben.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #298 üzenetére
Nem tudom jobban elmagyarázni azt, hogy megsül az arduino ha CSAK onnan kap áramot a 8-as relé modul.
Itt beszél róla, angolul...
De ha így sem érthető akkor hagyjuk...ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #300 üzenetére
Értem és ezt akarom elkerülni.
Az arduino 7V-ot fog kapni, az a minimum ami javasolt.
De lesz egy stabil 5V ami a relé modult fogja táplálni.
De a kérdés, hogy az összes GND lehet közös (7V, 5V meg az arduino GND-je)?ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
spidersoft
senior tag
-
Pubszon
veterán
-
Pubszon
veterán
válasz happy555 #311 üzenetére
A mostani postás a nyugdíjat hozta, én meg elé mentem, mondom nem e hozott valamit és ez volt nála.
Még később lehet jön megint postás, aki csak levelet meg csomagot hoz, mert a postakocsit a nyugdíjas nem várja meg... hátha...
Amúgy tényleg, ma vagy 5-ször kimentem az utcára megnézni a postást.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Danex
addikt
válasz happy555 #314 üzenetére
Az első képen van egy kicsi nyák, rajta tranzisztorok és azok vannak rákötve az RF távirányító 1-1 gombjára.
Azaz, web szerveren keresztül kapott egy kérést az arduino ami félsec-re 5V-ot adott a tranzisztornak ami meg a távirányító 1-1 gombjának.
Csak az volt ezzel a gond, hogy ahány gomb annyi digitIO pin ment el, (Bár mega-n van sok) de így azért szebb is kábel management szempontból is.
Igen néztem, de úgy néz ki menni fog plusz antenna nélkül is (csak néhány méterre van a vezérlő)
[ Szerkesztve ]
-
Danex
addikt
válasz happy555 #320 üzenetére
Aha, így a telefonomról tudom kapcsolgatni azt, illetve van egy kis 7"-os tablet is amit a falra tervezek felrakni ,hogy onnan is lehessen.
Tervben van a lépcsőház kapuajtójának a "lakásból való nyitás" funkciójának beépítése is, illetve a TV/Klíma (ezek IR alapúak) vezérlése.
Illetve amihez több pénz kell az egy hangrendszer üzemeltetése, amit úgy szint webszerveről lehetne kapcsolni, hogy melyik helyiségben szóljon a zene (Spotify rádió, ez a tableten menne mindig)Meg tervben van majd a nyílászárók cseréjekor egy kis részre beépíteni 2db 12V-os PC ventilátort amik akkor kapcsolnának ki/be nyáron amikor a benti hőmérséklet túl magas, a kinti viszont kellemes (hajnali órák stb, viszont a levegő meg áll és nyitott ablaknál se akar bejönni. ) és ehhez még reluxa vezérlés servo motorral.
[ Szerkesztve ]
-
Pubszon
veterán
válasz happy555 #322 üzenetére
Ezt a 433MHz-es RF vevőt hol lehet olcsón kapni?
Vagy ebay-en hogy keressek rá?
Nekem kapunyitóhoz kellene, most egy ilyenem van, de elég lenne egy arduinohoz való 5V-os is.
Mondjuk a jelenlegim 315MHz-es, ezt a távvezérlőt be lehetne programozni rá?[ Szerkesztve ]
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #329 üzenetére
Át fogok akkor állni, ideiglenesen jó lesz, jó a 433MHz-eshez is egyaránt.
Viszont mivel nagyon kezdő vagyok, ezért van egy kérdésem amire nem találok választ.
Ha van egy if ciklus amiben vannak parancsok, de én azt szeretném, hogy bizonyos parancsok csak egyszer fussanak le ha a feltételek megfelelnek, illetve megint csak pár fusson addig amíg a feltétel is megengedi, akkor azt hogy kell csinálni?
Itt a példám:
Azt szeretném, hogy ha a 3 feltétel is megfelel, akkor fusson le az összes parancs egyszer, de csak az utolsó digitalWrite(ACvPin, HIGH); fusson újra és újra amíg a feltételek engedik.
Mert ha jól gondolom, így ha az egyik feltétel megvoltozik, akkor lehet akár 1400ms múlva lép a következő ciklusra.if (Gomb1 == HIGH && Gomb2 == LOW && Gomb3 == LOW)
{
digitalWrite(jelzoPin, HIGH);
delay(500);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(iranyPin1, HIGH);
delay(200);
digitalWrite(iranyPin2, LOW);
delay(500);
digitalWrite(ACvPin, HIGH);
}Bocs ha hülyeséget kérdek, pár hete kezdtem utána olvasgatni.
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #331 üzenetére
Tehát ha a feltételek adottak és lefutnak a parancsok, akkor utána nem futtatja többször csak figyeli a feltételeket amíg valamelyik meg nem változik?
Mert ha így van akkor az a legjobb nekem.Én azt hittem hogy újra és újra lefut és gondoltam hogy ha pont az első delay alatt változik meg az egyik feltétel akkor megvárja míg végigfut és csak utána lép a következő ciklusra, de az már nem lenne jó mert akkor a kapu még több mint egy másodpercet erőlködne.
(#332) Danex: Köszi neked is, szerintem akkor én is többre tudok majd jutni ha itt lesznek a cuccok, addig meg csak fejbe futtatom le.
Ez meg még bonyolult.[ Szerkesztve ]
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #335 üzenetére
Igen, azt szeretném, hogy a delay-ek egyszer fussanak le és ha bármi van egyből tudjon reagálni.
Na de inkább beírom ide az egészet, hogy így jó e.
Nagyjából meg van a leírás is hogy mi mi.
A resetPin az RF vevőt áramtalanítja, hogy a relék visszaálljanak alap állapotba. Ez addig lesz így, míg nem jön meg a másik. Mert ez csak self-lock, tehát egy gombnyomás akkor úgy is marad a relé. Az meg nekem nem jó, mert rövid áramszünet után kinyílna a kapu, meg ne legyen behúzva a relé, csak ha kell./*
Az aramkor:
* Gombok a +5V es a pin 2, 3, 9 es 10 koze.
* 10K ellenallas a pin 2, 3, 9, 10-re a GND-rol kulon-kulon.
* Megjegyzes: A legtobb Arduinon mar van egy integralt LED a pin 13-ra kotve.
A 4 csatornas rele panelen az 1. es 2. rele bemenetet ossze kell kotni a valtokapcsolas miatt.
Rele bekotese:
Rele 1: NC +30V DC motor fele, NO GND motor fele, COM +30V DC a tap felol.
Rele 2: NC GND motor fele, NO +30V DC motor fele, COM GND a tap felol.
Rele 3: NC 230V AC a DC tap fele, COM 230V AC a halozati arambol.
Rele 4: NC +12V DC a 2 csatornas tavvezerlo fele, COM +12V DC a tap felol.
*/
const int buttonPin1 = 2; // Kapu nyitas gomb, a vevo egyik releje
const int buttonPin2 = 3; // Kapu zaras gomb, a vevo masik releje
const int iranyPin1 = 4; // Kapu nyitas-zaras, elso rele valtokapcsolo 1. rele
const int iranyPin2 = 5; // Kapu nyitas-zaras, masodik rele valtokapcsolo 2. rele
const int jelzoPin = 6; // Jelzofeny nyitas/zaras ideje alatt 3. rele
const int resetPin = 7; // Vevo reset hogy a relek NO-ba alljanak 4. rele
const int ACvPin = 8; // Motor 230V lekapcsolasa 5. kulonallo rele
const int vegallasPin1 = 9; // Vegallaskapcsolo-nyitva
const int vegallasPin2 = 10; // Vegallaskapcsolo-zarva /Magnes erzekelo/
const int ledPin = 13; // Allapotjelzo LED, folyamatosan vilagit muvelet kozben
// valtozni fognak:
int nyitoGomb = 0; // Valtozik a gomb allapota alapjan
int zaroGomb = 0; // Valtozik a gomb allapota alapjan
int vegallasNyitva = 0; // Valtozik a vegallaskapcsolo allapota alapjan
int vegallasZarva = 0; // Valtozik a vegallaskapcsolo allapota alapjan
void setup() {
// Ki-bemenetkent:
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(iranyPin1, OUTPUT);
pinMode(iranyPin2, OUTPUT);
pinMode(jelzoPin, OUTPUT);
pinMode(ACvPin, OUTPUT);
pinMode(resetPin, OUTPUT);
pinMode(vegallasPin1, INPUT);
pinMode(vegallasPin2, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(ACvPin, LOW);
digitalWrite(iranyPin1, LOW);
digitalWrite(iranyPin2, LOW);
digitalWrite(jelzoPin, HIGH);
delay(2000);
digitalWrite(jelzoPin, LOW);
Serial.begin(9600);
}
void loop()
{
nyitoGomb = digitalRead(buttonPin1);
zaroGomb = digitalRead(buttonPin2);
vegallasNyitva = digitalRead(vegallasPin1);
vegallasZarva = digitalRead(vegallasPin2);
int lowlow = (nyitoGomb == LOW && zaroGomb == LOW) == true;
if (nyitoGomb == HIGH && zaroGomb == LOW && vegallasNyitva == LOW) // Nyitas
{
digitalWrite(jelzoPin, HIGH);
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(iranyPin1, HIGH); //+
delay(250);
digitalWrite(iranyPin2, LOW); //-
delay(500);
digitalWrite(ACvPin, HIGH);
}
else if (nyitoGomb == HIGH && zaroGomb == LOW && vegallasNyitva == HIGH) // Nyitva
{
delay(196);
digitalWrite(jelzoPin, LOW);
digitalWrite(ACvPin, LOW);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
while(lowlow == false);
delay(200);
digitalWrite(resetPin, HIGH);
}
else if (nyitoGomb == LOW && zaroGomb == HIGH && vegallasZarva == LOW) // Zaras
{
digitalWrite(jelzoPin, HIGH);
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(iranyPin1, LOW); //-
delay(250);
digitalWrite(iranyPin2, HIGH); //+
delay(500);
digitalWrite(ACvPin, HIGH);
}
else if (nyitoGomb == LOW && zaroGomb == HIGH && vegallasNyitva == HIGH) // Zarva
{
delay(374);
digitalWrite(jelzoPin, LOW);
digitalWrite(ACvPin, LOW);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
while(lowlow == false);
delay(200);
digitalWrite(resetPin, HIGH);
}
else if (nyitoGomb == LOW && zaroGomb == LOW) // Mind 2 gomb kikapcsolva a taviranyiton, alap statusz
{
do
{
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
while(lowlow == true);
}
else
{
digitalWrite(jelzoPin, LOW);
digitalWrite(ACvPin, LOW);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
while(lowlow == false);
delay(200);
digitalWrite(resetPin, HIGH);
}
}[ Szerkesztve ]
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #337 üzenetére
Jó reggelt!
Az int lowlow = (nyitoGomb == LOW && zaroGomb == LOW) == true;
sor korábban nem volt benne, csak az este írtam bele és a while(lowlow == false); és a while(lowlow == true); sorok helyett is a while(nyitoGomb == HIGH && zaroGomb == LOW) == true; sor volt, mondjuk szerintem ez sem jó, de a program hibát nem dobott rá.Akkor például az utolsó ciklust te így csinálnád meg?
{
digitalWrite(jelzoPin, LOW);
digitalWrite(ACvPin, LOW);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
while(digitalRead(nyitoGomb)==LOW || digitalRead(zaroGomb)==LOW);
delay(200);
digitalWrite(resetPin, HIGH);
}[ Szerkesztve ]
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #339 üzenetére
A cél az, hogy addig villogjon (persze nem ilyen gyorsan) amíg mind a kettő LOW.
Így jó? while(digitalRead(nyitoGomb)==LOW && digitalRead(zaroGomb)==LOW);De ha jól értem, akkor ez a || jel azt jelenti, hogy vagy az előtte vagy az utána lévő parancs teljesül akkor lép tovább?
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #339 üzenetére
A cél az, hogy addig villogjon (persze nem ilyen gyorsan) amíg mind a kettő LOW nem lesz.
De így sem jó... while(digitalRead(nyitoGomb)==LOW && digitalRead(zaroGomb)==LOW);
Mert így 4 variáció van
LOW HIGH
HIGH LOW
HIGH HIGH
LOW LOWAzt kellene rögzíteni, hogy a LOW LOW állás true, minden más pedig false, és akkor azt megadni, hogy addig villogjon míg false, ha pedig true akkor lépjen tovább.
De ha jól értem, akkor ez a || jel azt jelenti, hogy vagy az előtte vagy az utána lévő parancs teljesül akkor lép tovább?
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #345 üzenetére
Na, javítgattam, de míg nincs itt az arduino addig nem tudom tesztelni, ezért kérem véleményezd és mond mit a hiba.
const int buttonPin1 = 2; // Kapu nyitas gomb, a vevo egyik releje
const int buttonPin2 = 3; // Kapu zaras gomb, a vevo masik releje
const int iranyPin1 = 4; // Kapu nyitas-zaras, elso rele valtokapcsolo 1. rele
const int iranyPin2 = 5; // Kapu nyitas-zaras, masodik rele valtokapcsolo 2. rele
const int jelzoPin = 6; // Jelzofeny nyitas/zaras ideje alatt 3. rele
const int resetPin = 7; // Vevo reset hogy a relek NO-ba alljanak 4. rele
const int ACvPin = 8; // Motor 230V lekapcsolasa 5. kulonallo rele
const int vegallasPin1 = 9; // Vegallaskapcsolo-nyitva
const int vegallasPin2 = 10; // Vegallaskapcsolo-zarva /Magnes erzekelo/
const int ledPin = 13; // Allapotjelzo LED, folyamatosan vilagit muvelet kozben
// valtozni fognak:
int nyitoGomb = 0; // Valtozik a gomb allapota alapjan
int zaroGomb = 0; // Valtozik a gomb allapota alapjan
int vegallasNyitva = 0; // Valtozik a vegallaskapcsolo allapota alapjan
int vegallasZarva = 0; // Valtozik a vegallaskapcsolo allapota alapjan
void setup() {
// Ki-bemenetkent:
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(vegallasPin1, INPUT);
pinMode(vegallasPin2, INPUT);
pinMode(iranyPin1, OUTPUT);
pinMode(iranyPin2, OUTPUT);
pinMode(jelzoPin, OUTPUT);
pinMode(ACvPin, OUTPUT);
pinMode(resetPin, OUTPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(jelzoPin, HIGH);
delay(2000);
digitalWrite(jelzoPin, LOW);
Serial.begin(9600);
}
void loop()
{
nyitoGomb = digitalRead(buttonPin1);
zaroGomb = digitalRead(buttonPin2);
vegallasNyitva = digitalRead(vegallasPin1);
vegallasZarva = digitalRead(vegallasPin2);
if (digitalRead(nyitoGomb) == HIGH && digitalRead(zaroGomb) == LOW && digitalRead(vegallasNyitva) == LOW) // Nyitas
{
digitalWrite(jelzoPin, HIGH);
digitalWrite(ledPin, HIGH);
digitalWrite(iranyPin1, HIGH); //+
digitalWrite(iranyPin2, LOW); //-
delay(500);
digitalWrite(ACvPin, HIGH);
}
else if (digitalRead(nyitoGomb) == HIGH && digitalRead(zaroGomb) == LOW && digitalRead(vegallasNyitva) == HIGH) // Nyitva
{
delay(196);
digitalWrite(jelzoPin, LOW);
digitalWrite(ACvPin, LOW);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
while(digitalRead(nyitoGomb)==HIGH || digitalRead(zaroGomb)==HIGH);
delay(200);
digitalWrite(resetPin, HIGH);
}
else if (digitalRead(nyitoGomb) == LOW && digitalRead(zaroGomb) == HIGH && digitalRead(vegallasNyitva) == LOW) // Zaras
{
digitalWrite(jelzoPin, HIGH);
digitalWrite(ledPin, HIGH);
digitalWrite(iranyPin1, LOW); //+
digitalWrite(iranyPin2, HIGH); //-
delay(500);
digitalWrite(ACvPin, HIGH);
}
else if (digitalRead(nyitoGomb) == LOW && digitalRead(zaroGomb) == HIGH && digitalRead(vegallasNyitva) == HIGH) // Zarva
{
delay(374);
digitalWrite(jelzoPin, LOW);
digitalWrite(ACvPin, LOW);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
while(digitalRead(nyitoGomb)==HIGH || digitalRead(zaroGomb)==HIGH);
delay(200);
digitalWrite(resetPin, HIGH);
}
else if (digitalRead(nyitoGomb) == LOW && digitalRead(zaroGomb) == LOW) // Mind 2 gomb kikapcsolva a taviranyiton, alap statusz
{
digitalWrite(iranyPin1, LOW);
digitalWrite(iranyPin2, LOW);
digitalWrite(ACvPin, LOW);
digitalWrite(jelzoPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
while(digitalRead(nyitoGomb)==LOW && digitalRead(zaroGomb)==LOW);
}
else
{
digitalWrite(jelzoPin, LOW);
digitalWrite(ACvPin, LOW);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
while(digitalRead(nyitoGomb)==HIGH || digitalRead(zaroGomb)==HIGH);
delay(200);
digitalWrite(resetPin, HIGH);
}
}ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #347 üzenetére
Így van, én se akarom így hagyni végleg, rendeltem is RF vevőt, azzal lehet majd jó megcsinálni.
1 relével fog kevesebb kelleni, mert 2 kell váltókapcsolónak, egy a 230-at meg egy a jelző villogót kapcsolja.
De attól független, ez így nem egészséges.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #349 üzenetére
A 4-es relé modulból használnék 2-t irányváltásra, egyet a villogónak ami 12V-ról megy és egyet a 230V lekapcsolására.
Nekem így egyszerű, nem akarom megbonyolítani tranyóval meg ilyesmivel.Ez nem nagyon tiszta:
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.
Az irányváltáshoz nem kell legalább 2 relé?ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
Új hozzászólás Aktív témák
- Eladó iPhone 7 Plus 256 GB Jet Black 100% akku, szép állapotú - 12 HÓ GARANCIA - R8039
- Eladó Leovo ThinkPad L580 notebook
- Bose Quietcomfort Ultra Wireless headset! Fél ár alatt!
- Sony A6000 ! 3600 EXPO! Legacélabb Szürke Legszebb Szín KIT 18-50mm Obi + Helios 44-2 58/2
- Asus Dual RTX 3060Ti 8GB GDDR6 Videokártya!