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   564 / 852
(#) Shance válasza KoblogPerGyok hozzászólására (») Nov 6, 2019 /
 
Hello,
Nincs komplett lámpa csak a holdat nyomtattam ki. A talpa saját tervezés lesz amibe rakom a ledgyűrűt. Most találtam egy aurora programot ami talán jó lehet, de ez LED szalaghoz lett tervezve, vagyis az effekt a szalag egyik végéből a másikba megy, nekem meg az kellene, hogy az egész egyszerre menjen.
(#) asrock válasza Shance hozzászólására (») Nov 6, 2019 /
 
Ebbe van annyi effekt győzd végignézni keres rá FastLED 3.3....
(#) asrock hozzászólása Nov 8, 2019 /
 
u8g2lib használok i2c oledhez van 2 förész amik kiütitik szó szerint egymást!
ha elhagyom case részekbe u8g2.clearBuffer();, u8g2.sendBuffer(); nem jelenik meg a kijelzőn az adat és egyben törlődik xyze rész is !
Milyen fügvénybe kezelhető a két rész hogy egy probléma mentesen menjenek egymástól?
Multi voidal is szinte ugyanez a probléma!


  1. void axis_step()
  2. {
  3.  
  4.  
  5.    
  6.     switch (step_count)
  7. {
  8.  
  9.  
  10.   case 0:
  11.  u8g2.clearBuffer();
  12. u8g2.setFontMode(1);  
  13. u8g2.setDrawColor(1);
  14. u8g2.drawBox(0, 0, 80, 12);
  15. u8g2.setFont(u8g2_font_ncenB08_tr);
  16. u8g2.setDrawColor(2);
  17. u8g2.drawStr(5, 10,"Modeisable");
  18.  u8g2.sendBuffer();
  19.   default:
  20.  
  21.   case 1:
  22. u8g2.clearBuffer();  
  23. u8g2.setFontMode(1);  
  24. u8g2.setDrawColor(1);
  25. u8g2.drawBox(0, 0, 80, 12);
  26. u8g2.setFont(u8g2_font_ncenB08_tr);
  27. u8g2.setDrawColor(2);
  28. u8g2.drawStr(5, 10,"Mode:0.1mm");
  29.  u8g2.sendBuffer();
  30.  break;
  31.  
  32.      case 2:
  33.  u8g2.clearBuffer();    
  34. u8g2.setFontMode(1);  
  35. u8g2.setDrawColor(1);
  36. u8g2.drawBox(0, 0, 80, 12);
  37. u8g2.setFont(u8g2_font_ncenB08_tr);
  38. u8g2.setDrawColor(2);
  39. u8g2.drawStr(5, 10,"Mode:1mm");
  40.    u8g2.sendBuffer();
  41.  break;
  42.    
  43.    case 3:
  44. u8g2.clearBuffer();
  45. u8g2.setFontMode(1);  
  46. u8g2.setDrawColor(1);
  47. u8g2.drawBox(0, 0, 80, 12);
  48. u8g2.setFont(u8g2_font_ncenB08_tr);
  49. u8g2.setDrawColor(2);
  50. u8g2.drawStr(5, 10,"Mode:10mm");
  51.  u8g2.sendBuffer();
  52.  break;
  53.    
  54. }
  55.  
  56.    
  57.  
  58.  
  59.  u8g2.clearBuffer();        
  60. //------------------------
  61.   u8g2.setFont(u8g2_font_ncenB08_tr);
  62.   u8g2.drawStr(0,28,"X:");
  63.   u8g2.setCursor(15,28);
  64.   u8g2.print(posX);  
  65.  // u8g2.sendBuffer();
  66. //------------------------
  67.   u8g2.setFont(u8g2_font_ncenB08_tr);
  68.   u8g2.drawStr(0,40,"Y:");
  69.   u8g2.setCursor(15,40);
  70.   u8g2.print(posY);  
  71.  // u8g2.sendBuffer();  
  72. //------------------------
  73.   u8g2.setFont(u8g2_font_ncenB08_tr);
  74.   u8g2.drawStr(0,52,"Z:");
  75.   u8g2.setCursor(15,52);
  76.   u8g2.print(posZ);  
  77.  // u8g2.sendBuffer();
  78. //------------------------
  79.   u8g2.setFont(u8g2_font_ncenB08_tr);
  80.   u8g2.drawStr(0,64,"E:");
  81.   u8g2.setCursor(15,64);
  82.   u8g2.print(posE);  
  83.   u8g2.sendBuffer();  
  84.      
  85.  
  86.  
  87.  
  88. }
(#) KoblogPerGyok válasza asrock hozzászólására (») Nov 8, 2019 /
 
Helló.

Próbáld ki, hogy a függvény előtt clear buffer, sehol máshol, majd a switch case stb ben nem küldöd el, csak megrajilod majd a függvény végén 1x küldöd el az egészet egyben a sendbufferrel. Ebben a függvényben csak 1x torolj és rajzolj.
(#) asrock válasza KoblogPerGyok hozzászólására (») Nov 8, 2019 /
 
Igy nincs megjelenités ha case ugrik de nem tudom miért?

  1. case 1:
  2. u8g2.setFontMode(1);
  3. u8g2.setDrawColor(1);
  4. u8g2.drawBox(0, 0, 80, 12);
  5. u8g2.setFont(u8g2_font_ncenB08_tr);
  6. u8g2.setDrawColor(2);
  7. u8g2.drawStr(5, 10,"Mode:0.1mm");
  8.  u8g2.sendBuffer();
  9.  
  10.  
  11. 2 plélda --------------------------------------------------------------------
  12.  
  13. case 1:
  14.  
  15. u8g2.setFontMode(1);
  16. u8g2.setDrawColor(1);
  17. u8g2.drawBox(0, 0, 80, 12);
  18. u8g2.setFont(u8g2_font_ncenB08_tr);
  19. u8g2.setDrawColor(2);
  20. u8g2.drawStr(5, 10,"Mode:0.1mm");
  21.  
  22.  break;
(#) KoblogPerGyok válasza asrock hozzászólására (») Nov 8, 2019 /
 
Az első példánál gondolom a case 1 előtt pontosabban a switch előtt van egy clear buffer utasítás. Gondolom hogy le ellenorizted hogy tényleg belefut a switch 1 be.
(#) KoblogPerGyok válasza asrock hozzászólására (») Nov 8, 2019 /
 
Ha igen akkor komolyabb a gond mint amire gondoltam. Még utána járok.
(#) asrock válasza KoblogPerGyok hozzászólására (») Nov 8, 2019 /
 
Valami meghivás hiányzik!
void xxxx ( u8g2_t *u8g2) vagy U8G2 u8g2 berakom zárójelbe etöl meg fejreál a fordító pedig legtöbb minta példába mindig szerepel...
Bővebben: Link

Ez szép mese szerű...
Bővebben: Link
A hozzászólás módosítva: Nov 8, 2019
(#) kapu48 válasza asrock hozzászólására (») Nov 8, 2019 /
 
A 19. sorban nem jó a "default", oda "break" kel.
Majd az utolsó elágazás után lehet a default.
(#) asrock válasza kapu48 hozzászólására (») Nov 8, 2019 /
 
Köszi!
A hozzászólás módosítva: Nov 8, 2019
(#) Skori hozzászólása Nov 8, 2019 /
 
Arduino DUE lappal akartam vezérleni egy léptetőregisztert, minél gyorsabban. Amikor az 51.lábat H szintre állítom, majd a következő utasítással rögtön L szintre, akkor egy 2,2µs időtartamú impulzust kapok.
  1. digitalWrite(51, 0);digitalWrite(51, 1); // 2,2 µsec impulzus Arduino DUE 51. lábon
Azt figyelembe véve, hogy ezen a lapon 84MHz-es, 32 bites processzor van, ez túl soknak tűnt. Ezután azt a tanácsot kaptam, hogy közvetlenül a µC portját címezzem meg.
  1. PIOC -> PIO_CODR = 1<<12; PIOC -> PIO_SODR = 1<<12; // 195 nsec impulzus Arduino DUE 51. lábon
Ez ugyanazt csinálja mint az előző, viszont több mint 10x olyan gyorsan, azaz 195ns impulzust kapok, ami már megfelelő (bár az órajelet nézve lehetne akár még gyorsabb is).

Miért ennyire lassú az arduino saját digitalWrite(); függvénye? Más arduino függvények esetén is előfordulnak ennyire nagy sebesség különbségek? (melyeknél?)
A hozzászólás módosítva: Nov 8, 2019
(#) Kovidivi válasza Skori hozzászólására (») Nov 8, 2019 /
 
Mert a háttérben komplett feltételrendszerek vannak kiépítve. Megvizsgálja, hogy a digitalWrite(2,High) -nál a 2-es melyik lábat is jelenti (ezáltal lesz meg a kompatibilitás az összes alaplap között), megkeresi, melyik PORT-hoz tartozik, megnézi, be van-e állítva ez kimenetnek, ha van ehhez a kimenethez PWM csatlakoztatva, akkor leválasztja, meg megvizsgál még rengeteg dolgot. Így tudja "bolondbiztosan" a lábat bármilyen lapon átbillenteni, minden lehetőséget megvizsgálva.
Ha Te ezt a megszokott módon végzed PORTA=... , az sokkal kevesebb utasításból áll, viszont elveszted a kompatibilitást, hogy bármelyik másik lapra feltölthesd a programod.
Az összes Arduinos fv. így működik, érdemes megnézni a digitalWrite mit tartalmaz. A neten is, meg a gépeden is meg van valahol a pontos tartalma
Rengeteg ifdef van benne, és sima feltétel.
Ezt később én is elolvasom: Bővebben: Link
A hozzászólás módosítva: Nov 8, 2019
(#) Skori válasza Kovidivi hozzászólására (») Nov 8, 2019 /
 
Ok, azt a részt értem, hogy a digitalWrite() több dolgot csinál, és ezért lassúbb. Viszont ha a digitalWrite() egy 16MHz-es arduino nano-n kb 5µsec idő alatt lefut, akkor érzésre egy arduino due esetében nem kellene (2,2µsec-nél) sokkal gyorsabbnak lennie? Sajnos most nincs nano kéznél, így nem tudom lemérni, hogy ha közvetlenül a portot írom az mennyi ideig tart.

A megírt programok amúgy sem hordozhatóak teljes mértékben, hiszen egy "nagyobb tudású" lapra készített program (ha ezt a többletet használjuk is, akkor) már nem fog egy kisebb lapon futni, sokféle okból. Ebből kiindulva viszont nem lehetne mindegyik laphoz, egy hozzá tartozó, saját digitalWrite() függvény, ami az adott lapra optimalizált?
A hozzászólás módosítva: Nov 8, 2019
(#) Skori válasza Kovidivi hozzászólására (») Nov 8, 2019 /
 
Megnéztem a cikket is amit beraktál. Méri az időt egy arduino uno estében.
digitalWrite() -> 6µsec, a port közvetlen írásával 83nsec! A due esetén ez közel 200nsec volt, igaz én oszcilloszkóppal mértem, a cikkíró meg logikai analizátorral, de ez nekem túl nagy különbségnek tűnik. Most akkor a portok írása, ill. annak sebessége nem arányos az órajellel?
(#) Koncsar válasza david10 hozzászólására (») Nov 8, 2019 /
 
Szia Dávid!
Sajnos ezt már lehet, hogy nem lehet visszahozni, az RX,TX LED ahogy az USBre vagy tápra kötöm, teljes fénnyel folyamatosan világít egyszerre. Próbáltam az Mprog-ot, FTprogot, a Zadigot. De lehet, hogy valamelyik progival már én tettem bele valami csúnyaságot. Így már a WIN7 alatt az eszközkezelőben sem tünteti fel rossz néven az FT232-t. Az USB csatlakoztatásakor az eszközkezelő olyat csinál, mint amikor valami hardware-t bekötök, de nem találom meg.
Ha így is, ezek után is még szerinted menthető az Arduinó akkor légyszives segíts helyre tenni.
A hozzászólás módosítva: Nov 8, 2019
(#) Koncsar válasza Koncsar hozzászólására (») Nov 8, 2019 /
 
Még egy kép.
(#) Koncsar válasza Koncsar hozzászólására (») Nov 8, 2019 /
 
Sajnos ott van az eszközkezelőben az universal Serial Bus Devices ban. Argus to USB névre hallgat. Bárkinek a segítségét elfogadom.
A hozzászólás módosítva: Nov 8, 2019
(#) Sipy hozzászólása Nov 9, 2019 /
 
Sziasztok!

Szeretnék megépíteni egy robotot, illetve már meg is van de amikor megnyitom a programot és fordítani akarom akkor azt írja ki hogy nem sikerült lefordítani az arduino uno alaplapra. Én csak sima avr-t programozok, azt is csak basic nyelven. Átnézné nekem valaki hogy hol lehet a hiba?
(#) pipi válasza Sipy hozzászólására (») Nov 9, 2019 /
 
Pontosan mi a hibaüzenet?
(#) kapu48 válasza Sipy hozzászólására (») Nov 9, 2019 /
 
Irjál a "Serv" helyett Servo -t.
  1. #include <Servo.h>          //<<<< standard library for the servo
  2. #include <NewPing.h>        //for the Ultrasonic sensor function library.
  3.  
  4. //L298N motor control pins
  5. const int LeftMotorForward = 6;
  6. const int LeftMotorBackward = 7;
  7. const int RightMotorForward = 5;
  8. const int RightMotorBackward = 4;
  9.  
  10. //sensor pins
  11. #define trig_pin A1 //analog input 1
  12. #define echo_pin A2 //analog input 2
  13.  
  14. #define maximum_distance 200
  15. boolean goesForward = false;
  16. int distance = 100;
  17.  
  18. NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function
  19. Servo servo_motor;  //<<<<
(#) Kovidivi válasza Skori hozzászólására (») Nov 10, 2019 /
 
Pontos adatokkal nem tudok szolgálni, DUE lappal egyébként sem foglalkoztam még, én Atmega328 párti vagyok.
A hordozhatóság persze nem 100%-os, de ha csak shift regiszter, meg LCD, meg szenzorok vannak, esetleg gombok, ADC, akkor vihető a program a lapok között (ha a lábszám és a perifériák az IC-kben elegendőek).
(#) atus1981 válasza Koncsar hozzászólására (») Nov 10, 2019 /
 
Kiveszed a DIP foglalatból a 328-at akkor is világít a TX-RX?
(#) Koncsar válasza atus1981 hozzászólására (») Nov 11, 2019 /
 
Szia! Sajnos szigorúan. Ez volt az első amit megnéztem. Köszi. Akkor alszik el az RX,TX, ha a PC aludni megy. Utána már csak a zöld LED világit ami az 5V táp meglétét mutatja. Számítógép feléled RX,TX újra világít.
A hozzászólás módosítva: Nov 11, 2019
(#) KoblogPerGyok válasza Koncsar hozzászólására (») Nov 11, 2019 /
 
Egy ilyen IC kb 200 HUF Kínából. Rendelj párat.
(#) Koncsar válasza KoblogPerGyok hozzászólására (») Nov 11, 2019 /
 
Már az FT232 re gondoltál? Akkor szerinted halott?
(#) KoblogPerGyok válasza Koncsar hozzászólására (») Nov 11, 2019 /
 
Most nem is értem az miért kell. De simán ki kellene próbálni másik számítógépen és egy másik lappal. Mire is kell neked ez a ft232? A csatolt képen arduino van ha minden igaz atmega 328pu IC vel. A környéken nincs valaki aki ki tudná próbálni másik gépen másik lappal? Merre laksz?
(#) KoblogPerGyok válasza Koncsar hozzászólására (») Nov 11, 2019 /
 
Gondolom az arduino IC helyes irányban van a foglalatban. Azért mondom mert jártam már úgy!
(#) Shance hozzászólása Nov 12, 2019 /
 
Sziasztok!
Végre találtam egy programot ami jó lenne nekem, de van egy apró hibája, nem tudom állítani a LED fényerejét. Próbáltam beletenni brightness-t, de sehogy se sikerül. Valaki megtenné, hogy vett rá egy pillantást, hogy hogy lehetne megoldani?
Köszönöm!
  1. #include <Adafruit_NeoPixel.h>
  2.  
  3. const int NUM_PIXELS = 60;
  4. const int NUM_STRIPS = 6;
  5.  
  6. // An array of the pin numbers for the strips
  7. const int Pins[NUM_STRIPS] = {2, 3, 4, 5, 6, 7};
  8.  
  9.  
  10. // Parameter 1 = number of pixels in strip
  11. // Parameter 2 = Arduino pin number (most are valid)
  12. // Parameter 3 = pixel type flags, add together as needed:
  13. //   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
  14. //   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
  15. //   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
  16. //   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
  17. //   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
  18. Adafruit_NeoPixel Strips[NUM_STRIPS] = {
  19.   Adafruit_NeoPixel(NUM_PIXELS, Pins[0], NEO_GRB + NEO_KHZ800),
  20.   Adafruit_NeoPixel(NUM_PIXELS, Pins[1], NEO_GRB + NEO_KHZ800),
  21.   Adafruit_NeoPixel(NUM_PIXELS, Pins[2], NEO_GRB + NEO_KHZ800),
  22.   Adafruit_NeoPixel(NUM_PIXELS, Pins[3], NEO_GRB + NEO_KHZ800),
  23.   Adafruit_NeoPixel(NUM_PIXELS, Pins[4], NEO_GRB + NEO_KHZ800),
  24.   Adafruit_NeoPixel(NUM_PIXELS, Pins[5], NEO_GRB + NEO_KHZ800)
  25. };
  26.  
  27. const uint32_t Blue = Adafruit_NeoPixel::Color(10, 10, 255);
  28. const uint32_t Pink = Adafruit_NeoPixel::Color(255, 0, 100);
  29.  
  30.  
  31. // IMPORTANT: To reduce NeoPixel burnout risk, add 1000 µF capacitor across
  32. // pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
  33. // and minimize distance between Arduino and first pixel.  Avoid connecting
  34. // on a live circuit...if you must, connect GND first.
  35.  
  36. void setup() {
  37.   for (int strip = 0; strip < NUM_STRIPS; strip++) {
  38.     Strips[strip].begin();
  39.   }
  40.   setAllStrips(Blue);
  41. }
  42.  
  43. void loop() {
  44.   delay(30000UL);
  45.   crossFade(Blue, Pink, 10UL);
  46.   delay(30000UL);
  47.   crossFade(Pink, Blue, 10UL);
  48. }
  49.  
  50. void setAllStrips(const uint32_t color) {
  51.   byte red = (color >> 16) & 0xff;
  52.   byte green = (color >> 8) & 0xff;
  53.   byte blue = color & 0xff;
  54.   setAllStrips(red, green, blue);
  55. }
  56.  
  57. void setAllStrips(byte red, byte green, byte blue) {
  58.   // for each strip
  59.   for (int strip = 0; strip < NUM_STRIPS; strip++) {
  60.     // for each pixel
  61.     for (int pixel = 0; pixel < NUM_PIXELS; pixel++) {
  62.       Strips[strip].setPixelColor(pixel, red, green, blue);
  63.     }
  64.     Strips[strip].show(); // Output to strip
  65.   }
  66. }
  67.  
  68. void crossFade(const uint32_t startColor, const uint32_t endColor, unsigned long speed) {
  69.   byte startRed = (startColor >> 16) & 0xff;
  70.   byte startGreen = (startColor >> 8) & 0xff;
  71.   byte startBlue = startColor & 0xff;
  72.  
  73.   byte endRed = (endColor >> 16) & 0xff;
  74.   byte endGreen = (endColor >> 8) & 0xff;
  75.   byte endBlue = endColor & 0xff;
  76.  
  77.   // for each step in the cross-fade
  78.   for (int step = 0; step < 256; step++) {
  79.     byte red = map(step, 0, 255, startRed, endRed);
  80.     byte green = map(step, 0, 255, startGreen, endGreen);
  81.     byte blue = map(step, 0, 255, startBlue, endBlue);
  82.     setAllStrips(red, green, blue);
  83.     delay(speed);
  84.   }
  85. }
(#) kapu48 válasza Shance hozzászólására (») Nov 12, 2019 /
 
És mi van ha így próbálod, hogy a határokat viszed lefele:
  1. // for each step in the cross-fade
  2.   for (int step = 0; step < 256; step++) {
  3.     byte red = map(startRed, 0, 255, startRed-step, endRed-step);
  4.     byte green = map(startGreen, 0, 255, startGreen-step, endGreen-step);
  5.     byte blue = map(startBlue, 0, 255, startBlue-step, endBlue-step);
  6.     setAllStrips(red, green, blue);
  7.     delay(speed);
  8.   }

Viszont így lehet, hogy a 256 lépés sok lesz?
A hozzászólás módosítva: Nov 12, 2019
(#) Shance válasza kapu48 hozzászólására (») Nov 12, 2019 /
 
Itt próbáltam én is lejjebb venni a számokat, de akkor az átúszás helyett vibráltak a LED-ek. A megoldás viszont olyan egyszerű volt, hogy az már fájt. Egyszerűen arányosan lejjebb vettem a számokat a program elején. Nekem full fehérből kell átúsznia melegebb fehérbe, vagyis 255, 255, 255 helyett 63, 63, 63-ra vettem ez 1/4-ed fényerejű fehér. A másikat meg 89, 38, 5-re.
Teljesen jó lett.
  1. const uint32_t Blue = Adafruit_NeoPixel::Color(63, 63, 63);
  2. const uint32_t Pink = Adafruit_NeoPixel::Color(89, 38, 5);
Következő: »»   564 / 852
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