Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   241 / 839
(#) holex válasza brumbrus hozzászólására (») Júl 5, 2016 /
 
A while(buttonPushCounter == 2) egy végtelen ciklus. Abba beragad és nem is foglalkozik többet a gombnyomásaiddal.
(#) brumbrus válasza holex hozzászólására (») Júl 5, 2016 /
 
És valahogy át lehetne írni, hogy kilépjen?
(#) misi93 válasza Panhard hozzászólására (») Júl 6, 2016 /
 
Én is így tudtam, hogy ha van SD begin akkor inicializálja a kártyát és minden megy tovább...
Nem vagyok nagy arduinos sőt semmilyen program nyelvet nem nagyon ismerek, inkább több programból összevágom ami nekem kell, illetve kísérletezek. Azt se mondom hogy nem én rontottam el valamit (múltkor kb 10 percig kerestem egy nyitott zárójelet )
Igen a GPS vevőm kb 2 perc az átlag míg küld adatokat. Még úgy is hogy lehuzom és egyből vissza adom neki a tápot. (NEO 6M ebay-es)
(#) ZsoltyFM hozzászólása Júl 6, 2016 /
 
Sziasztok! Egy arduino due modult programozok és jól jönne egy kis segítség.
Esetleg valaki foglalkozott e már mélyebben a DAC- al?
Pontosabban arról lenne szó hogy szeretném feléleszteni benne a DMA vezérlőt.
(#) yupiter00 hozzászólása Júl 7, 2016 /
 
Sziasztok!
Olyan kérdéssel fordulok hozzá ,hogy az adott vezérlő panelre hová forrasszam a vezetékeket ahhoz,hogy ardunion keresztül felismerje tehát RX és TX kellene(Phantom 3 4K tav panelrol van szo)
(#) brumbrus hozzászólása Júl 8, 2016 /
 
Sziasztok!
Egy infra távirányítóval szeretnek ledet vezérelni.
A ledet szépen ki és be bírom kapcsolni, ám amikor azt a gobot nyomom meg, hogy változzon a fényereje folyamatosan(fade), akkor csak akkor fut a program ha nyomvatartom a gombot a távirányítón.
Hogyan kéne átírni a kódot?
  1. #include <IRremote.h>
  2.  
  3. int IRpin = 6;  // pin for the IR sensor
  4.  
  5. const int LED1 = 5;       // the pin that the LED is attached to
  6.  
  7.  
  8. int brightness = 0;    // how bright the LED is
  9. int fadeAmount = 5;    // how many points to fade the LED by
  10.  
  11.  
  12.  
  13. IRrecv irrecv(IRpin);
  14. decode_results results;
  15.  
  16. void setup()
  17. {
  18.   Serial.begin(9600);
  19.   irrecv.enableIRIn(); // Start the receiver
  20.   pinMode(LED1, OUTPUT);
  21.   digitalWrite(LED1,LOW);
  22.  
  23. }
  24.  
  25. void loop()
  26. {
  27.    
  28.   if (irrecv.decode(&results))
  29.     {
  30.       Execute();
  31.       Serial.println(results.value);
  32.       irrecv.resume();   // Receive the next value
  33.     }
  34. }
  35. void Execute(){
  36.  switch(results.value){
  37.     case 2362238:                             //be,ki
  38.       digitalWrite(LED1,!digitalRead(LED1));
  39.       delay(150);
  40.       break;
  41. }
  42.      
  43.  switch(results.value){
  44.       case 2364285:
  45.       analogWrite(LED1, brightness);
  46.  
  47.   // change the brightness for next time through the loop:
  48.   brightness = brightness + fadeAmount;
  49.  
  50.   // reverse the direction of the fading at the ends of the fade:
  51.   if (brightness == 0 || brightness == 255) {
  52.     fadeAmount = -fadeAmount ;
  53.   }
  54.   // wait for 30 milliseconds to see the dimming effect
  55.   delay(30);
  56.        
  57. }
  58.  
  59. }
(#) Kera_Will válasza brumbrus hozzászólására (») Júl 9, 2016 /
 
Csináljál egy fadder függvényt ami csak a fényerővel játszik úgy ahogy szeretnéd, folyamatosan ciklusban fut.A ciklusból való kilépési feltételét , érdemes a ki/be kapcsoló infra jelsorozat figyelésével megszakíthatóvá tenni.
Aztán ezt a függvényt (alprogramot) hívd meg a második switch - case feltételes eset választó utasítás párral.
(#) Kera_Will válasza Kera_Will hozzászólására (») Júl 9, 2016 /
 
Multitasking használata célszerű már ennél a problémánál. A delay függvény hanyagolandó mert késlelteti a program reakció idejét ezért kell helyette a millis-t használni a lenti hivatkozások ezt segítik megérteni.

használható linkek :

multitasking 1
összefoglaló
delay vs millis
(#) kezdoke hozzászólása Júl 10, 2016 /
 
Sziasztok!

Segítségeteket szeretném kérni. Mivel még nem volt dolgom arduinoval ezért írok ide.
Szeretnék reléket vezérelni interneten keresztül telefonról akár gépről. 6 db mágnesszelepet akarok kapcsolni vele külön-külön (öntözőrendszer mágnesszelepjei) kérdésem az lenne hogy mennyi fantáziát láttok benne, mennyire nehézkes egy ilyet összehozni?
(#) ZsoltyFM hozzászólása Júl 10, 2016 /
 
Szasztok!
Egy DUE modult használok és éppen a megszakításokkal bajlódok.
DMA vezérelten használom az egyik dac kimenetét magas prioritású megszakításban, és szeretnék ebből a magszakítási rutinból egy bizonyos esetben egy alacsonyabb prioritású megszakítást aktiválni hogy amint ez a magszakítás lefut, az legyen az elsődleges feladat hogy azt is elvégezze és majd csak aztán térjen vissza a főprogramhoz. De miközben az alacsonyabb prioritású rutin van feldolgozás alatt időnként esélyes hogy azt is meg kell szakítani és a magasabb prioritású gyorsabban lefutó megszakításba is vissza kell térni. Ezért mindenképpen előnyös lenne hogy programból tudjam aktiválni az alacsonyabb prioritású megszakítást.
A kérdés az lenne hogy van e rá mód a periférikus megszakítások babrálása nélkül egy szoftveres megszakítás generálni?
(#) ZsoltyFM válasza kezdoke hozzászólására (») Júl 10, 2016 1 /
 
Arduino-val szinte könnyű.
(#) cupika97 válasza kezdoke hozzászólására (») Júl 10, 2016 /
 
Egy arduino, ethernet shield, es relé shield szükséges hozzá. Programozásban meg segítünk.
(#) Gabó válasza kezdoke hozzászólására (») Júl 10, 2016 /
 
Itt egy tutorial: Bővebben: Link jól összefoglal mindent.
(#) gerleimarci válasza kezdoke hozzászólására (») Júl 10, 2016 /
 
Szia!
Van fent a neten pár project ezzel kapcsolatban.Bővebben: Link Bővebben: Link Legegyszerűbb valamelyiket lemásolni és akkor nem kell programot írni sem (bár ez lehet hátrány is).
(#) Tibicsek hozzászólása Júl 10, 2016 /
 
Üdv!
készítettem Arduinoval egy "öntözés vezérlőt" igazából 14 kimenetem van és ezek a kimenetek közti váltási intervallumot tudom váltotzatni lenne eg olyan plusz feladatom még vele, hogy akarok berakni egy dip sort és 14 dip kapcsolóval és ezzel azt szeretném megvalósítani, hogy ha mondjuk az 1-es és 14es dip alacsony szinten van akkkor ne úgy menjen végig a ciklus, hogy 1-14ig hanem az 1es és 14est kihagyva menjen ezt hogyan lehetne megoldani?
(#) RoliNyh válasza Tibicsek hozzászólására (») Júl 10, 2016 /
 
Logikailag úgy tudod ezt megoldani, hogy mindegyik relé kimenethez hozzá rendelsz egy kapcsoló bemenetet, és azt a feltételt vizsgálod, hogy a soronkövetkező relé az időzítőtől bekapcsoló jelet kap, és a hozzárendelt kapcsolója is pl magas szinten van, akkor indulhat a beállított időzítés.

Ha a hozzá tartozó kapcsoló alacsony szinten van, akkor meg azt a ciklust átugorja, ami az adott relé időzítését vezérli, és vizsgálja a következő relé kapcsolóját...
(#) andykaaa hozzászólása Júl 10, 2016 /
 
Sziasztok.
Arduino alatt letezik olyan függvény amivel egy lépésben meg lehet határozni hogy két érték közül melyik kisebb / nagyobb ?
(#) Bakman válasza andykaaa hozzászólására (») Júl 10, 2016 /
 
Mit értesz egy lépés alatt?
(#) Tibicsek válasza RoliNyh hozzászólására (») Júl 10, 2016 /
 
erre gondolsz? a stat nálam egy változó amit növelek, ha egy feltétel nem teljesül
  1. if (stat == 0 && dipallapot1 == HIGH)
A hozzászólás módosítva: Júl 10, 2016
(#) RoliNyh válasza Tibicsek hozzászólására (») Júl 10, 2016 /
 
Ilyesmire, de a programozásban talán más jobban tud segíteni, én a dolog logikai oldalára próbáltam egy ötletet adni...

Programozásban még nem vagyok olyan nagy ász, sajnos...
(#) proba válasza andykaaa hozzászólására (») Júl 10, 2016 /
 
Szerintem nem, hiszen 3 állapot létezik kisebb, nagyobb, egyenlő.
(#) andykaaa válasza andykaaa hozzászólására (») Júl 10, 2016 /
 
Egyik nagyobb, egyenlő és ha egyik sem (if, if, else) ez lenne az én megoldások.
Amit szeretnék tudni az hogy létezik ennél rövidebb is ?
(#) (Felhasználó 120038) válasza andykaaa hozzászólására (») Júl 10, 2016 /
 
Szia!

Szerintem létezik, amennyiben egyre gondolunk!

Bővebben: Link

Ehhez azonban a két változón kívül kell egy harmadik, amennyiben nem valami if szerkezetbe teszed.
Megy ez min-re is.,
(#) andykaaa válasza (Felhasználó 120038) hozzászólására (») Júl 10, 2016 /
 
Tényleg. Köszi
Nem kell a harmadik úgy hiszem
A hozzászólás módosítva: Júl 10, 2016
(#) kezdoke válasza cupika97 hozzászólására (») Júl 10, 2016 /
 
Ilyet hol érdemes venni esetleg valami megbízható helyet tudsz mondani?
(#) proba válasza andykaaa hozzászólására (») Júl 10, 2016 /
 
Az if lehetőségei:
x == y (x is equal to y)
x != y (x is not equal to y)
x < y (x is less than y)
x > y (x is greater than y)
x <= y (x is less than or equal to y)
x >= y (x is greater than or equal to y)

Vagy azt nem értem mit szeretnél, vagy azt miért kell két if .
(#) RoliNyh válasza kezdoke hozzászólására (») Júl 10, 2016 /
 
Pl itt:

Arduino Uno alaplap...

Arduino hálózati kártya...

Arduino relé kimenet...

vagy a relé helyett:

Arduino szilárdtestrelé kimenet...

Ha mindezt itthon akarod beszerezni, kb 4-5 -ször ennyibe fog kerülni...

Sok sikert a projekthez...
(#) Tibicsek válasza Tibicsek hozzászólására (») Júl 11, 2016 /
 
Esetleg valaki tudna segíteni??
(#) (Felhasználó 120038) válasza Tibicsek hozzászólására (») Júl 11, 2016 /
 
Sok megoldás lehet, de egyelőre nem értem a kört. Mennyi digitális láb van az arduinon? 14-t lefoglasz gondolom a reléknek. Ezen kívül lenne még 14 láb a kapcsolóknak, amik szintén digitális lábakat húz fel 1 re vagy húz le 0-ra?

Nekem csak nano-m van, azon nincs ennyi digitális láb, ezért kérdezem.

Ha van 28 digitális láb, akkor lehet úgy, hogy egy cilkus végigballag a dip kapcsolók lábán, kiolvassa, hogy high, vagy low, majd annak függvényében elmented az értékeket egy tömbbe, úgy, hogy ha high akkor 1, ha low akkor 0.

ciklus i=0 tól 13 'Jobb lenne, ha a ciklusod a lábak számával menne, ez a megoldás csak erre jó eddig, azaz a dip-ek mondjuk 0 től 13 ig vannak kötve az arduinon
ha digitális láb=high
lábak_tömb(i)=1
különben
lábak_tömb(i)=0


Utána pedig simán ciklus 0 től 13-ig, majd a ciklusmagon belül egy darab if.

ciklus i= 0 tol 13 ig

ha lábak_tömb(i)==1 és valami ami alapján kapcsolod a relét
Bekapcsol a relé. Az azonban fontos, hogy az itt definiált i láb a MEGFELELŐ lához tartozó relét kapcsolja! Relék ekkor 14-27 lábakon kellenek hogy legyenek, mert ilyenkor
digitalwrite(i+14)=high al tudod bekapcsolni a reléket.



Vagy másik megoldás.Ha a pin kapcsolók 1-15 lábakon vannak, míg a relék 16-29, valamint a pin kapcsoló 1 a 16-os lábon lévő relét bírálja felül, a pin2 kapcsoló pedig a 17 lábú relét szabájozza akkor:

for i= 1 től 15

ha digitalread(i)==High és ami kapcsolja neked a relét
digital write(i+15,HIGH) azaz bekapcsolja a relét, elindul az öntözés.

Annyi kell, hogy a ciklusod végigmegy mindenen, de ha az épp aktuális lábat nem kell használnia, akkor nem kapcsolja be.

Amúgy pedig nem lenne jobb, ha a pin kapcsolókat sorbakötnéd az arduino azon lábaival amik a reléket szabályozzák? Így semmi kód nem kellene..
(#) Tibicsek válasza (Felhasználó 120038) hozzászólására (») Júl 11, 2016 /
 
Megát használok és az a baj ezzel a sorbakötéssel, hogy ha 1 kört kiveszek akkor azon is lefut az időzítés tehát pl, ha lekapcsolom az 1es kört és mondjuk 5 perc az időzítésem akkor a 2es kör már 10 perc múlva fog bekapcsolni 14db kimenetem van amit használok jelenleg, ha egyszerúbb akkor bemásolom az egész kódot ezt az egész tömbös dolgot még nemnagyon értem, deha ezzel a megoldással csinálom meg akkor kifogja hagyni az időzítést? vagy ugyanúgy lefut? egy Millis függvényel van megoldva a visszaszámlálás
  1. if(currentMillis-previousMillis<interval){
  2. time= interval-(currentMillis-previousMillis);
  3. }else{
  4.   stat++;
  5. previousMillis=millis();
  6. }

így nézne ki és ha nem teljesül a feltétel akkor egy stat változót növel és mindig rákérdezek egy if-el
A hozzászólás módosítva: Júl 11, 2016
Következő: »»   241 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem