Hirdetés
-
Programajánló: Idén sem marad el a Bacsis-tuning Retró Számítógép kiállítás
ph A kilencedik születésnapját ünneplő rendezvény kétnapos lesz, és június 29-én nyitja meg kapuit.
-
Spyra: nagynyomású, akkus, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
Computex 2024: Új multiportos gyorstöltők is vannak a Ugreen kínálatában
ma A Nexode S széria tagjai között akár 100 wattosat is találni, USB-C és USB-A portokkal, tenyérnyi méretben.
-
PROHARDVER!
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
-
zka67
őstag
válasz
leventekov #5100 üzenetére
Szia, van programkód gomb is
A hour*360 + helyett szerintem jobb lesz a 3600-zal próbálkoznod.
-
zka67
őstag
válasz
leventekov #5124 üzenetére
Szia, először is, ez azért fórum, hogy itt tedd fel a kérdéseidet (látom most már megtetted), és ne privátba akard megbeszélni a dolgokat. A fórum azért van, hogy a kérdésedet több ember is lássa, a megoldásokból pedig mindenki tudjon tanulni.
A kérésed az álláshirdetés rovatba való, hiszen te azt kéred, hogy valaki csináljon meg neked egy munkát. Ha egy kicsit is olvasgatod majd ezt a fórumot (látom újonc vagy még), látni fogod, hogy ahhoz hogy segítséget kapj, azért neked is tenned kell valamit, legalább elkezdhetnéd a programodat, és ha elakadsz, akkor jöhet a kérés.
Van programkód gomb, azzal rövidebb kódrészeket beilleszthetsz ide is, de teljes programokat légyszi ne tegyél fel ide, mert úgysem fog senki neked átnézni több száz sort.
Üdv.
Zoli -
Tankblock
aktív tag
válasz
leventekov #5168 üzenetére
Hello,
Javaslom elöször a tutorialok böngészését, a HW es megoldások tanulmányozását, mert a mostani módszereddel sok lesz a csalódás. Ha majd érted az alapokat, akkor minden feladat könnyebb lesz. Csak jótanács.
Tervezd meg, nézz utána és válasz a helyzet nek megfelelő megoldást.
Release the Beast....
-
válasz
leventekov #5168 üzenetére
Az volt a gond a hozzászólásoddal, hogy nem volt kérdés benne, amire tudtunk volna válaszolni.
A világ minden fórumán érvényes íratlan szabályok:
1. először olvasok, hátha a topikban már volt szó a problémáról
2. használom a topik keresőjét (1 perc keresés után a 1031-es hsz-ben komplett kódrészlet a gombnyomásra), és guglizok
3. ha eddig nem találtam megoldást, leírom a problémát, amilyen részletesen lehet (pl jelen esetben beilleszted a kódodat, lehetőleg egy pastebin.com vagy hasonló link formájában)
4. leírom, hogy eddig mit tettem a megoldás érdekében
5. és csak ezután kérdezek.[ Szerkesztve ]
-
gyapo11
őstag
válasz
leventekov #5168 üzenetére
Akor nyilván te nem vagy a magcsináltatni akarók táborában.
Az is teljesen igaz, hogy a netről összeollózott kódhalmokat se szívesen nézi itt senki, legalábbis úgy látom. Sokkal jobb, ha valaki érti, hogy mit csinál. Sokkal előbb lesz válasz a "mi a fene az a digitalwrite" kérdésre, mint arra, hogy "itt van 200 sor program, mi a rossz benne".
Tehát az nem baj, ha valaki keveset tud, az a baj, ha nem is akar. Ha csak az eredményt akarja, és akár pénzért, akár ingyen, csak oldja meg valaki helyette.menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
Pubszon
veterán
válasz
leventekov #5159 üzenetére
Szia.
Segítek szívesen, kezdjük elölről.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Janos250
őstag
válasz
leventekov #5177 üzenetére
És vajon a fehér?
Azt nem tudja valaki?Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz
leventekov #5178 üzenetére
Nekem még mindig nem tiszta:
Mikor akarod kapcsolóval kapcsolni?
Amikor az óra miatt ki van kapcsolva, akkor akarod, hogy kézzel is lehessen be (és majd ki) kapcsolni?
És mit csináljon, ha egyébként is be van kapcsolva, és akkor nyomod meg a gombot? Vagy akkor nem nyomogatod úgyse, tehát mindegy?Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz
leventekov #5181 üzenetére
Kösz! Holnap veszek ragasztót
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz
leventekov #5180 üzenetére
Na, ez nem sikerült.
Vagy töltsd fel valahova a képet és a linket írd be ide a "Kattintható kódok és arcocskák" részben a "Link" gombbal, vagy alatta a "Feltöltendő képek", fájlok kiválasztása, feltöltés, stb.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Pubszon
veterán
válasz
leventekov #5178 üzenetére
Értem.
Tehát a nyomógombot szeretnéd billenőkapcsolóként használni ha jól értem, igaz?
Tehát minden megnyomáskor megváltozik a lámpa állapota és ha eléri az idő a beállított időpontot akkor kapcsoljon be, egy másik időpontban pedig le?
Erősíts meg, hogy így van.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz
leventekov #5187 üzenetére
Van egy kódom, átírtam 4 kapcsolósra.
Ezzel 4 kimenetet (LED) tudsz kapcsolgatni 4 gombbal.
Már csak ehhez kellene hozzárakni az időkapcsolást.const byte kapcsolok = 4;
const int prell = 1000;
const byte pushbutton[kapcsolok] = {8, 9, 10, 11};
const byte led[kapcsolok] = {2, 3, 4, 5};
boolean toggle[kapcsolok];
boolean button[kapcsolok];
boolean ledstate[kapcsolok];
unsigned long prelltime[kapcsolok];
void setup()
{
for (byte i = 0; i < kapcsolok; i++)
{
pinMode(pushbutton[i], INPUT_PULLUP);
pinMode(led[i], OUTPUT);
digitalWrite(led[i], HIGH);
}
}
void loop()
{
for (byte i = 0; i < kapcsolok; i++)
{
button[i] = digitalRead(pushbutton[i]);
if ((button[i] == HIGH) && (toggle[i]))
{
toggle[i] = false;
ledstate[i] = !ledstate[i];
digitalWrite(led[i], ledstate[i]);
prelltime[i] = millis() + prell;
}
if ((button[i] == LOW) && (!toggle[i]) && (millis() > prelltime[i]))
{
toggle[i] = true;
}
}
}ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz
leventekov #5190 üzenetére
A kód működik, ahogy kell, még a prell ellen is van benne megoldás.
A fenti kódból át kell alakítani így:void loop()
{
for (byte i = 0; i < kapcsolok; i++)
{
button[i] = digitalRead(pushbutton[i]);
if ((button[i] == HIGH) && (toggle[i]))
{
toggle[i] = false;
ledstate[i] = !ledstate[i];
prelltime[i] = millis() + prell;
}
digitalWrite(led[i], ledstate[i]);
if ((button[i] == LOW) && (!toggle[i]) && (millis() > prelltime[i]))
{
toggle[i] = true;
}
}
}Ez elé kell berakni azt, hogy ha az idő elérte a beállított időpontot, akkor a ledstate = false; vagy épp true.
Az i helyére 1, 2, 3 vagy 4-et kell írni ide, mivel ez nem for ciklusban lesz.
És kell még bele egy vátozó, hogy ha eléri az időpontot, akkor csak egyszer fusson le megváltoztatva a ledstate-et, mert ha nem, akkor folyamatosan ez lesz érvénybe, így nem tudod kapcsolni gombbal, mint jelenleg is![ Szerkesztve ]
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz
leventekov #5192 üzenetére
Kód beillesztésekor használd a Programkód gombot, mert így nagyon kusza az egész.
Meg még hagyd ki belőle a kijelzőt meg mindent, előbb csak a gomb meg időzítés működjön.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
tvamos
nagyúr
válasz
leventekov #5192 üzenetére
Ilyen hosszu kodot lehet, hogy jobb lenne, ha mondjuk a pastebinre tennel fol, es itt csak linket osztanal meg.
Amugy lehet, akkor mukodne, ha az oraval nem statikusan kapcsolnad be, meg ki, hanem csak akkor, amikor az allapota valtozik az oranak, akkor valtoztatnad a kimeneti statuszt.
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
gyapo11
őstag
válasz
leventekov #5192 üzenetére
A loopban vannak az ifek, ezek kapcsolják LOW-ba vagy HIGH-ba a kimenetet. Ezután a nyomógomb hiába állítja ellenkezőre, 0.1 msec múlva megint lefut a loop, és az if megint visszaállítja, tehát a nyomógomb mintha nem is lenne.
Logikailag nem jó. Kellene egy folyamatábra, és utána azt átültetni az arduino nyelvére.
Valami olyasmi kell, ami volt is egy hozzászólásban, hogy a nyomógomb megnyomása egy változót is módosít, és ezt a változót is figyelembe veszi az if.menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
Janos250
őstag
válasz
leventekov #5192 üzenetére
if ( toggle(i) ) {
világítson
}
else
{
óra szerinti vezérlés
}???
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Pubszon
veterán
válasz
leventekov #5206 üzenetére
Van egy auto meg manual módod.
A legjobban úgy lehetne megcsinálni, ha raknál be még egy gombot és azzal váltanál e két mód között.
Akár egy LED-et is beköthetnél hogy ha autó módban van akkor világítana.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz
leventekov #5211 üzenetére
Manual mikor te kapcsolod gombokkal, az automata meg mikor időre kapcsol.
Meg lehet oldani ahogy te gondolod, de hogy nincs előttem, nem tudom kipróbálni, csak fejben nehéz.Attól hogy kapcsolót tettél be nyomó gomb helyett, szerintem nem oldottad meg azt, hogy kézzel és automatán is működik a KI-, BE kapcsolás.
[ Szerkesztve ]
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
válasz
leventekov #5211 üzenetére
Mit szeretnél a gombbal pontosan csinálni?
1. Ha (időzítés miatt) éppen bekapcsolt állapotban van, akkor kikapcsolni, és fordítva?
2. Vagy csak bekapcsolni? Ez esetben a bekapcsoló gombnak prioritása van az időzítés felett? -
Pubszon
veterán
válasz
leventekov #5214 üzenetére
tudom valtani az Arduinot auto meg manual modra?
A privát üzenetedre válaszolva, igen, egy 5. gombbal tudsz váltani auto és manuál között.
Mégpedig csinálsz egy boolean változót, mondjuk automode néven.
Ennek az állapotát változtatod a 5. gombbal igaz és hamis közt, a korábban linkelt kóddal, amivel egy nyomógomb kapcsolóként működik. De akár kapcsolót is használhatsz erre.Ha igaz, akkor az autó mód fut le:
if (automode)
és ide jön a kódod amivel megadott időkben kapcsolnak ki beHa hamis, akkor a kézi mód.
if (!automode)
ide pedig a 4 gombbal való kapcsolásÉs egy LED-et használhatsz arra, hogy látsd, mely módban van éppen.
digitalWrite(módjelzőled, automode);
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
gyapo11
őstag
válasz
leventekov #5205 üzenetére
Pedig már háromféle megoldást kaptál:
- A kódod végére a gomb leolvasása, ezt ki kell egészíteni az ifekben a gombnyomást jelző változóval. Ha a gomb hatása fennáll (akár be- akár kikapcsolással), akkor az if nem akciózik.
- állapotgép. Az if nem kapcsolgat, csak egy változót állít, a gombfigyelő kódrészlet is, és a végére egy az állapotgép állapotától függő kapcsolás vagy be vagy ki.
- két üzemmód pár bejegyzéssel előbb. Ha nyomtál gombot, akkor az ifek nem működnek, tehát nem kapcsolják el a kívánt állapottól, ha másodszor is nyomtál gombot, akkor visszaállt a normál időzítéses állapot, és az ifek kapcsolgatnak.menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
Új hozzászólás Aktív témák
- Autós kamerák
- eMAG vélemények - tapasztalatok
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Nők, nőügyek (18+)
- A fociról könnyedén, egy baráti társaságban
- bitpork: 2024 phautós tali ?
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Marvel Snap
- Autós topik
- Milyen belső merevlemezt vegyek?
- További aktív témák...