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   169 / 863
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Nov 28, 2015 /
 
Gyakorlatilag hardverszinten minden. A DUE egy ARM-ra épülő cucc az UNO, MEGA stb. pedig AVR architektúrára. Teljesen más a CPU utasításkészlete, illetve regiszterei, arról már nem is beszélve, hogy az egyik 32bites a másik pedig csak 8. A könyvtárak ezt a különbséget próbálják elrejteni előled, több-kevesebb sikerrel.
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Nov 28, 2015 /
 
Csak azt nem értem, hogy a Wire libem az megy due-vel mert használom vele, és az i2c-s lcd-nek a wire liben kívül nem kell más...
(#) pisti hozzászólása Nov 29, 2015 /
 
Szeretném a segítségeteket kérni. Feltelepítettem (Win 7) az Arduino 1.6.6-ot. A drivert is telepítettem, ez az eszközkezelőben a Portoknál a COM3-on jelenik meg , ha csatlakoztatom a panelt akkor az USB eszközként nem jelenik meg az Arduino, Amikor rádugom az USB-t akkor a tálcán nem jelez, és a programban a portok menü szürke, nem választható, a panelen a sárga LED folyamatosan villog. Hol keressem a megoldást? Köszönöm!
(#) icserny válasza pisti hozzászólására (») Nov 29, 2015 /
 
Számomra kissé zavaros a sztori, mert ha nem jelenik meg, akkor mi jelent meg a COM3-nál?

Megnézted-e, hogy milyen USB eszköz van a kártyádon, vagy ha nem, akkor mihez telepítettél drivert?
(#) pisti válasza icserny hozzászólására (») Nov 29, 2015 /
 
Uno kártyám van és azon Mega16U2 chip. A telepítőben volt a Driver mappa és onnan a 32 bites programot telepítettem.
(#) icserny válasza pisti hozzászólására (») Nov 29, 2015 /
 
A belinkelt kép némi bizakodásra ad okot.

0. Windows 7-hez biztos, hogy a 32 bites driver kell(ett) neked?

1. Lépj ki minden alkalmazásból (legfőképp az Arduino IDE-ből), ami kapcsolatban lehet a soros porttal, és húzd ki a kártyádat. Most az eszközkezelőből el kell tűnnie a COM3 portnak.

2. Dugd vissza a kártyát (ellenőrizd, hogy az USB kábel hibátlan és tövig be van nyomva). Ekkor az eszközkezelőben újra meg kell jelennie a COM3-nak.

3. Az Arduino IDE elindulása után a Tools menüben a Serial port menüpontban meg kell jelennie a COM3-nak.

Ha nem, akkor próbálkozhat újraindítással, jelenlegi driver leszedésével és a 64 biter felrakásával (feltéve, hogy 64 bites rendszered van!). A drivert úgy tudod leszedni, hoyg az eszközkezelőben jobb gombbal kattintasz a COM3 portra, és az eszköz eltávolításánál bejelölöd a "Törölje le az eszköz meghajtóprogramját" előtti négyzetet.
(#) Lamboo hozzászólása Nov 29, 2015 /
 
Sziasztok!
Egy riasztót építek Arduino segítségével de problémába ütköztem. Késleltetett riasztást kellene csinálnom, hogy be lehessen írni a pin kódot még a sziréna megindulása előtt. 30sec késleltetés kéne, de delay-t nem tudok használni, mert akkor sajnos nem lehet pin kódot beírni. Gondolom Timert kéne használnom, de nem igazán értem a timer kezelést Arduino platformon. Ebben kérnék egy kis segítséget. Sajnos angolul sem nagyon tudok, így a playground leírásai sem segítenek nekem. Előre is köszönöm a segítséget!
(#) kapu48 válasza Lamboo hozzászólására (») Nov 29, 2015 / 1
 
Kezdöknek ajánlom a millis használatát ilyen célra!
Itt kezdtünk ilyen témát tárgyalni: Bővebben: Link
(#) pisti hozzászólása Nov 29, 2015 /
 
Működik.
A probléma okát nem tudom, de Win7 32 bit törlés majd újra telepítés, driver telepítés és a COM4-en működik. A sárga LED még mindig villog. Ez természetes?
(#) icserny válasza pisti hozzászólására (») Nov 29, 2015 /
 
Idézet:
„A sárga LED még mindig villog.”
Ha ez a D13-ra kötött L LED, akkor minden rendben. Az Arduino kártyákat felprogramozva árulják: a bootloaderen kívül benne van a LED villogtató Blink mintaprogram is.
(#) morgo válasza pisti hozzászólására (») Nov 29, 2015 /
 
Próbáld átállítani az eszközkezelőben a portot COM2-re.
(#) kapu48 válasza Norbi_69 hozzászólására (») Nov 30, 2015 /
 
(#) Lamboo válasza kapu48 hozzászólására (») Nov 30, 2015 /
 
De ezzel nem tudok interruptot okozni vagy igen?
(#) Lamboo hozzászólása Nov 30, 2015 /
 
Találtam egy leírást a Timer1 használatáról ami nagyjából érthető. Ha jól értem először inicializálni kell a timert és ezután képes kiváltani interruptot de utána hogy állítom le, hogy ne váltson ki többet?
http://playground.arduino.cc/Code/Timer1
A hozzászólás módosítva: Nov 30, 2015
(#) csabeszq válasza Lamboo hozzászólására (») Nov 30, 2015 / 1
 
leállítod a Timer-t (stop), vagy leválasztod az interruptot (detachInterrupt).
(#) Lamboo válasza csabeszq hozzászólására (») Nov 30, 2015 /
 
Jól értem, hogy először inicializálni kell a timert a Timerx.initialize() függvénnyel, majd el kell indítani a Timerx.start() függvénnyel és le lehet állítani a Timerx.stop() függvénnyel? Valamint meg kell még adni az interrupt függvényt a Timerx.attachInterrupt() függvényben?
(#) csabeszq válasza Lamboo hozzászólására (») Nov 30, 2015 /
 
Bevallom, nem használtam még a könyvtárat, de elvileg így kellene működnie.
(#) Kovidivi válasza Lamboo hozzászólására (») Nov 30, 2015 / 1
 
Szia.
Őszintén egyszerűbb lenne az avr timer kezelését megnézni, mint az Arduino könyvtárát megérteni. A kezed se lenne lekötve, és kb. azonos bonyolultságú mindkettő.
(#) proba válasza Lamboo hozzászólására (») Nov 30, 2015 / 1
 
Néha szoktam olyat is csinálni, a mills függvénnyel beállítod, pl 0,5s késleltetést csinálsz a főprogramba. Ez után már csak a főprogramot kell úgy szervezni, minden ciklusban lekérezi a gombot, elvégez minden ki-bemenet kezelést. növel egy ciklusszámlálót, amivel már mindenféle időzítéses feladatot meg lehet oldani.
(#) Lamboo hozzászólása Nov 30, 2015 /
 
Köszönöm mindenkinek a segítséget! Estefelé, ha hazaérek kipróbálom a tanultakat.
(#) kapu48 válasza Lamboo hozzászólására (») Nov 30, 2015 /
 
Ha jobban utána olvasol!
Rá jönnél, hogy a „elteltIdo = millis();” már egy timer megszakításban milliszekundumonként 1-el növelt értékű számláló.

Neked csak akárhol, figyelned kel mikor haladta meg az általad kívánt értéket, és akkor riasztani.
...
De ha te ragaszkodsz a nehezebb saját megszakításhoz!
A hozzászólás módosítva: Nov 30, 2015
(#) csabeszq válasza Kovidivi hozzászólására (») Nov 30, 2015 /
 
Amit írsz, az szerintem csak kezdetben igaz.

Az AVR timer kódjának olvashatósága 0. Több év programozás után sem tudom, hogy mit jelent a CS10 | CS12 órajel forrás. Lehetetlen ilyen hülyeségeket fejben tartani.

Abban igazad van, hogy ugyanannyi energiabefektetés megtanulni a Timer osztály működését, mint az AVR-ét először, de a Timer osztálynál esélyed van arra, hogy megjegyezd és később ne kelljen a specifikációkat bújni.

A regiszterek állítgatásánál minden egyes alkalommal a dokumentációt kell bújnod. Tudod, a CS10 COMA1B1, TCCR1A meg társaikról beszélek. Az elmúlt 3 év AVR-ezés után sem tudom neked megmondani, hogy melyik bit mit csinál.

Az Arduino könyvtárak szépsége, hogy elrejti ezt a szintet.
A hozzászólás módosítva: Nov 30, 2015
(#) Lamboo válasza kapu48 hozzászólására (») Nov 30, 2015 /
 
A probléma az. hogy ha elindul a riasztás, akkor kéri a program a pin kódot és közben 30 másodpercig nem szól a sziréna. Amikor a karaktert bekérem a keypad matrixról, akkor addig áll a program, amíg meg nem kapja a karaktert így nem tudom vizsgálgatni az eltelt időt. Átírhatnám a billentyűzet kezelő programot is interruptosra és nem lenne probléma de az talán ugyanilyen nehézségű mint a timer.
(#) icserny válasza Lamboo hozzászólására (») Nov 30, 2015 /
 
Már ne haragudj, de milyen riasztó program az, ami elakad (blokkoló típusú várakozás), amíg a PIN kódra vár? Szerintem sürgősen át kellene gondolni a program szervezését! Megszakítás nélkül is megoldható, hogy egy periodikusan ismétlődő programhurokban ránézzen a billentyűzetre, s ha van valami változás, akkor gyorsan adminisztrálja, majd tovább fut a többi tevékenység végrehajtására.
  1. void loop() {
  2. if (event1())        // A esemény bekövetkezett?
  3.     event1Handler(); // A esemény kiszolgálása
  4. if (event2())        // B esemény bekövetkezett?
  5.     event2Handler(); // B esemény kiszolgálása
  6.      . . .
  7.                      // további események és feladatok
  8. }



Ha nagyon tudományosan akarod csinálni, akkor a véges állapotgépekkel célszerű megismerkedni.

Vannak bonyolultabb módszerek is, de ezekbe most nem érdemes belebonyolódni:
- Eseményvezérelt programozás Arduino kártyán
- Protoszálak és az Arduino - egy egyszerű mintapélda
- Wiring++
(#) morzsa15 hozzászólása Dec 1, 2015 /
 
Sziasztok!

Van egy pár drv8825 léptetőmotor meghajtóm viszonyt olyan problémám lenne hogy a motort sehogy se sikerül elindítanom tudnátok nekem valami rajzot illetve valami forráskódot küldeni hozzá?

Előre is köszönöm!
(#) icserny válasza morzsa15 hozzászólására (») Dec 1, 2015 /
 
(#) saua hozzászólása Dec 1, 2015 /
 
Sziasztok,

Eredetileg egy LED-et lehet ki/be kapcsolni neten keresztül a ”Led1” utasítással. Ezt módosítottam, hogy egy nyomógombbal is működjön, a nyomógomb először bekapcsolja, majd második megnyomásnál kikapcsolja a LED-et. A probléma, hogy a weboldara nem sikerül kiíratni a LED állapotát ha a gombbal kapcsolgatom.

Hogyan kellene módosítani a kódot?

  1. /*
  2. LED attached from pin 6 to ground
  3.  pushbutton attached to pin 2 from +5V
  4. 10K resistor attached to pin 2 from ground
  5. */
  6. #include <SPI.h>
  7. #include <Ethernet.h>
  8. #include <String.h>
  9.  
  10. byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
  11. byte ip[] = { 192, 168, 1, 202 };
  12. EthernetServer server(80);
  13.  
  14. int led1 = 6;
  15. int button = 2;
  16. String readString = String(30) ;
  17. boolean statusLed = false;
  18. int buttonState;   // bemeneti pin aktuális állapota
  19. int lastButtonState = LOW;   // bemeneti pin előző értéke
  20.  
  21. long lastDebounceTime = 0;  
  22. long debounceDelay = 50;    
  23. long prevido1; //előző idő eltárolására
  24.  
  25.  
  26. void setup() {
  27.  
  28. pinMode(led1, OUTPUT);
  29. pinMode(button, INPUT);
  30. Serial.begin(9600);
  31. Ethernet.begin(mac, ip);
  32. }
  33.  
  34. void loop() {
  35.  
  36. EthernetClient client = server.available(); // Create a client connection
  37.  
  38. if (client) {
  39. while (client.connected())
  40. {
  41.    if (client.available ())
  42. {
  43.   char c = client.read(); // Read char by char HTTP request
  44. if (readString.length() < 30)
  45. {
  46.  readString += (c) ;
  47. }
  48.  
  49. if (c == '\n')
  50. {
  51. if(readString.indexOf("Led1")>=0)
  52. {
  53. if (statusLed) {
  54. digitalWrite (led1, LOW) ;
  55. statusLed = false;
  56. } else {
  57. digitalWrite (led1, HIGH) ;
  58. statusLed = true;
  59. }
  60. }
  61.  
  62. client.println("HTTP/1.1 200 OK");
  63. client.println("Content-Type: text/html");
  64. client.println();
  65.  
  66. client.print ("<font size ='20'>");
  67. if (statusLed) {
  68. client.print("Led1 bekapcsolva");
  69. } else {
  70. client.print("Led1 kikapcsolva");
  71. }
  72. readString="";
  73. delay(1);      // give the web browser time to receive the data
  74. client.stop();
  75.     }
  76.    
  77.    }
  78.    
  79.   }
  80.  }
  81.  //==============================
  82.  int reading = digitalRead(button);
  83.  
  84.   if (reading != lastButtonState) {
  85.     lastDebounceTime = millis();
  86.   }
  87.  
  88.   if ((millis() - lastDebounceTime) > debounceDelay) {
  89.     if (reading != buttonState) {
  90.       buttonState = reading;
  91.  
  92.       if (buttonState == HIGH) {
  93.         statusLed = !statusLed;
  94.         digitalWrite(led1, statusLed);
  95.       }
  96.   }
  97. }
  98.  
  99. lastButtonState = reading;
  100. //==============================
  101. }
(#) Gabó válasza saua hozzászólására (») Dec 1, 2015 /
 
Tessék:
Bővebben: Link
(#) saua válasza Gabó hozzászólására (») Dec 1, 2015 /
 
Ez a kód egy kicsit másként működik, az eredeti kapcsolás itt található:
Bővebben: Link

Mikor a weboldalról kapcsolgatom minden rendben, csak mikor a nyomógombbal kapcsolom akkor nem jelenik meg a wboldalon a vátozás, de a LED -et kapcsolja. Gondolom csak a nyomógomb blokkot kellene valahogy másképp elhelyezni...már többféleképp próbáltam de csak nem akar sikerülni.
(#) erdeidominik1999 válasza saua hozzászólására (») Dec 1, 2015 /
 
Igen, mert ha megnyomod a gombot, attól az oldal nem frissül, vagy beállítasz egy autófrissítést mondjuk 5mp-re, vagy ajax és xml segítségével iratod ki (ez a jobb). Bővebben: Link
A hozzászólás módosítva: Dec 1, 2015
Következő: »»   169 / 863
Bejelentkezés

Belépés

Hirdetés
XDT.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