- Megvan, milyen chipet használ a Pura 80 Ultra
- CMF Phone 2 Pro - a százezer forintos kérdés
- iPhone topik
- Honor Magic V2 - origami
- Milyen GPS-t vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Poco X3 Pro - hardverfrissítés
- Milyen okostelefont vegyek?
- Samsung Galaxy Watch6 Classic - tekerd!
-
Mobilarena
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
-
Teasüti
nagyúr
válasz
happy555 #2855 üzenetére
Ezt konkrétan a zárójelben lévő vessző utáni szóközre érted?
Aha, köszi!Rájöttem menet közben, teljesen máshol volt a bug.
Az egyik függvényben a számlálót bájtban deklaráltam, ami így nem tudta megcímezni a tömb elemeit 256 után. Marha... Csak két órát nézegettem a kódot ott, ahol nincs is hiba. -
Pubszon
veterán
válasz
happy555 #490 üzenetére
Köszi a kódot.
A asm volatile (" jmp 0"); parancs a szoftveres reset? -ezt kipróbálom még ma- Mert akkor inkább ezt használom és egy bemenetet nem kell felhasználom meg kábelezni sem kell.
Ha pedig a jelenleginél maradok, akkor egy 1KOhm-os ellenállást beiktatok, de jelenleg megy rendesen. -
tiggger
csendes tag
válasz
happy555 #451 üzenetére
Jogos
Igazából,azt tudom,hogy 12 voltról nem kapcsol ki és nem melegszik az IC.Az állapotjelző LED*-ek világitanak illetve villognak....tehát pontosan ugy viselkedik mint USB-ről,amig le nem kapcsol(a villogó sárga led folytonosan világitani kezd),addig pedig a PC felismeri és ha sietek az arduino progiban meg is tudom nyitni....bár ritkán tart ki ennyire sokáig...
Annyi még,hogy minnél több dolgot(tft shield,tft) kapcsolok rá,annál gyorsabban melegszik és kapcsol ki....
12 V-ról mindegy mit csinálok,sem melegedés sem kikapcsolás...
Nincs rajta sérülés,nincs rajta progi.... -
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
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. -
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.)
-
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
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
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. -
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?
-
Danex
addikt
válasz
happy555 #369 üzenetére
RemoteSwitch lenne az
#include <RemoteReceiver.h>
void setup() {
Serial.begin(115200);
RemoteReceiver::init(0, 3, showCode);
}
void loop() {
}
void showCode(unsigned long receivedCode, unsigned int period) {
Serial.print("Code: ");
Serial.print(receivedCode);
Serial.print(", period duration: ");
Serial.print(period);
Serial.println("us.");
}A kódja is egyszerű, nekem az RCSwitch nem tudta érzékelni a jeleket, illetve volt, hogy néha egy véletlenszerű kódot lökött a Monitorra, de nem jártam vele sikerrel.
(#370) Pubszon
Most látom, hogy nem sikerült neked se, a library tartalmazza az alap programot ott leírás is található, hogy hova kell kötni az érzékelőt. -
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. -
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!
-
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.
-
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é? -
-
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);
}
} -
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?
-
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?
-
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);
} -
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);
}
} -
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. -
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.
-
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á? -
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.
-
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ő)
-
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. -
spidersoft
senior tag
-
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... -
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. -
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. -
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.
-
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.
-
DragonKid22
csendes tag
-
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...
-
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... -
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 #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 -
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élgetni
Új hozzászólás Aktív témák
Hirdetés
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- iPad topik
- Vezetékes FEJhallgatók
- Xbox tulajok OFF topicja
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Megvan, milyen chipet használ a Pura 80 Ultra
- BMW topik
- Háborog az Apple az iPhone-ra írt első pornóapp miatt
- ThinkPad (NEM IdeaPad)
- Assetto Corsa EVO
- További aktív témák...
- Dell Inspiron 5406 2-in-1i5-1135G7 16GB DDR4 3200 512GB NVME 14" FHD Érintőkijelző W11Pro
- Eladó MacBook Pro 14" M1 Pro (2021) 16/512 99% akku Makulátlan állapotban!
- Újszeru GIGABYTE G5 - 15.6" FullHD 144Hz - i7-13620H - 48GB - 1TB - RTX 4050 - Win11 - 1,5 év gari
- Eladó garanciás,új állapotu projektorom kihasználatlanság miatt!
- Acer Nitro V ANV15 - 15.6"FHD IPS 144Hz - i5-13420H - 16GB - 512GB - Win11 - RTX 3050 - 2,5 év gari
- Csere-Beszámítás! Asus Számítógép PC Játékra! R5 1600X / GTX 1080 8GB / 32GB DDR4 / 256SSD + 2TB HDD
- DUPLA XEON GOLD 6134!!! HP Z8 G4 LEGNAGYOBB WORKSTATION 64GB 2x8 mag 2x16 szál gamer, szerver, munka
- Beszámítás! Sony PlayStation 5 825GB SSD digital konzol garanciával, hibátlan működéssel
- LG 27UL550-W - 27" IPS / 3840x2160 4K / 60Hz 5ms / HDR10 / AMD FreeSync
- Telefon felváráslás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged