-
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
-
Pubszon
veterán
Üdv.
Rendeltem egy Uno klónt, nagyon kínai nekem a programozás, de szeretnék jobban belemerülni, ezért olyan alapokkal kezdenék, hogy:A button mintában írva van, hogy 10K resistor attached to pin 2 from ground
De miért kell egy 10K-s ellenállással összekötni a 2-es pint a GND-vel amire a kapcsoló adja benyomott állapotban a 5V-ot?ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
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
Ezen most én is elgondolkodtam, hogy merjek e neki adni 12V-ot, mondjuk csak 4 relét fog meghajtani, illetve néhány mikrókapcsoló lesz még rákötve. 24/7-be fog menni.
Azért lenne jó, mert a 2csatornás RF vevőm is 12V-al megy, így egy azon táp jó lenne nekik. Megnézem holnap, hogy mit szól mondjuk 9V-hoz a vevő.Egy másik kérdés: Egy RC-be való brushed ESC-et szervóként kell vezérelni?
Az lenne a logikus, mert ha felcserélem őket, ugyan úgy működnek.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
A 4 csatornás relé modulnak adjak külön 5V-ot közös GND-vel? Mind a 4 relé lesz használva és maga a panel is 5V-al fog menni, tehát tudok adni neki könnyen ha ezzel nem csinálok kárt.
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
-
Pubszon
veterán
Mármint a relé modulnak miért akarok plusz tápot?
Csak gondoltam nem terhelem az arduinot, mert például a 8-as relé modulnak külön táp kell.
De a kérdés továbbra is adott, hogy adhatom neki azt az 5V-ot amit maga az arduino panel is kap?
Azt szeretném, hogy minél kevesebb áramerősség menjen át a mikrokontrolleren.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...
-
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...
-
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
Köszi, meg is rendeltem. (Mondjuk ebay-ről, mert oda vagyok regelve, de ugyan ez)
Nekem egy 2 gombos távirányítóm van, ugye a nyitás meg zárás funkció.
Remélem napokon belül meg jön az arduino és akkor játszok vele, majd ha meg ez is megjön, akkor visszatérek a beállításokra.
Köszi.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...
-
Pubszon
veterán
Na és össze van állítva próbára, működik ahogy elgondoltam!
Itt a kód, tippeket várok.
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);
}
void loop()
{
nyitoGomb = digitalRead(buttonPin1);
zaroGomb = digitalRead(buttonPin2);
vegallasNyitva = digitalRead(vegallasPin1);
vegallasZarva = digitalRead(vegallasPin2);
digitalRead(buttonPin1);
digitalRead(buttonPin2);
digitalRead(vegallasPin1);
digitalRead(vegallasPin2);
if ((nyitoGomb == HIGH) && (zaroGomb == LOW) && (vegallasNyitva == LOW)) // Nyitas
{
digitalWrite(jelzoPin, LOW);
digitalWrite(ledPin, HIGH);
digitalWrite(iranyPin1, HIGH); //+
digitalWrite(iranyPin2, LOW); //-
delay(300);
digitalWrite(ACvPin, LOW);
}
else if ((nyitoGomb == HIGH) && (zaroGomb == LOW) && (vegallasNyitva == HIGH)) // Nyitva
{
delay(11); //Ha kinyilik, mennyit toljon meg, hogy feszes legyen
digitalWrite(jelzoPin, HIGH);
digitalWrite(ACvPin, HIGH);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
digitalRead(nyitoGomb);
digitalRead(zaroGomb);
break;
}
while((nyitoGomb==HIGH) || (zaroGomb==HIGH));
delay(400);
digitalWrite(resetPin, LOW);
}
else if ((nyitoGomb == LOW) && (zaroGomb == HIGH) && (vegallasZarva == LOW)) // Zaras
{
digitalWrite(jelzoPin, LOW);
digitalWrite(ledPin, HIGH);
digitalWrite(iranyPin1, LOW); //+
digitalWrite(iranyPin2, HIGH); //-
delay(300);
digitalWrite(ACvPin, LOW);
}
else if ((nyitoGomb == LOW) && (zaroGomb == HIGH) && (vegallasZarva == HIGH)) // Zarva
{
delay(11); //Ha bezarul, mennyit toljon meg, hogy feszes legyen
digitalWrite(jelzoPin, HIGH);
digitalWrite(ACvPin, HIGH);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
digitalRead(nyitoGomb);
digitalRead(zaroGomb);
break;
}
while((nyitoGomb==HIGH) || (zaroGomb==HIGH));
delay(400);
digitalWrite(resetPin, LOW);
}
else if ((nyitoGomb == LOW) && (zaroGomb == LOW)) // Mind 2 gomb kikapcsolva a taviranyiton, alap statusz
{
digitalWrite(iranyPin1, HIGH);
digitalWrite(iranyPin2, HIGH);
digitalWrite(ACvPin, HIGH);
digitalWrite(jelzoPin, HIGH);
digitalWrite(resetPin, HIGH);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
digitalRead(nyitoGomb);
digitalRead(zaroGomb);
break;
}
while((nyitoGomb==LOW) && (zaroGomb==LOW));
}
else
{
digitalWrite(iranyPin1, HIGH);
digitalWrite(iranyPin2, HIGH);
digitalWrite(jelzoPin, HIGH);
digitalWrite(ACvPin, HIGH);
digitalWrite(resetPin, LOW);
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
digitalRead(nyitoGomb);
digitalRead(zaroGomb);
break;
}
while((nyitoGomb==LOW) && (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 #359 üzenetére
Ez is jó, bele is tettem a programba, ami most tökéletesen működik.
Viszont azt már most látom, hogy nem lesz könnyű megcsinálni az RF vevővel ha meg jön.
Most azzal kísérletezgetek, hogy hogy kell egy pillanatkapcsolóból billenőkapcsolót csinálni.
Itt van hozzá egy kód, ami működik is ahogy kell, de már ez is elég bonyolult, főleg hogy még rakjam is bele a kapunyitó programba, meg még az RF vevőt is bele kell.Jó lenne, ha ezek meglennének könyvtárként.
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #361 üzenetére
Rosszul fejeztem ki magam, de így biztosan fogod érteni.
Viszont jól átalakítottam a kódot és most pillanatkapcsolóval menne, amivel még egyszerűbb az egész.
Most úgy van, hogy pl nyitás közben ha megnyomom a zárás gombot, akkor csak megáll, ha pedig megint megnyomom, akkor meg bezár, és ez fordítva is igaz. Ez jelenleg csak pillanatkapcsolóval működik, de ez a resetelős megoldás amúgy sem jó.kagzer fórumtárs küldött tegnap egy RF vevőt, remélem holnap megkapom és akkor lesz az igazi!
[ Szerkesztve ]
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #363 üzenetére
Most én is módosítottam, nyitás vagy záráskor bármely gombot ha megnyomom akkor megáll, vár 1000ms-ot és csak utána lehet adni neki a következő parancsot.
A végálláskapcsolókat is módosítottam, folyamatosan HIGH állapotba vannak, mikor benyomódnak akkor lépnek LOW-ba. Ezt a biztonságért, hogy ha szakadás van, inkább ne induljon el, minthogy valami leégjen.Viszont megjött az RF vevő amit a fórumtárs küldött, ráadásul 2 vevő és 2 transzmitter!
Ezennel is köszönöm, amint tudom meghálálom.Na de egyelőre csak a vevőt használnám, ahhoz hol találom meg a megfelelő könyvtárat és leírást?
2 gombos távirányítót használnék.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
-
Pubszon
veterán
válasz happy555 #383 üzenetére
Akkor átállok 433-ra, ahhoz 4 gombos távirányító is van 5-600Ft-ért, amivel ahogy korábban mondtad egyéb funkciók is megoldhatóak.
Gyakorolni meg van mivel addig helyette.Direkt vártam pár percet szerkesztési időben, hogy hátha látjátok, de akkor nem mondtam újat.
Az én kocsim távja jelét nem fogja, de a faterét igen, ami utólag lett beszerelve.
Nem tudom hogy ugró kódos e.(#385) tvamos: Nem fogom, de miért nem ajánlott?
[ Szerkesztve ]
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
Jah, azt hittem valami komoly ok miatt, de kidobni nem fogom.
Rendeltem egy ilyet, remélem jó lesz.
Szerinted?ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
Igen, de ahhoz van 2db 315MHz-es távirányítóm is, az jó lesz máshova, viszont van az arduinohoz 433MHz-es receiver 2db meg 2 transmitter is. Ahhoz lenne ez a távirányító.
Remélem jó lesz hozzá, mivel ez 4 gombos, így egyéb funkciókat is tudok beprogramozni a nyitás/záráson kívül (elektromos kapunyitó).ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz happy555 #394 üzenetére
Igen, ennek minden gombját szépen mutatta a serial monitor.
Sőt, még ennek a központi zár távirányítónak a jelét is fogta, de lehet ez ugrókódos.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
Meg van a 4 gomb 6 számjegyű kódja.
Egyelőre 2 gombot akarok használni, ami lényegében ugyan azt a funkciót töltené be, mint 2 pillanatkapcsoló.
Az egyik kód lenne a nyitoGomb a másik pedig a zaroGomb.Hogy tudom megoldani?
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
Új hozzászólás Aktív témák
- Nyíregyháza és környéke adok-veszek-beszélgetek
- A régi node-okra koncentrál a szankciók miatt Kína
- Magga: PLEX: multimédia az egész lakásban
- Azonnali VGA-s kérdések órája
- Windows 11
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Facebook és Messenger
- Autós topik
- Mozilla Firefox
- HP notebook topic
- További aktív témák...
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5