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   417 / 853
(#) Tasznka válasza kegyetlen19 hozzászólására (») Jan 18, 2018 / 1
 
Szia!
Tedd tömbbe sprintf-el,és azt írasd ki.Pl:
  1. char BBB[10];
  2. sprintf (BBB,"%.2f",val3);

Itt még tudsz játszani a pontosságon,formázáson.
(#) kegyetlen19 válasza Tasznka hozzászólására (») Jan 18, 2018 /
 
Elsőnek is, köszi. De, Hu-Ha. Erről tudsz egy kis több információt adni.
(#) Tasznka válasza kegyetlen19 hozzászólására (») Jan 18, 2018 /
 
Ez csak egy sima mezei konvertálás.Vagyis a változó(k) értékét karakterlánccá alakítja,és beteszi a példámból kiindulva a BBB tömbbe.Ezt a tömböt ki tudod küldeni a kijelzőre.Bár én nem használok beépített függvényeket,de gondolom,hogy valami LCDPrint-tel küldöd ki.Amúgy millió kis leírás van a formázási lehetőségekről.
(#) sany válasza kegyetlen19 hozzászólására (») Jan 18, 2018 /
 
Szerintem a round() függvénnyel is lehet.
(#) kegyetlen19 válasza Tasznka hozzászólására (») Jan 18, 2018 /
 
Köszi a magyarázatot. Kipróbálom.
Próbáltam keresgélni, de amikor az ember azt se tudja pontosan mit keressen, így nehéz megtalálni.
(#) kegyetlen19 válasza sany hozzászólására (») Jan 18, 2018 /
 
Kösz. Utánanézek.
(#) krauszkrisztian hozzászólása Jan 19, 2018 /
 
Üdv!
Az imént készítettem egy Arduinos érintőképernyős számológépet.
Az alap képkockákat és betűket kiírja, de valamiért nem megy a touch-os része. Próbáltam már egy másik programmal, ami kiírja a soros monitorra a ceruza helyzetét, és működött (Innen láttam meg, hogy a kóddal van valami.

  1. /*______Import Libraries_______*/
  2. #include <SPFD5408_Adafruit_GFX.h>    // Core graphics library
  3. #include <SPFD5408_Adafruit_TFTLCD.h> // Hardware-specific library
  4. #include <SPFD5408_TouchScreen.h>
  5. /*______End of Libraries_______*/
  6.  
  7. /*______Define LCD pins (I have asigned the default values)_______*/
  8. #define YP A1  // must be an analog pin, use "An" notation!
  9. #define XM A2  // must be an analog pin, use "An" notation!
  10. #define YM 7   // can be a digital pin
  11. #define XP 6   // can be a digital pin
  12. #define LCD_CS A3
  13. #define LCD_CD A2
  14. #define LCD_WR A1
  15. #define LCD_RD A0
  16. #define LCD_RESET A4
  17. /*_______End of defanitions______*/
  18.  
  19. /*______Assign names to colors and pressure_______*/
  20. #define WHITE   0x0000 //Black->White
  21. #define YELLOW    0x001F //Blue->Yellow
  22. #define CYAN     0xF800 //Red->Cyan
  23. #define PINK   0x07E0 //Green-> Pink
  24. #define RED    0x07FF //Cyan -> Red
  25. #define GREEN 0xF81F //Pink -> Green
  26. #define BLUE  0xFFE0 //Yellow->Blue
  27. #define BLACK   0xFFFF //White-> Black
  28. #define MINPRESSURE 10
  29. #define MAXPRESSURE 1000
  30. /*_______Assigned______*/
  31.  
  32. /*____Calibrate TFT LCD_____*/
  33. #define TS_MINX 118
  34. #define TS_MINY 125
  35. #define TS_MAXX 962
  36. #define TS_MAXY 917
  37. /*______End of Calibration______*/
  38.  
  39. TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); //300 is the sensitivity
  40. Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); //Start communication with LCD
  41.  
  42. String symbol[4][4] = {
  43.   { "7", "8", "9", "/" },
  44.   { "4", "5", "6", "*" },
  45.   { "1", "2", "3", "-" },
  46.   { "C", "0", "=", "+" }
  47. };
  48.  int X,Y;
  49.  long Num1,Num2,Number;
  50.  char action;
  51.  boolean result = false;
  52.  
  53.  
  54.  
  55. void setup() {
  56.   Serial.begin(9600); //Use serial monitor for debugging
  57.   tft.reset(); //Always reset at start
  58.   tft.begin(0x9341); // My LCD uses LIL9341 Interface driver IC
  59.   tft.setRotation(2); // I just roated so that the power jack faces up - optional
  60.   tft.fillScreen(WHITE);
  61.  
  62.   IntroScreen();
  63.  
  64.   draw_BoxNButtons();
  65. }
  66.  
  67. void loop() {
  68. TSPoint p = waitTouch();
  69. X = p.y; Y = p.x;
  70. //  Serial.print(X); Serial.print(','); Serial.println(Y);// + " " + Y);
  71.  
  72. DetectButtons();
  73.  
  74. if (result==true)
  75. CalculateResult();
  76.  
  77. DisplayResult();  
  78.  
  79.   delay(300);
  80. }
  81.  
  82. TSPoint waitTouch() {
  83.   TSPoint p;
  84.   do {
  85.     p = ts.getPoint();
  86.     pinMode(XM, OUTPUT);
  87.     pinMode(YP, OUTPUT);
  88.   } while((p.z < MINPRESSURE )|| (p.z > MAXPRESSURE));
  89.   p.x = map(p.x, TS_MINX, TS_MAXX, 0, 320);
  90.   p.y = map(p.y, TS_MINY, TS_MAXY, 0, 240);;
  91.   return p;
  92. }
  93.  
  94. void DetectButtons()
  95. {
  96.  
  97.   if (X<50 && X>0) //Detecting Buttons on Column 1
  98.   {
  99.     if (Y>0 && Y<85) //If cancel Button is pressed
  100.     {Serial.println ("Button Cancel"); Number=Num1=Num2=0; result=false;}
  101.    
  102.      if (Y>85 && Y<140) //If Button 1 is pressed
  103.     {Serial.println ("Button 1");
  104.     if (Number==0)
  105.     Number=1;
  106.     else
  107.     Number = (Number*10) + 1; //Pressed twice
  108.     }
  109.    
  110.      if (Y>140 && Y<192) //If Button 4 is pressed
  111.     {Serial.println ("Button 4");
  112.     if (Number==0)
  113.     Number=4;
  114.     else
  115.     Number = (Number*10) + 4; //Pressed twice
  116.     }
  117.    
  118.      if (Y>192 && Y<245) //If Button 7 is pressed
  119.     {Serial.println ("Button 7");
  120.     if (Number==0)
  121.     Number=7;
  122.     else
  123.     Number = (Number*10) + 7; //Pressed twice
  124.     }
  125.   }
  126.  
  127.     if (X<105 && X>50) //Detecting Buttons on Column 2
  128.   {
  129.     if (Y>0 && Y<85)
  130.     {Serial.println ("Button 0"); //Button 0 is Pressed
  131.     if (Number==0)
  132.     Number=0;
  133.     else
  134.     Number = (Number*10) + 0; //Pressed twice
  135.     }
  136.    
  137.      if (Y>85 && Y<140)
  138.     {Serial.println ("Button 2");
  139.      if (Number==0)
  140.     Number=2;
  141.     else
  142.     Number = (Number*10) + 2; //Pressed twice
  143.     }
  144.    
  145.      if (Y>140 && Y<192)
  146.     {Serial.println ("Button 5");
  147.      if (Number==0)
  148.     Number=5;
  149.     else
  150.     Number = (Number*10) + 5; //Pressed twic
  151.     }
  152.    
  153.      if (Y>192 && Y<245)
  154.     {Serial.println ("Button 8");
  155.      if (Number==0)
  156.     Number=8;
  157.     else
  158.     Number = (Number*10) + 8; //Pressed twic
  159.     }  
  160.   }
  161.  
  162.     if (X<165 && X>105) //Detecting Buttons on Column 3
  163.   {
  164.     if (Y>0 && Y<85)
  165.     {Serial.println ("Button Equal");
  166.     Num2=Number;
  167.     result = true;
  168.     }
  169.    
  170.      if (Y>85 && Y<140)
  171.     {Serial.println ("Button 3");
  172.      if (Number==0)
  173.     Number=3;
  174.     else
  175.     Number = (Number*10) + 3; //Pressed twice
  176.     }
  177.    
  178.      if (Y>140 && Y<192)
  179.     {Serial.println ("Button 6");
  180.     if (Number==0)
  181.     Number=6;
  182.     else
  183.     Number = (Number*10) + 6; //Pressed twice
  184.     }
  185.    
  186.      if (Y>192 && Y<245)
  187.     {Serial.println ("Button 9");
  188.     if (Number==0)
  189.     Number=9;
  190.     else
  191.     Number = (Number*10) + 9; //Pressed twice
  192.     }  
  193.   }
  194.  
  195.       if (X<213 && X>165) //Detecting Buttons on Column 3
  196.   {
  197.     Num1 = Number;    
  198.     Number =0;
  199.     tft.setCursor(200, 20);
  200.     tft.setTextColor(RED);
  201.     if (Y>0 && Y<85)
  202.     {Serial.println ("Addition"); action = 1; tft.println('+');}
  203.      if (Y>85 && Y<140)
  204.     {Serial.println ("Subtraction"); action = 2; tft.println('-');}
  205.      if (Y>140 && Y<192)
  206.     {Serial.println ("Multiplication"); action = 3; tft.println('*');}
  207.      if (Y>192 && Y<245)
  208.     {Serial.println ("Devesion"); action = 4; tft.println('/');}  
  209.  
  210.     delay(300);
  211.   }  
  212. }
  213.  
  214. void CalculateResult()
  215. {
  216.   if (action==1)
  217.     Number = Num1+Num2;
  218.  
  219.   if (action==2)
  220.     Number = Num1-Num2;
  221.  
  222.   if (action==3)
  223.     Number = Num1*Num2;
  224.  
  225.   if (action==4)
  226.     Number = Num1/Num2;
  227. }
  228.  
  229. void DisplayResult()
  230. {
  231.     tft.fillRect(0, 0, 240, 80, CYAN);  //clear result box
  232.     tft.setCursor(10, 20);
  233.     tft.setTextSize(4);
  234.     tft.setTextColor(BLACK);
  235.     tft.println(Number); //update new value
  236. }
  237.  
  238. void IntroScreen()
  239. {
  240.   tft.setCursor (55, 120);
  241.   tft.setTextSize (3);
  242.   tft.setTextColor(RED);
  243.   tft.println("ARDUINO");
  244.   tft.setCursor (30, 160);
  245.   tft.println("CALCULATOR");
  246.   tft.setCursor (30, 220);
  247.   tft.setTextSize (2);
  248.   tft.setTextColor(BLUE);
  249.   tft.println("-Circut Digest");
  250.   delay(1800);
  251. }
  252.  
  253. void draw_BoxNButtons()
  254. {
  255.   //Draw the Result Box
  256.   tft.fillRect(0, 0, 240, 80, CYAN);
  257.  
  258.  //Draw First Column
  259.   tft.fillRect  (0,260,60,60,RED);
  260.   tft.fillRect  (0,200,60,60,BLACK);
  261.   tft.fillRect  (0,140,60,60,BLACK);
  262.   tft.fillRect  (0,80,60,60,BLACK);
  263.  
  264.  //Draw Third Column  
  265.   tft.fillRect  (120,260,60,60,GREEN);
  266.   tft.fillRect  (120,200,60,60,BLACK);
  267.   tft.fillRect  (120,140,60,60,BLACK);
  268.   tft.fillRect  (120,80,60,60,BLACK);
  269.  
  270.   //Draw Secound & Fourth Column  
  271.   for (int b=260; b>=80; b-=60)
  272.  { tft.fillRect  (180,b,60,60,BLUE);
  273.    tft.fillRect  (60,b,60,60,BLACK);}
  274.  
  275.   //Draw Horizontal Lines
  276.   for (int h=80; h<=320; h+=60)
  277.   tft.drawFastHLine(0, h, 240, WHITE);
  278.  
  279.   //Draw Vertical Lines
  280.   for (int v=0; v<=240; v+=60)
  281.   tft.drawFastVLine(v, 80, 240, WHITE);
  282.  
  283.   //Display keypad lables
  284.   for (int j=0;j<4;j++) {
  285.     for (int i=0;i<4;i++) {
  286.       tft.setCursor(22 + (60*i), 100 + (60*j));
  287.       tft.setTextSize(3);
  288.       tft.setTextColor(WHITE);
  289.       tft.println(symbol[j][i]);
  290.     }
  291.   }
  292. }

Ezt a kódot internetről szedtem, és az LCD a Banggoodról van.
Nem tudom, hogy az én képernyőmnek mi a központi chip-e, de az eredeti kódírónak LIL9341-es chip-e volt.
Lehetséges, hogy az a probléma, hogy a két chip nem egyezik?
Válaszukat köszönöm!
(#) Kera_Will válasza Kera_Will hozzászólására (») Jan 19, 2018 /
 
Robot építő-, IOT- és 3D nyomtató találkozó
2018.02.02 péntek 18:00-tól szombat 17:00-ig

Részletes program (tervezet)
(#) krauszkrisztian hozzászólása Jan 19, 2018 / 1
 
Ha jól látom a dokumentumaiban, talán UC8230s IC van benne.
Itt van róla pár dokumentum.
(#) Pali79 hozzászólása Jan 20, 2018 /
 
Van egy mega 2560-asom ami egy shield felől kapott egy kis zárlatot (rossz helyre nyúltam a csavarhúzóval). A panel működik, de a táp részben valami meghibásodott, mert 12V-ról közel 500mA az áramfelvétel és kapcsolóüzemű tápról hajtva, annak a hangján is hallható, hogy valami nem stimmel. A stáb ic-t már kizártam, mert azt eltávolítva is magas az áramfelvétel és kínlódik a táp. Van valakinek tippje, hogy hol érdemes keresni a hibát?
(#) vargham válasza Pali79 hozzászólására (») Jan 20, 2018 /
 
Melyik alkatrész melegszik? 500 mA az már fűtheti rendesen.
1. USB-Soros IC. Milyen típus van rajta?
2. Maga az ATmega2560. Rendszeresen előfordul, hogy túlfeszültség / zárlat hatására valamelyik része már károsodik az IC-nek, ennek ellenére működik. Egy része. Egy darabig. Amíg a károsodott szekció hőtermelése (és egyéb problémái) el nem égeitk az egészet.
(#) Pali79 válasza vargham hozzászólására (») Jan 20, 2018 /
 
Elnéztem. 50mA a felvett áram. Akkor lehet nincs is semmi baja csak beképzeltem?
(#) vargham válasza Pali79 hozzászólására (») Jan 20, 2018 /
 
Idézet:
„Akkor lehet nincs is semmi baja”

Lehet.
Amúgy nekem egy hibás elektronika már ölte meg egy USB-s programozómat (ST-Link). Az esemény után még működött egy darabig, ha siettem, akkor még fel is lehetett vele programozni egy mikrokontrollert, de melegedett, és egyre több áramot vett fel, míg a számítógép le is tiltotta a portot. Amikor kihült, lehetett vele programozni megint egyet. Kb 10 feltöltést bírt így ki, mire végleg meghalt.
A hozzászólás módosítva: Jan 20, 2018
(#) hadhazik hozzászólása Jan 22, 2018 /
 
Sziasztok!
Abszolút kezdő ismerkedés a HELTEC ESP32 WiFi LoRa 433MHZ modullal.
Találtam JPG/XBM konvertert, ami megfelelően fordít.
Volt ami nem.
Ez a kódolás nem jó, az 0.96 oleden zavaros kép jelent meg:

#define x_width 128
#define x_height 64
static char x_bits[] = {
0xea, 0xea, 0xae, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0xee, 0xfe, 0xea, 0xea, 0xaa, 0xae, 0xaa, 0xaa,
0xff, 0xff, 0xff, 0xdf, 0xdd, 0xfd, 0xfd, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x5d, 0x55,
0xbb, 0xbb, 0xbb, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xfb, 0xfb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xaa,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f,
0xee, 0xee, 0xaa, 0xae, 0xaa, 0xaa, 0xaa, 0xee, 0xef, 0xee, 0xae, 0xee, 0xea, 0xae, 0xae, 0xaa,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xdd, 0x7f,
0xbb, 0xbb, 0xab, 0xff, 0xff, 0xff, 0xbf, 0xfb, 0xff, 0xff, 0xff, 0xaf, 0xbb, 0xbf, 0xaa, 0xaa,

Ez a kódolás jó:

#define _width 128
#define _height 64
static char _bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

Mi az eltérés a két kódban az oszlop számokat nézve?
(#) kissi válasza hadhazik hozzászólására (») Jan 22, 2018 /
 
Szia!

Nem ismerem, de például a darabszám sem stimmel: a felsőn 7*16, az alsón 6*12 byte szerepel...Ez elég nagy különbség szokott lenni !
(#) hadhazik válasza kissi hozzászólására (») Jan 22, 2018 /
 
Köszi, nem a teljes kódot másoltam, a lényeg az oszlopok száma.
(#) pisti hozzászólása Jan 22, 2018 / 1
 
Egy kis játék-dobókocka arduinósan:
https://www.youtube.com/watch?v=RX7bIfBc0Lg
(#) Bakman válasza pisti hozzászólására (») Jan 22, 2018 /
 
Ügyes, de én átírnám úgy a programot, hogy csak valós, magán a fizikai dobókockán is megjelenő variációk legyenek láthatóak. Eléggé furán néz ki amikor pl. a bal alsó LED világít, a többi bedig látszólag véletlenszerűen villog.
(#) lm53 hozzászólása Jan 23, 2018 /
 
Adott egy Arduino Nano, amihez szintillesztőn keresztül egy 2.8" -os, 3.3V -os TFT csatlakozik. Egyik Nanoval működik, másikkal nem. Szkópon megnéztem a szintillesztő kimeneteit, rendben vannak. A működtető program rendben van, pontosan a tervezett módon működik. A Nano 3.3V -ját használom, néhány század V -nyi eltérés van az egyes példányok között. Találkozott már valaki ezzel a jelenséggel?
(#) berkesandor válasza lm53 hozzászólására (») Jan 23, 2018 /
 
Igen, olvasd vissza miket írtam pár oldallal ezelőtt.
Pro mini vs. SIM800 témában.
(#) Inhouse válasza berkesandor hozzászólására (») Jan 23, 2018 /
 
Nem én voltam a kérdező, de rákerestem...a kérdést feltetted, de nem találtam rá adott választ. Mi lett a megoldás végül?
(#) lm53 válasza berkesandor hozzászólására (») Jan 23, 2018 /
 
Meg tudod adni a hivatkozást a hozzászólásodra?
(#) airwalker hozzászólása Jan 23, 2018 /
 
Üdv!
Építés alatt van nekem egy LM1036 előfok, és találtam egy sketchet hozzá, nekem ezzel nem működik és ez alapján írnám meg magamnak. Analogwrite funkció csak PWM jelet tud kiküldeni?
(#) tbarath válasza airwalker hozzászólására (») Jan 23, 2018 /
 
Igen
(#) berkesandor válasza lm53 hozzászólására (») Jan 23, 2018 /
 
Nem találtam meg rá a magyarázatot.
A végén teljesen átvariáltam kódot, és végül működött.
A lényeg, hogy nem az sms beérkezésekor vizsgálom az sms-t, hanem "megvárom" míg felmásolja a sim kártyára és onnan olvasom vissza.
Azért is nem írtam le az előbb, mert ez neked nem megoldás.
A nanók stab-ja egyforma? Próbáld ki, másik 3.3V táppal.
(#) proba válasza lm53 hozzászólására (») Jan 23, 2018 /
 
Miért kell szintillesztő? A nano megy 3,3V ról a TFT-re is azt írtad megy 3,3V ról...
Esetleg a nano milyen órajelről jár? Szerintem ezen a tápfeszültségen már csak a 8Mhz-n működik stabilan.
(#) Inhouse válasza berkesandor hozzászólására (») Jan 23, 2018 /
 
Kicsit félrevezető a válaszod, bár szó szerint válaszolsz a kérdésre, de közben azt sugallod, hogy ott lesz a megoldás...pedig csak sorstársa voltál a kérdezőnek.
(#) berkesandor válasza Inhouse hozzászólására (») Jan 23, 2018 /
 
Elnézést kérek. Nem akartam félrevezetni senkit.
Két fajta arduino pro mini-t próbáltam.
Nem használom az arduino saját tápját. (nálam biztosan nem az a hiba oka). Egyikkel működik az sms megérkezésekor bejövő kommunikáció feldolgozás, másikkal nem. Bármit próbáltam nem jutottam előrébb. Minden látszólag egyformán működik, de mégsem.
Ezért alakítottam át a kódomat úgy, hogy visszaolvassa az sms-t a sim kártyáról.

Az ő esetében a táppal kezdenék, hátha.
(#) Rober_4 hozzászólása Jan 23, 2018 /
 
Sziasztok!

Nagyon kezdő kérdésem lenne:
Mi lehet a probléma? Nem fordul le a program.
Segítségeteket köszönöm!
Következő: »»   417 / 853
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