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   181 / 854
(#) Spumifater válasza Spumifater hozzászólására (») Jan 7, 2016 1 /
 
Még csak annyit ehhez. A kérdésem csak arra vonatkozott, amire. Mivel saját magam kipróbáltam és műxik, okafogyottá vált az egész történet. Azt gondoltam, hogy kapok infót erre vonatkozólag. Azt kell mondanom, hogy nem kaptam. Illetve kaptam mindenféle tanácsot. Viszont úgy tűnt, hogy senki nem próbálta még. Ez miatt történt az, hogy magam próbáltam a végére járni. Mivel nekem műxik, így a továbbiakban megelégszem ezzel. Hiszen a cél is ennyi volt mindössze. Jelenleg legalábbis.

És köszönöm mindenkinek!
(#) Kovidivi válasza Spumifater hozzászólására (») Jan 7, 2016 /
 
"Azt gondoltam, hogy kapok infót erre vonatkozólag." - kaptál választ. Mégpedig szépen elmagyarázva, és ez volt a baj. Én még mindig azt csinálnám, hogy két db 1N4001-et sorba kötnék, azon esik kb 1V, és ezt adnám az 5V-os bemenetre. Az én multiméterem piacról való, 1500Ft volt. Meglepően pontos.
A hozzászólás módosítva: Jan 7, 2016
(#) RoliNyh hozzászólása Jan 7, 2016 / 1
 
Bocs, hogy beleszólok, de szerintem tök feleslegesen vitáztok, mondhatnám úgy is, hogy a fingot fűrészelitek...

Ha nincs multija, akkor nincs, ha neki nem kell, akkor ne vegyen.
Csinálja meg a programját úgy ahogy akarja, aztán majd ha előjönnek a "sunyi hibák", ráér szívni a fogát, hogy most akkor miért nem úgy működik, ahogy ő akarja...

Persze akkor megint itt fog kikötni valószínüleg, és csodálkozni fog, hogy esetleg másnál megy tökéletesen a kód, mert normálisan van táplálva az áramkör...
(#) kameleon2 válasza Spumifater hozzászólására (») Jan 7, 2016 /
 
Akkor némi kis kiegészítés. Ha 5V-os áramkört kell táplálni annak bizony van egy feszültségtűrése. Ha ezen kívül esik akár csak néhány pillanatra is - kezdhetsz aggódni. Ha egy 7805-ös stabkocka állítja elő a feszültséget a panelen, annak legalább 3V-nyi tartalék kell, hogy stabilan tarthassa az 5V-ot. Ha ez nincs meg, akkor annyit ér mint egy darab drót. Azaz, ami befolyik, az ki is folyik. Úgy ahogy. Ha ingadozva, akkor ingadozva. Azért javasolták sokan a low-drop stabilizátorokat, mert azoknak nem kell ekkora tartalék. Sőt van olyan táp is, ami step-up, azaz felfelé is képes tornászni a bemenethez képest a kimenet feszültségét. Én úgy oldottam meg ezt a kérdést, hogy egészen egyszerűen vettem egy 12V/1A-es stabilizált tápot. Ez eddig minden fejlesztőkészletet elvitt, volt tartalék és még a nagyobb áramfelvételű kijelzőkkel sincs gond soha. Próbaképpen azért kipróbáltam egy 5V-osnak mondott router adaptert. A kijelző össze vissza villódzott, hol elindult-hol nem. Ezért az úgyis "műxik" és az üzembiztosan működik közé nem tennék egyenlőségjelet. Én friss arduinós vagyok, mert nemrég jutottam csak hozzá egyhez a kínai piac jóvoltából. Végigolvasgatom a TAVIR tanfolyamot - mert tényleg jó. De annak ellenére meghallgatom a többieket, hogy számos mikrokontrolleren túl vagyok már, mert mindig tanulhat újat az ember. Fogadd el, hogy stabil táppal többre jutsz. Amit én rendeltem olcsóbb, volt, mint maga az Arduino panel.
A hozzászólás módosítva: Jan 7, 2016
(#) Kera_Will válasza Spumifater hozzászólására (») Jan 7, 2016 /
 
Idézet:
„Azon kívül miért kellene nekem egy elektro-műszerész felszereltségével rendelkeznem az R3 és a hozzá készített kijelző (Illesztve hozzá) programozásához.”

Éppen a uC környezete az ahol nem ártana tisztában lenni az analóg elektronika alapokkal is és a digitális elektronikával is + megfelelő ALAP műszerekkel rendelkezni.
Nyaloszkóppal nem sokra mész.
Nem csak azt a pár sort megírni vagy letolni a minta progikat.
Ha meg valami nem megy és nem úgy működik akkor meg csodálkozni, hogy mért nem megy?Esetleg felesleges hibáktól , károktól kíméled meg magad.
Sajnos a világunk jelenlegi "fejlettségi foka" lehetővé teszi ezt a hozzáállást számos dologhoz és számos esetben .
(#) siletto hozzászólása Jan 8, 2016 /
 
Valakinek van tapasztalata nRF24L01+ modullal?

Vettem még régebben kettőt a PA+LNA árnyékolt változatból, de eléggé belekavarodtam a programozásba.
Ha valaki esetleg használja, szeretnék egy kis felvilágosítást kérni hogy megértsem az alap funkcióit
(#) k3gy3tl3n válasza siletto hozzászólására (») Jan 8, 2016 /
 
Én használom küldjek hozzá kódot? Radiohead féle NRF24 library-t használom hozzá. Arduino nanoval megy szépen.
A hozzászólás módosítva: Jan 8, 2016
(#) siletto válasza k3gy3tl3n hozzászólására (») Jan 8, 2016 /
 
Üdv! Hát az nem lenne rossz. Én Mirf library-t használtam hozzá, már amit sikerült

Nem a sorokkal van bajom, hanem hogy raddr, taddr meg payload stb. Arról már nem is beszélve hogy láttam olyan libraryt is, ahol még csatornák is voltak meg miegymás.

Én nem akarok semmi extrát, csak főleg szöveget meg számokat küldeni vele, semmi bájtozás meg ilyenek, mint egy sima soros porton.
(#) k3gy3tl3n válasza siletto hozzászólására (») Jan 8, 2016 /
 
Én ezt a csatolt verziót használom, az examples\nrf24 mappában van két példa kód is (1-1 adó és 1-1 vevő) a "reliable" verzió lassabb viszont biztonságos és van benne nyugtázás. A másik gyors, nyugtázás nélkül. Nekem pl távirányító egy hajóhoz és nem kell a nyugtázás inkább a friss infó a fontos. 500m-ig teszteltem ezt a verziót.
Ja még annyit hogy a program elején le van írva hogyan kösd össze az NRF modult az arduinoval, konkrétan:
http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
1 - GND
2 - VCC 3.3V !!! NOT 5V
3 - CE to Arduino pin 8
4 - CSN to Arduino pin 10
5 - SCK to Arduino pin 13
6 - MOSI to Arduino pin 11
7 - MISO to Arduino pin 12
8 - UNUSED
Semmit sem kell beállítani a kód úgy ahogy van működik. Minden paraméter, address, channel, stb meg van adva, ha nem tetszik persze finomhangolhatod ahogy neked tetszik.
A hozzászólás módosítva: Jan 8, 2016
(#) k3gy3tl3n válasza k3gy3tl3n hozzászólására (») Jan 8, 2016 /
 
Még pár dolog. Ahhoz, hogy működjön az Arduino GUI ban be kell tallózni ezt a radiohead könyvtárat hogy megtalálja a header fájlokat. (Arduino GUI Sketch menü->Include library->Add ZIP library). Fordításnál nekem hibát dobott, nem talált valami header filet, amit Arduino.h-ra kellett cserélni, ha ráguglizol a hibaüzenetre meg fogod találni. Táp mindenképp 3.3V legyen és kondi kell az NRF modul tápjára (10µF körüli), ezt is millió helyen kivesézték.
(#) siletto válasza k3gy3tl3n hozzászólására (») Jan 8, 2016 /
 
Üdv! Na pont ez a library amiből egy szót se értek. Ennél talán némileg a Mirf is egyszerűbb volt, vagy max. ugyanilyen. Pont ezzel a millió sizeof() meg buffer ami kikészít, és nekem nem megy.

Nem a paranccsal van baj, csak azt is leírhatná valaki gyalog módszerrel, hogy mi ez egyáltalán, és hogy kell beállítani hogy mit kapj.
Értem én, hogy valami tömbnek a hosszát kell beírni, de mi az a tömb, mire kell, miért kell ilyen hosszúra és ilyen változótípussal létrehozni, hogy működik a küldés folyamata, miket küld egyáltalán át, ilyenek. Ez az amiről sajnos senki se írt, mindenki csak azt ecsetelte hogy ez a lib milyen jó és egyszerű.

Nem vagyok reménytelen, ki tudnám cserélgetni a szavakat hogy próbálkozzak, de azzal nem érnék semmit. Ha változtatok bármit, összeomlik az egész. Ha a fent említett le lenne valahol írva érthetően, utána felvilágosulnék hogy mit hogyan kell konvertálni hogy egy szöveget át tudjak vinni például.
(#) Tetye hozzászólása Jan 8, 2016 /
 
Sziasztok!
Azt szeretném kérdezni, hogy bascom vagy arduino alatt valaki használt-e már SNMP-t ? Már 3 hónapja csak szenvedek de nem jutottam semmire. Feltettem egy arduino-t a házfalára kintre dobozba tettem rá pár érzékelőt és azok adatait szeretném lekérdeni úgy hogy BannanaPi-n futó nagios kérdezgetné le. Egy arduino mega2560, vagy egy uno lenne a cél panel egy w5100 shilded, vagy esetleg enc-vel. Tudna valaki segíteni ebben ?
Üdv.
(#) k3gy3tl3n válasza siletto hozzászólására (») Jan 8, 2016 /
 
Amit neked szerkesztened kell az kizárólag a buf.
Az elején meg van adva hogy hány bájtos legyen:
  1. uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];

Ha belenézel az RH_NRF24.h-ba akkor láthatod hogy:
  1. // This is the maximum number of bytes that can be carried by the nRF24.
  2. // We use some for headers, keeping fewer for RadioHead messages
  3. #define RH_NRF24_MAX_PAYLOAD_LEN 32
  4.  
  5. // The length of the headers we add.
  6. // The headers are inside the nRF24 payload
  7. #define RH_NRF24_HEADER_LEN 4
  8.  
  9. // This is the maximum RadioHead user message length that can be supported by this library. Limited by
  10. // the supported message lengths in the nRF24
  11. #define RH_NRF24_MAX_MESSAGE_LEN (RH_NRF24_MAX_PAYLOAD_LEN-RH_NRF24_HEADER_LEN)

32-4 azaz 28 bájtot küldhetsz át maximum egy csomagban, ez ugye 28 db 0-255 közötti szám, ha hexában nézzük akkor 28db 0x00 és 0xFF közti szám ha karakterként nézzük akkor meg az ASCII táblának megfelelő karakter pl decimális 122 = hexa 0x7A = 'z' karakter ez már csak kiiratás kérdése hogy számnak vagy karakternek iratod e ki az adott bájtot.
Ahány adat bájtot raksz az adó oldalon a buf-ba annyi lesz a vevő oldalon is de maximum ugye 28 lehet egy csomagban. A vevő oldalon is feltöltődik a buf ha sikeres volt az adatátvitel és ugyan azok a bájtok lesznek benne amit az adó oldalon beletettél.
(#) k3gy3tl3n válasza k3gy3tl3n hozzászólására (») Jan 8, 2016 / 1
 
Nézzük a konkrét példát, az example mappában az rf24_clien (ez az adó) ami küldeni fog egy üzenetet a vevőnek
  1. void loop()
  2. {
  3.   Serial.println("Sending to rf24_server");
  4.   // Send a message to rf24_server
  5.   uint8_t data[] = "Hello World!"; //a data tömb tartalmát fogjuk átküldeni ami most a Hello World szöveg
  6.   rf24.send(data, sizeof(data)); //ez maga a küldés, megnézi hány bájt van a data tömbben és azt átküldi, ez jelenleg ez 11db: 'H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd'
  7.  
  8.   rf24.waitPacketSent(); //várunk hogy a küldés befejeződjön
  9.   // Now wait for a reply
  10.   //a vevő valamit vissza fog válaszolni itt erre várunk
  11.   uint8_t buf[RH_RF24_MAX_MESSAGE_LEN]; //a buf tömbbe fogjuk tárolni a választ
  12.   uint8_t len = sizeof(buf);
  13.  
  14.   if (rf24.waitAvailableTimeout(500))
  15.   {
  16.     // Should be a reply message for us now  
  17.     if (rf24.recv(buf, &len)) //itt kapjuk meg a vevőtöl amit vissza válaszolt és beletesszük a buf-ba     {
  18.       Serial.print("got reply: ");
  19.       Serial.println((char*)buf); //kiirjuk hogy mit válaszolt vissza a vevő, ez lesz az "And hello back to you" ahogy majd látni fogod a vevő kódjában
  20.  
  21.     }
  22.     else
  23.     {
  24.       Serial.println("recv failed");
  25.     }
  26.   }
  27.   else
  28.   {
  29.     Serial.println("No reply, is rf24_server running?");
  30.   }
  31.   delay(400);
  32. }


A vevő pedik azrf24_server:
  1. void loop()
  2. {
  3.   if (rf24.available())//ha kaptunk adatot az adótól
  4.   {
  5.     // Should be a message for us now  
  6.     uint8_t buf[RH_RF24_MAX_MESSAGE_LEN];
  7.     uint8_t len = sizeof(buf);
  8.     if (rf24.recv(buf, &len)) //tegyük bele a buf-ba
  9.     {
  10. //      RF24::printBuffer("request: ", buf, len);
  11.       Serial.print("got request: ");
  12.       Serial.println((char*)buf); //kiírjuk hogy mit kaptunk, ez ugye a "Hello World"-lesz
  13. //      Serial.print("RSSI: ");
  14. //      Serial.println((uint8_t)rf24.lastRssi(), DEC);
  15.      
  16.       // Send a reply
  17.       uint8_t data[] = "And hello back to you"; //visszaválaszolunk az adónak azt hogy "And hello back to you"
  18.       rf24.send(data, sizeof(data)); //elküldjuk a válaszunk az adónak
  19.       rf24.waitPacketSent(); //várunk hogy befejeződjön a küldés
  20.       Serial.println("Sent a reply");
  21.     }
  22.     else
  23.     {
  24.       Serial.println("recv failed");
  25.     }
  26.   }
  27. }

Ugye amint látod itt két irányú a kommunikáció, de az adóból kitörölheted azt a részt ahol válaszra vár, a vevőből pedig azt ahol visszaválaszol. Így mindíg csak az adó fogja küldözgetni hogy "Hello World" és a vevő nem küldözgeti vissza hogy "And hello back to you". Ennél egyszerűbb nem is lehetne.
A hozzászólás módosítva: Jan 8, 2016
(#) siletto válasza k3gy3tl3n hozzászólására (») Jan 8, 2016 /
 
Hú ez tök jó
Végülis így olvasva már sokkal egyértelműbb.
Az első és egyetlen programozási nyelv amit tanultam, a Java volt, az is csak alapszinten, és ott nem nagyon volt ilyen hogy mennyit lehet küldeni, meg milyen hosszú, stb, azért furcsa kicsit.


Ha jól értelmezem, akkor maximum 28 bájt hosszú a csomag adat része, és 4 a fejléc, de ha csak 1 vagy 5 bájotot akarok küldeni, akkor is jó eredmény ér oda.

És akkor a 28 bájtnál hosszabb adatot nem lehet elküldeni, vagy felosztja magától 28bájtos részekre?
(#) k3gy3tl3n válasza siletto hozzászólására (») Jan 8, 2016 /
 
Nem osztja fel, arra neked kell figyelni hogy ha 28 bájtnál hosszabb üzenetet akarsz küldeni akkor azt csak 2,3,4..... vagy több darabban tudod átvinni. Erre mondjuk kitalálhatsz valami saját protokoltt, pl az első bájt mindíg az lesz hogy hány csomagból áll egy üzenet, ezt a vevő oldalon megnézed és tudni fogod hogy ha teszemazt az első bájt 4 akkor 4db csomagból fog állni egy üzenet amit össze kell raknod.Vagy ha a csomag utolsó karaktere '#' akkor a következő csomagban lévő szöveg még hozzá fog tartozni. Ez már csak fantázia kérdése. Azt tudja kezelni ha 28-nál rövidebb mivel lekéri mindíg a hosszát, de hosszabb nem lehet.
A hozzászólás módosítva: Jan 8, 2016
(#) Petikee16 hozzászólása Jan 9, 2016 /
 
Sziasztok! Lenne egy kis problémám nem értem hogyan kell beállítani azt hogy pl 1 jel 1fordulat vagy pl 36 jel az 1fordulat
a kód
  1. /*
  2.  * Optical Tachometer
  3.  *
  4.  * Uses an IR LED and IR phototransistor to implement an optical tachometer.
  5.  * The IR LED is connected to pin 13 and ran continually.
  6.  * Pin 2 (interrupt 0) is connected across the IR detector.
  7.  *
  8.  * Code based on: www.instructables.com/id/Arduino-Based-Optical-Tachometer/
  9.  * Coded by: arduinoprojects101.com
  10.  */
  11.  
  12. int ledPin = 13;                // IR LED connected to digital pin 13
  13. volatile byte rpmcount;
  14. unsigned int rpm;
  15. unsigned long timeold;
  16.  
  17. // include the library code:
  18. #include <LiquidCrystal.h>
  19. // initialize the library with the numbers of the interface pins
  20. LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
  21.  
  22. void rpm_fun()
  23.  {
  24.    //Each rotation, this interrupt function is run twice, so take that into consideration for
  25.    //calculating RPM
  26.    //Update count
  27.       rpmcount++;
  28.  }
  29.  
  30. void setup()
  31.  {
  32.    lcd.begin(16, 2);  // intialise the LCD
  33.  
  34.    //Interrupt 0 is digital pin 2, so that is where the IR detector is connected
  35.    //Triggers on FALLING (change from HIGH to LOW)
  36.    attachInterrupt(0, rpm_fun, FALLING);
  37.  
  38.    //Turn on IR LED
  39.    pinMode(ledPin, OUTPUT);
  40.    digitalWrite(ledPin, HIGH);
  41.  
  42.    rpmcount = 0;
  43.    rpm = 0;
  44.    timeold = 0;
  45.  }
  46.  
  47.  void loop()
  48.  {
  49.    //Update RPM every second
  50.    delay(1000);
  51.    //Don't process interrupts during calculations
  52.    detachInterrupt(0);
  53.    //Note that this would be 60*1000/(millis() - timeold)*rpmcount if the interrupt
  54.    //happened once per revolution instead of twice. Other multiples could be used
  55.    //for multi-bladed propellers or fans
  56.    rpm = 30*1000/(millis() - timeold)*rpmcount;
  57.    timeold = millis();
  58.    rpmcount = 0;
  59.  
  60.    //Print out result to lcd
  61.    lcd.clear();
  62.    lcd.print("RPM=");
  63.    lcd.print(rpm);
  64.  
  65.    //Restart the interrupt processing
  66.    attachInterrupt(0, rpm_fun, FALLING);
  67.   }
A hozzászólás módosítva: Jan 10, 2016
(#) Balázs válasza Petikee16 hozzászólására (») Jan 9, 2016 /
 
Ezt a sort módosítsd:
  1. rpm = 30*1000/(millis() - timeold)*rpmcount;

De egyébként oda is van írva kommentbe. És legközelebb használd a CODE blokkot, hogy formázottan lássuk a kódodat...
(#) Petikee16 válasza Balázs hozzászólására (») Jan 9, 2016 /
 
Szia Bocsi nem tudtam a code blokkról még nemkellett használnom
Tudom hogy oda van írva csak az nem tiszta hogy akkor a 30jel az ezer fordulat ? bocsi ha hülyeséget kérdeztem
(#) Balázs válasza Petikee16 hozzászólására (») Jan 9, 2016 / 1
 
Nem. Az rpmcount változó jelenleg fordulatonként kétszer növekszik, és az eltelt idővel osztasz le milliszekundumban. Ahhoz tehát, hogy másodpercenkénti fordulatszámot kapj, az egészet még meg kell szorozni 500-zal. És mivel egy percben 60 másodperc van, az RPM értékhez még szorozni kell 60-nal is, így jön ki az a 30000. Általánosan, ha N impulzust kapsz fordulatonként, akkor 60000/N-nel kell szorozni.
(#) Petikee16 válasza Balázs hozzászólására (») Jan 9, 2016 /
 
Köszönöm megyek "kisérletezni"
(#) sejtek hozzászólása Jan 9, 2016 /
 
Sziasztok,
Nem tudom rátölteni az arduinora a programot, ezt irja hibaüzenetnek:
avrdude: stk500v2_ReceiveMessage(): timeout
A próbáltam frissíteni az ezközkezelőbe az illesztőprogramot, de nem segít.
Nem tudjátok mi a megoldás?
(#) mikrokapcsolo válasza sejtek hozzászólására (») Jan 9, 2016 /
 
Helló!
Milyen arduino, milyen usb illesztővel?
(#) sejtek válasza mikrokapcsolo hozzászólására (») Jan 9, 2016 /
 
Szia
Mega 2560, és van rajta usb csati.
A gépen pedig windows7 van.
A hozzászólás módosítva: Jan 9, 2016
(#) atus1981 válasza sejtek hozzászólására (») Jan 10, 2016 /
 
Mini-usb, micro-usb, male, female?
A kérdés nem az usb meglétére vonatkozott, hanem milyen chip végzi az illesztést a pc és az atmega között...
(#) Medve válasza sejtek hozzászólására (») Jan 10, 2016 /
 
Haladjunk, Ha CH340G, akkor telepítetted-e annak driverét?
(#) sejtek válasza Medve hozzászólására (») Jan 10, 2016 /
 
Egy kicsit magas nekem ez a labda...
Az arduino szoftverét telepítettem föl. Elvileg működnie kéne, de mégse.
(#) Medve válasza sejtek hozzászólására (») Jan 10, 2016 /
 
Ez a probléma engem is érdekel, azért vagyok így besózva, tehát pillants a panelre, s írd meg, hogy milyen IC (k) vannak rajta. Sajnos vannak "más" Arduinok is
(#) atus1981 válasza sejtek hozzászólására (») Jan 10, 2016 /
 
Driver
ezt dobd fel és kész.
(#) k3gy3tl3n válasza sejtek hozzászólására (») Jan 10, 2016 /
 
Az eredeti arduinokra általában FTDI chipet tesznek ami az usb->soros átalakítást megcsinálja a PC és az Arduinon lévű mikrokontroller között, egy arduino nanon ez ilyen. Az olcsóbb kínai verziókra viszont CH340G chipet tesznek ami pedig így néz ki. Szóval ennek alapján kell drivert telepíteni a gépedre, az Arduino IDE magában nem elég. Azt nem tudom hogy FTDI chipes verzióhoz települ e driver amikor az Arduino IDE-t telepíted, de a CH340G-hez biztos hogy nem.
Következő: »»   181 / 854
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