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   560 / 854
(#) djusee válasza Tetye hozzászólására (») Okt 25, 2019 / 1
 
Így próbáltam hogy ne nagyon nyuljak bele a kódba, lehetne másképpen is de szerintem így hamarabb rájössz hogy hol hasalt el:
  1. #include <Arduino.h>
  2.     #include "FastLED.h"
  3.  
  4.     #define BRIGHTNESS  100
  5.     #define NUM_LEDS 253
  6.     #define DATA_PIN 7
  7.     #define INPUT_SIZE 80
  8.  
  9.     #define myid 8  // ID
  10.  
  11.     byte lV; //led number
  12.     byte c1V; //color1 value RED
  13.     byte c2V;  //color2 value GREEN
  14.     byte c3V;  //color3 value BLUE
  15.     byte bV;  //Brightness value
  16.  
  17.     boolean frissit = false; // flag bit LED frissites
  18.  
  19.     CRGB leds[NUM_LEDS];
  20.  
  21.     void setup() {
  22.       Serial.begin(115200); // opens serial port, sets data rate to 9600 bps
  23.       FastLED.addLeds<WS2812, DATA_PIN, GRB>(leds, NUM_LEDS );
  24.     }
  25.  
  26.     void loop() {
  27.     //ID:1&LED:1&COLOR1:RED&COLOR2:GREEN&COLOR3:BLUE&BR:89
  28.     //ID:0&LED:2&COLOR1:51&COLOR2:133&COLOR3:144&BR:155
  29.  
  30.     char input[INPUT_SIZE + 1];
  31.     byte size = Serial.readBytesUntil('\n', input, INPUT_SIZE);
  32.     input[size] = 0;
  33.           char* command = strtok(input, "&");
  34.     while (command != 0)
  35.     {
  36.       char* separator = strchr(command, ':');
  37.         if (separator != 0)
  38.         {
  39.             *separator = 0;
  40.             ++separator;
  41.             int value = atoi(separator);
  42.             if(strcmp(command, "ID") == 0){
  43.               if (value == myid || value == 0){
  44.                   frissit = true; // ha az adott eszkoz lett megszolitva akkor tortenjen kiiras
  45.               }else{
  46.               command = 0;
  47.             c1V = 0;
  48.             c2V = 0;
  49.             c3V = 0;
  50.             bV = 0;
  51.             lV = 0;
  52.               break;
  53.               }
  54.             }else if(strcmp(command, "LED") == 0){
  55.               lV = value;
  56.             }else if(strcmp(command, "COLOR1") == 0){
  57.               c1V = value;
  58.             }else if(strcmp(command, "COLOR2") == 0){
  59.               c2V = value;
  60.             }else if(strcmp(command, "COLOR3") == 0){
  61.               c3V = value;
  62.             }else if(strcmp(command, "BR") == 0){
  63.               bV= value;
  64.             }
  65.  
  66.         }
  67.         command = strtok(0, "&");
  68.     }
  69.     if(frissit){ // LED re kiiras
  70.         frissit = false;
  71.         leds[lV] = CRGB(c1V, c2V, c3V);
  72.         FastLED.setBrightness(bV);
  73.         FastLED.show();
  74.     }
  75. }

Persze nem próbáltam, nincs WS LED -em.
A hozzászólás módosítva: Okt 25, 2019
(#) Tetye válasza djusee hozzászólására (») Okt 25, 2019 /
 
Sejtem hogy mire gondolsz.
De az elhasalás már sajnos a beolvasásnál volt. Amire gondolsz, hogy itt:
  1. if(strcmp(command, "ID") == 0){
  2.               if (value == myid || value == 0){
  3.               }else{

nem csinál semmit, az azért van mert utána az else nél van egy brake; hogy lépjen ki az egészből mert nem neki szólt.
És így már az 51. sorig el sem kellene mennie.
Szerintem a titok nyitja ez lesz :
  1. byte size = Serial.readBytesUntil('\n', input, INPUT_SIZE);

Csak nekem valahogy nem akart össze állni ez a dolog....
Még most sem teljesen tiszta ez a rész:
  1. byte size = Serial.readBytesUntil('\n', input, INPUT_SIZE);
  2.     input[size] = 0;

Itt most a "size" mi is? És miért kell nekünk? Aztán a zárójeles rész kb oké, gondolom addig tölti be a karaktereket az "input"-ba, amíg nem érkezik egy "\n" vagy el nem éri az "input_size"(80+1) karaktert.
Aztán marad hogy az input nevű char-nak a méretét lenullázzuk? De akkor hogy van hogy utána még is tudunk belőle adatot kinyerni?
Megoldódott elvileg a gond most fogom tesztelni, csak nem értem ezt a részét. Bascom-ban kicsit könnyebb volt annó.
Köszi a segítségeket mindenkinek !
Ha valakit érdekel így néz ki a vezérlő, és van még 5 pár panelem fölöslegben.
(#) sargarigo válasza Tetye hozzászólására (») Okt 25, 2019 /
 
A két táp nem fog megfulladni a dobozban? Elég sok ledet kell hajtsanak, majd figyeld nem-e melegszik!
(#) Tetye válasza sargarigo hozzászólására (») Okt 25, 2019 /
 

Jogos a felvetés, de szerencsére túl van méretezve és tervben vagy a doboztetőbe egy szellőzés is. Egy kb60°C körüli kapcsoló és egy kis ventilátor.
(#) Macsek71 hozzászólása Okt 25, 2019 /
 
Egy gyors véleményt kérnék !

Rendeltem egy cnc-boardos szettet. A benne levő uno "kártya" semmi arduino feliratot nem tartalmaz (csak az "UNO"t).
Én perverz kismalac Ubuntu (linux) alatt próbálkozgatnék vele ismerkedni. Arduino Ide (1.8.5) kiabál, hogy nem tud írni rá. Odáig eljutottam, hogy /dev/ttyUSB0 port zártságáról ( tiltott állapot ?) sír a program.

Ez az állapot még további finom (linux)hangolást kíván, vagy a klón-kártya kellemetlen tulajdonsága (hibája) ?

Köszi M.
eddig nem sok arduinós - linuxos - magyar nyelvű anyagot találtam
(#) Johnycorp válasza Macsek71 hozzászólására (») Okt 25, 2019 /
 
Szia.

A normál user nem képes megnyitni portot, nem tagja a dialout csoportnak.

Írd be az alábbiakat a terminálba (az USERNAME helyett a valós user neve kell):
  1. sudo adduser USERNAME dialout
  2. sudo chmod a+rw /dev/ttyUSB0


A panelen meg azért van csak az UNO felírat, mert egy klón. De attól még működik.
(#) Macsek71 válasza Johnycorp hozzászólására (») Okt 25, 2019 /
 
Köszi a gyors segítséget !

Ez a "sudo" parancs véglegesen átírja a jogosultságot, vagy minden indítás után alkalmazni kell ?
(#) Kera_Will válasza Macsek71 hozzászólására (») Okt 25, 2019 /
 

Ahogy adduser majd chmod utasitas hatasara a usered a dialout csoport tagja lett + kapott rw read write jogot azota tud beszelgetni a usered alatt inditott program a soros porton ... addig amig a usered a dialout tagja marad + rw jogai is vannak.
A hozzászólás módosítva: Okt 25, 2019
(#) Macsek71 válasza Kera_Will hozzászólására (») Okt 25, 2019 /
 
Köszi Neked is !

Egyenlőre még mindíg hibaüzenetet kapok, most már a port tiltottsága helyett "hiba a port megnyitásakor."
(#) kormika válasza Macsek71 hozzászólására (») Okt 26, 2019 /
 
Szia!
Én is hasonló hibaüzenettel szembesültem, igaz Windows 10 alatt a klón Arduinokkal, a megoldást a legutolsó Arduino IDE frissítés hozta el, a menüben a mikrovezérlő típusának kiválasztásakor a szerepel minden vezérlőhöz külön egy olyan opció is, hogy old bootloader, ha azt választom kapásból megy minden. A kis kínaiak gondolom nem követik az updateket, és még mindig a régi bootloadert rakják a klónokba, ami nem kommunikál az újabb verziós IDE-vel.
(#) djusee válasza Tetye hozzászólására (») Okt 26, 2019 /
 
Azért írtam hogy nem nagyon akartam belenyúlni mert átírtam volna szinte teljesen. Épp ez az hogy teljesül. Ha 0 értéket kapsz vissza akkor a 2 sztring egyforma. Ezért itt a frissit változót true ra állítjuk majd pediglen akkor szólitjuk meg a LED et ha az ö ID jének szólt az üzenet. Ugyebár ha ID:0 át küldünk akkor az mindenkinek szól. Az INPUT_SIZE azért kell mert ha nem érkezik meg a '\n' adat ami ugye itt az üzenet végét jelenti akkor könnyen adatvesztés vagy nagyobb galiba lehetne ha megtelne a puffered.(egyébként szerintem böven túl van méretezve a puffered)
  1. input[size] = 0;
ezzel nem a méretét nullázzuk, hanem a kapott karakterlánc végét lezárjuk vagyis NULL karaktert irunk, sztring érdekesség .
A hozzászólás módosítva: Okt 26, 2019
(#) djusee válasza djusee hozzászólására (») Okt 26, 2019 /
 
Remélem érthetö, sajnálom nehezen fogalmazok
(#) djusee válasza Tetye hozzászólására (») Okt 26, 2019 /
 
Esetleg egy rövid videó a világító kádról? Persze üresen
(#) tbarath válasza Macsek71 hozzászólására (») Okt 26, 2019 /
 
A sudo (így kiadva) root user-rel futtatja az utána írt utasítást.
A jogosultságoknak elvileg meg kellene maradni, bár lehet itt kavarni pl. udev-vel is, mert ezek a device-ok akkor jönnek létre, amikor rádugod a gépre.
(#) Kovidivi válasza kormika hozzászólására (») Okt 26, 2019 /
 
Nem. Követik. Én már új bootloaderes nanot kaptam! A legfőbb különbség a kettő között, hogy az old kb. 3mp-et vár, lesz-e programfeltöltés, és csak utána indul a program, az új bootloader pedig szinte azonnal indítja a programot. Mindkét bootloader ugyanannyi helyet foglal el.
(#) rammeradrian hozzászólása Okt 26, 2019 /
 
Sziasztok!

Szeretnék segítséget kérni, ugyanis korlátot tapasztalatom van csak a programozás terén.
Adott 4db APDS-9930-as szenzor, és egy arduino nano panel. Semmi másra nem lenne szükségem, csak hogy ezen szenzorokat kvázi infrakapuként tudjam kezelni és egy változóban megkapni hogy van-e valami felette vagy nincs. Tudom erre létezik egyszerű IR tranzisztor és IR led komparátor kész... Viszont fontos a méret, mivel ez egy modellvasúti sín talpfái közé kellene, hogy beférjen és a felette elhaladó járművek érzékelése lenne a cél.
Na a problémám a buszrendszerű kommunikáció. Ezek a szenzorok I2C-re kapcsolódnak. Lehet egyszerre 4 (vagy több) szenzor a buszon? Ha igen, akkor valaki tudna rá példaprogramot? A végén 4 változóra lenne szükségem a 4 szenzor által érzékelt állapotról.
Ha valaki foglalkozott már ezzel, akkor a segítségéért nagyon hálás lennék!

Köszönöm!
(#) kapu48 válasza rammeradrian hozzászólására (») Okt 26, 2019 /
 
Szerintem a nagyobb probléma, hogy kapsz e értékelhető jeleket az I2C rendszeren?
Ha 12V-os szénkefés motorok szikráznak felette, óriási elektromos zajt keltve.
(#) asrock hozzászólása Okt 26, 2019 /
 
Egy Esp8266 vel milyen tudom elküldeni a következő linket egy szervernek?

  1. http://192.168.1.20/rr_gcode?gcode=G0%20X50
A hozzászólás módosítva: Okt 26, 2019
(#) rammeradrian válasza kapu48 hozzászólására (») Okt 26, 2019 /
 
Erre nem gondoltam, viszont nem hinném hogy az esetleges elektromágneses mező befolyásolná a szenzort. Azért a hajtásláncot (motor és a kardán környéke) egy masszív tömör vas alváz veszi körül.
A hozzászólás módosítva: Okt 26, 2019
(#) pipi válasza asrock hozzászólására (») Okt 26, 2019 /
 
HTTPclient mintaprogi?
(#) pipi válasza rammeradrian hozzászólására (») Okt 26, 2019 / 1
 
Az i2c busz ad lehetőséget több eszköz kezelésére egy buszon. Az eszközöknek egyedi, különböző i2c címmel kell rendelkezniük. Pl az eepromoknak van külön lábicskuja, amin keresztül változtatható a címük. Úgy látom az adps-nek nincs ilyen lehetősége(nem olvastam végig), belőle nem tehetsz többet ugyanarra a buszra, de más tipusú eszközt tehetsz ugyanerre a buszra...
Esetleg csinálj 4 külön i2c buszt(ugyanazzal a kontrollerrel), akkor nem akadnak össze.
(#) rammeradrian válasza pipi hozzászólására (») Okt 27, 2019 /
 
Köszi, hát az I2C (és úgy általában bármilyen kommunikációs buszhoz) annyi közöm van mint az agysebészethez (egyelőre). Fogékony vagyok a dolgokra, de önállóan nehezen értem meg. Ha valaki köznapi nyelven elmondja a dolgokat akkor nem gond. De a netes leírásokban általában elveszek.
(#) asrock válasza pipi hozzászólására (») Okt 27, 2019 /
 
Kiprobálom!
(#) asrock hozzászólása Okt 27, 2019 /
 
Valaki meg tudná mondani a tuti magyar nyári/téli idöszámitás?
Mert a ds Könyvtárban is benne van de sosem müködik!
Most ntp sem ezt használom alapnak enél sem müködik!
  1. #include <NTPClient.h>
  2. // change next line to use with another board/shield
  3. #include <ESP8266WiFi.h>
  4. //#include <WiFi.h> // for WiFi shield
  5. //#include <WiFi101.h> // for WiFi 101 shield or MKR1000
  6. #include <WiFiUdp.h>
  7.  
  8. const char *ssid     = "xxxxx";
  9. const char *password = "xxxxxxxx";
  10.  
  11. WiFiUDP ntpUDP;
  12.  
  13. // You can specify the time server pool and the offset (in seconds, can be
  14. // changed later with setTimeOffset() ). Additionaly you can specify the
  15. // update interval (in milliseconds, can be changed using setUpdateInterval() ).
  16. //NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 7200, 60000);
  17. NTPClient timeClient(ntpUDP, "pool.ntp.org", 7200, 60000);
  18.  
  19.  
  20.  
  21.  
  22.  
  23. void setup(){
  24.   Serial.begin(115200);
  25.  
  26.   WiFi.begin(ssid, password);
  27.  
  28.   while ( WiFi.status() != WL_CONNECTED ) {
  29.     delay ( 500 );
  30.     Serial.print ( "." );
  31.   }
  32.  
  33.   timeClient.begin();
  34. }
  35.  
  36. void loop() {
  37.   timeClient.update();
  38.  
  39.   Serial.println(timeClient.getFullFormattedTime());
  40.  
  41.   delay(1000);
  42. }
  43.  
  44.  
  45.  
  46.      
  47.     // @return time formatted like `hh:mm:ss`
  48.    
  49.     String getFormattedTime();
  50.  
  51.    
  52.    // return time formatted like `DD:MM:YYYY`
  53.    
  54.     String getFormattedDate();
  55.  
  56.    
  57.   //  return time formatted like `DD:MM:YYYY hh:mm:ss`
  58.      
  59.     String getFullFormattedTime();
  60.  
  61.     int getYear();
  62.     int getMonth();
  63.     int getDate();
A hozzászólás módosítva: Okt 27, 2019
(#) asrock hozzászólása Okt 27, 2019 /
 
Nyari/téli idő roterbe találtam de ezt hogy lehet függvénybe foglalni?

Snap012.jpg
    
(#) sargarigo válasza asrock hozzászólására (») Okt 27, 2019 /
 
Ha most fejleszted, sok energiát már ne tegyél bele! Elvileg most már csak egy időszámítás lesz.
(#) mnyugger válasza sargarigo hozzászólására (») Okt 27, 2019 /
 
És hamarosan a sötétség.
17 órakor már tök sötét lesz.
Magyarország bele sűlyed a sötétségbe.
Anno elcseszték ezt az időzónásdit. Úgy csinálták, hogy Bécsnek jó legyen.
Most már a bűnözőknek kedvez a sötét.
A reggeli napsütés nagy részét meg átalusszuk.
A hozzászólás módosítva: Okt 27, 2019
(#) Macsek71 hozzászólása Okt 27, 2019 /
 
Köszi még egyszer minden segítséget !

Ubuntu jogosultság ( policy ? ) beállításai tréfáltak meg.

Átváltottam Ablakokra és első kattintása működni látszik
(#) kapu48 válasza pipi hozzászólására (») Okt 27, 2019 /
 
Elvileg úgy kellene lenni!
De ha megnézed az adatlapját: Bővebben: Link

Halvány említése nincsen címezhetőségnek.
Hangsúlyozzák, hogy az eszközt telefonokhoz közelség érzékelésre fejlesztették ki.
Egyedi használatra, azaz egy telefonba egy eszközt alkalmaznak csak.
Feleslegessé vált a címezhetőség, ezért ki is spórolták.
(#) asrock válasza sargarigo hozzászólására (») Okt 28, 2019 /
 
Már meglévő óraimba szeretném belerakni valahol nem midig tudok ott lenni álligatini (szüleim) és jo lenne ezt lekezelni!
Érdekes hogy az ntp nem kezelik ezt a problémát pedig régiora le van osztva...
Unios döntések nagy paraszt vakítás (nagy katyvasz) ....
Következő: »»   560 / 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