Fórum témák

» Több friss téma
Fórum » Nextion érintőképernyős HMI, UART kommunikációval
Lapozás: OK   44 / 44
(#) Edem222 válasza kapu48 hozzászólására (») Máj 31, 2019 /
 
Ó az nekem pont tökéletes! Jól jön az!
(#) Edem222 hozzászólása Máj 31, 2019 /
 
Egy kérdés. Ennek a panelnek miért kell 3.3V 5V és még 12V is?
(#) Edem222 hozzászólása Máj 31, 2019 /
 
Miért nem elég csak 5V pl?
(#) kapu48 válasza Edem222 hozzászólására (») Máj 31, 2019 /
 
Nem kel. Hanem választhatsz, hogyan táplálod meg.

Ha az 5V-re teszel erősebb tápot, akkor több kiegészítést is ráköthetsz.
Mint a rárakott szabályzó elbír.
Vagy ha a kiegészítő eszközök 3.3V-ról mennek, akkor nem kel őket illeszteni.
Simán 3.3V-ról járatod az egészet.
A hozzászólás módosítva: Máj 31, 2019
(#) Edem222 válasza kapu48 hozzászólására (») Máj 31, 2019 /
 
Ez de jópofa! Jelenleg egy 5V 3A-es tápom van. Az elegendő lesz neki!
(#) Edem222 válasza Edem222 hozzászólására (») Máj 31, 2019 /
 
Még egy kérdésem lenne és részemről akkor lezárható ez a téma. Ha veszek kettő ilyen NYÁK-ot,hogy tudom őket összekötni? (I/O bővítés miatt) Erről nem találtam dokumentációt.
(#) kapu48 válasza Edem222 hozzászólására (») Máj 31, 2019 /
 
Van rajta 3 soros port, ha közel vannak egymáshoz, akkor még simán TTL jellel is összeköthetők.

De van I2C is, bár az jóval lassabb.
A hozzászólás módosítva: Máj 31, 2019
(#) Edem222 válasza kapu48 hozzászólására (») Máj 31, 2019 /
 
Szuper! Köszönöm az extra segítséget! További szép napot!
(#) kapu48 válasza Edem222 hozzászólására (») Máj 31, 2019 /
 
És minden pin lehet digitális I/O, még az analógok is.

Neked pedig sok sikert!
(#) Edem222 válasza kapu48 hozzászólására (») Máj 31, 2019 /
 
Ezeket majd kitapasztalom. 2db ilyen panel bőven kielégíti a port mennyiséget,mint ami nekem kell. Köszönöm szépen! Szükségem lesz rá!
(#) kapu48 válasza Edem222 hozzászólására (») Máj 31, 2019 /
 
Még jut eszembe, van SPI is.
Az a legjobb, amit küldesz, azt a következő küldésnél vissza küldi.
Ellenőrizheted, hogy hibátlan e?
(#) wbt hozzászólása Sze, 21:50 /
 
Gomb állapotát használnám tm0 eseményben. Honnan is tudom meg, hogy nyomva van-e? if(b0.val==1) nem jó, elméletileg nincs is ilyen változó.
Biztos nagyon egyszerű a dolog, de most nem találom a megoldást.
(#) Bakman válasza wbt hozzászólására (») Csü, 5:59 /
 
Extra változóval (va0):

gomb, Touch Press Event:
va0.val=1

gomb, Touch Release Event:
va0.val=0

tm0-ban:
if(va0.val==1)
(#) wbt válasza Bakman hozzászólására (») Csü, 7:24 /
 
Köszönöm! Csak furcsáltam, hogy egy gombnál pont az állapota nem lehet feltétel
(#) Edem222 hozzászólása Pé, 9:24 /
 
Tiszteletem mindenkinek! Szeretnék Arduino programozásban segítséget kérni. A problémám a következő: A szöveg alatt látható jelenlegi (befejezetlen) kódom. Működik a kijelzővel,teszi a dolgát. Viszont azt hogy tudnám megcsinálni,ha pl átlép az 5.-ik oldalra akkor azt ne csak 1x hajtsa végra,hanem többször? Pl:

Így megy most:

1, Vár oldal számra az Arduino.
2, 5-ös oldalra ugrott a HMI.
3, Arduino megkapta,hogy 5-ös oldalon van és 1x végrehajtja a hozzátartozó utasítást.
4, Vár oldal számra az Arduino.
.
.
.

Ahogy én szeretném:

1,Megnézi hogy hányadik oldalon van a HMI. (Ha nem tud értéket olvasni,akkor a "jelenlegi oldal" változóban maradt értéket vegye figyelembe)

2,Végrehajtja 1x a hozzátartozó utasítást.

3,Megnézi hogy hányadik oldalon van a HMI. (Ha nem tud értéket olvasni,akkor a "jelenlegi oldal" változóban maradt értéket vegye figyelembe)

4,Végrehajtja 1x a hozzátartozó utasítást.
.
.
.
(végtelen ciklus)

  1. #include <Nextion.h>
  2.  
  3. // Variable init
  4. int CurrentPage = 0// Create a variable to store which page is currently loaded
  5. // Variable init end
  6.  
  7.  
  8. //Page 2 start (MAIN)
  9.  
  10. NexProgressBar fuel = NexProgressBar(2, 33, "fuel"); //Fuel level
  11. NexButton b20 = NexButton(2, 28, "b1"); //Menu button
  12. NexNumber n20 = NexNumber(2, 35, "n4"); //Voltage (higher value)
  13. NexNumber n21 = NexNumber(2, 36, "n5"); //Voltage (lower value)
  14. NexNumber n22 = NexNumber(2, 32, "n0"); //Speedometer
  15. NexNumber n23 = NexNumber(2, 10, "n1"); //Tachometer
  16. NexButton bb21 = NexButton(2, 31, "b0"); //Logout button
  17. NexProgressBar temp = NexProgressBar(2, 14, "temp"); //Temp level
  18.  
  19. //Page 2 end
  20.  
  21.  
  22. //Page 4 start (LIMITER)
  23.  
  24. NexNumber n40 = NexNumber(4, 3, "n0"); //Speed limit number
  25. NexNumber n41 = NexNumber(4, 4, "n1"); //Revolution limit number
  26. NexNumber n42 = NexNumber(4, 10, "n2"); //Launch control number
  27.  
  28. //Page 4 end
  29.  
  30.  
  31. //Page 5 start (GPIO CHECK 1)
  32.  
  33. NexText t50 = NexText(5, 2, "t0"); //Arduino input check
  34. NexText t51 = NexText(5, 3, "n1"); //Arduino output check
  35.  
  36. //Page 5 end
  37.  
  38.  
  39. //Page 6 start (GPIO CHECK 2)
  40.  
  41. NexButton b60 = NexButton(6, 2, "b1"); //Back button
  42. NexButton b61 = NexButton(6, 106, "b2"); //Next button
  43. NexText t60 = NexText(6, 3, "t0"); //Input 1 (Valami)
  44. //FOLYTATNI KELL!!!!
  45.  
  46. //Page 6 end
  47.  
  48.  
  49. //Page 7 start (ERROR)
  50.  
  51.  
  52. //Page 7 end
  53.  
  54.  
  55.  
  56. // Declare pages:
  57.  
  58. NexPage page0 = NexPage(0, 0, "Welcome")// Page added as a touch event
  59. NexPage page1 = NexPage(1, 0, "Login")// Page added as a touch event
  60. NexPage page2 = NexPage(2, 0, "Main")// Page added as a touch event
  61. NexPage page3 = NexPage(3, 0, "Menu")// Page added as a touch event
  62. NexPage page4 = NexPage(4, 0, "Limiter")// Page added as a touch event
  63. NexPage page5 = NexPage(5, 0, "GPIO Check 1")// Page added as a touch event
  64. NexPage page6 = NexPage(6, 0, "GPIO Check 2")// Page added as a touch event
  65. NexPage page7 = NexPage(7, 0, "Error")// Page added as a touch event
  66. NexPage page8 = NexPage(8, 0, "Emergency_page")// Page added as a touch event
  67.  
  68.  
  69. // End of declaring objects
  70.  
  71.  
  72. char buffer[100] = {0}// This is needed only if you are going to receive a text from the display. You can remove it otherwise.
  73.                          // Further on this sketch I do receive text so that's why I created this buffer.
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82. //Variable define
  83. NexTouch *nex_listen_list[] =
  84. {
  85.  
  86.   &page0,  // Page added as a touch event
  87.   &page1,  // Page added as a touch event
  88.   &page2,  // Page added as a touch event
  89.   &page3,  // Page added as a touch event
  90.   &page4,  // Page added as a touch event
  91.   &page5,  // Page added as a touch event
  92.   &page6,  // Page added as a touch event
  93.   &page7,  // Page added as a touch event
  94.   &page8,  // Page added as a touch event
  95.   NULL  // String terminated
  96.  
  97. };
  98. //Variable define END
  99.  
  100.  
  101. // Page change event:
  102. void page0PushCallback(void *ptr)  // If page 0 is loaded on the display, the following is going to execute:
  103. {
  104.   CurrentPage = 0// Set variable as 0 so from now on arduino knows page 0 is loaded on the display
  105. }  // End of press event
  106.  
  107.  
  108. // Page change event:
  109. void page1PushCallback(void *ptr)  // If page 1 is loaded on the display, the following is going to execute:
  110. {
  111.   CurrentPage = 1// Set variable as 1 so from now on arduino knows page 1 is loaded on the display
  112. }  // End of press event
  113.  
  114.  
  115. // Page change event:
  116. void page2PushCallback(void *ptr)  // If page 2 is loaded on the display, the following is going to execute:
  117. {
  118.   CurrentPage = 2// Set variable as 2 so from now on arduino knows page 2 is loaded on the display
  119. }  // End of press event
  120.  
  121.  
  122. // Page change event:
  123. void page3PushCallback(void *ptr)  // If page 3 is loaded on the display, the following is going to execute:
  124. {
  125.   CurrentPage = 3// Set variable as 3 so from now on arduino knows page 3 is loaded on the display
  126. }  // End of press event
  127.  
  128.  
  129. // Page change event:
  130. void page4PushCallback(void *ptr)  // If page 4 is loaded on the display, the following is going to execute:
  131. {
  132.   CurrentPage = 4// Set variable as 4 so from now on arduino knows page 4 is loaded on the display
  133. }  // End of press event
  134.  
  135.  
  136. // Page change event:
  137. void page5PushCallback(void *ptr)  // If page 5 is loaded on the display, the following is going to execute:
  138. {
  139.   CurrentPage = 5// Set variable as 5 so from now on arduino knows page 5 is loaded on the display
  140. }  // End of press event
  141.  
  142.  
  143. // Page change event:
  144. void page6PushCallback(void *ptr)  // If page 6 is loaded on the display, the following is going to execute:
  145. {
  146.   CurrentPage = 6// Set variable as 6 so from now on arduino knows page 6 is loaded on the display
  147. }  // End of press event
  148.  
  149.  
  150. // Page change event:
  151. void page7PushCallback(void *ptr)  // If page 7 is loaded on the display, the following is going to execute:
  152. {
  153.   CurrentPage = 7// Set variable as 7 so from now on arduino knows page 7 is loaded on the display
  154. }  // End of press event
  155.  
  156.  
  157. // Page change event:
  158. void page8PushCallback(void *ptr)  // If page 8 is loaded on the display, the following is going to execute:
  159. {
  160.   CurrentPage = 8// Set variable as 8 so from now on arduino knows page 8 is loaded on the display
  161. }  // End of press event
  162.  
  163.  
  164.  
  165. ////////////////////////// End of touch events
  166.  
  167.  
  168.  
  169. void setup() {  // Put your setup code here, to run once:
  170.  
  171.   Serial.begin(9600)// Start serial comunication at baud=9600
  172.  
  173.  
  174.   // I am going to change the Serial baud to a faster rate.
  175.   // The reason is that the slider have a glitch when we try to read it's value.
  176.   // One way to solve it was to increase the speed of the serial port.
  177.   delay(500)// This dalay is just in case the nextion display didn't start yet, to be sure it will receive the following command.
  178.   Serial.print("baud=115200")// Set new baud rate of nextion to 115200, but it's temporal. Next time nextion is power on,
  179.                                 // it will retore to default baud of 9600.
  180.                                 // To take effect, make sure to reboot the arduino (reseting arduino is not enough).
  181.                                 // If you want to change the default baud, send the command as "bauds=115200", instead of "baud=115200".
  182.                                 // If you change the default baud, everytime the nextion is power ON is going to have that baud rate, and
  183.                                 // would not be necessery to set the baud on the setup anymore.
  184.   Serial.write(0xff)// We always have to send this three lines after each command sent to nextion.
  185.   Serial.write(0xff);
  186.   Serial.write(0xff);
  187.  
  188.   Serial.end()// End the serial comunication of baud=9600
  189.  
  190.   Serial.begin(115200)// Start serial comunication at baud=115200
  191.  
  192.  
  193. //Sending page ID
  194.  
  195.   page0.attachPush(page0PushCallback)// Page press event
  196.   page1.attachPush(page1PushCallback)// Page press event
  197.   page2.attachPush(page2PushCallback)// Page press event
  198.   page3.attachPush(page3PushCallback)// Page press event
  199.   page4.attachPush(page4PushCallback)// Page press event
  200.   page5.attachPush(page5PushCallback)// Page press event
  201.   page6.attachPush(page6PushCallback)// Page press event
  202.   page7.attachPush(page7PushCallback)// Page press event
  203.   page8.attachPush(page8PushCallback)// Page press event
  204.  
  205. //Sending page ID END
  206.  
  207.  
  208. }  // End of setup
  209.  
  210.  
  211.  
  212.  
  213. void loop() {  // Put your main code here, to run repeatedly:
  214.  
  215.  
  216.  
  217.   if(CurrentPage == 5) // If the display is on page 5, do the following:
  218.   { 
  219.    
  220.  
  221.     Serial.print("t0.pco=")// Input colour   
  222.     Serial.print(2016)// Green code
  223.     Serial.write(0xff)// We always have to send this three lines after each command sent to the nextion display.
  224.     Serial.write(0xff);
  225.     Serial.write(0xff);
  226.    
  227.     Serial.print("t1.pco=")// Input colour   
  228.     Serial.print(2016)// Green code
  229.     Serial.write(0xff)// We always have to send this three lines after each command sent to the nextion display.
  230.     Serial.write(0xff);
  231.     Serial.write(0xff);
  232.     delay(200); //For bugfix
  233.    
  234.   }
  235.  
  236.  
  237.  
  238.   nexLoop(nex_listen_list)// Check for any touch event
  239.  
  240.  
  241. }  // End of loop



Válaszokat köszönöm!
(#) Bakman hozzászólása Pé, 10:42 /
 
Miért nem a kontroller mondja meg a kijelzőnek, melyik oldalt mutassa? Így nem kellene ezt az adatot elkérni a kijelzőtől.
(#) Edem222 válasza Bakman hozzászólására (») Pé, 10:51 /
 
A kijelző a mester. Ő "parancsol" az Arduinonak.
(#) Bakman válasza Edem222 hozzászólására (») Pé, 11:25 /
 
Távol álljon tőlem az ítélkezés de szerintem egy alapvetően butább eszközt kinevezni mesternek, nem túl szerencsés. Az Ardunio témában valószínűleg előbb kapnál megoldást:

Arduino.
(#) Edem222 válasza Bakman hozzászólására (») Pé, 12:22 /
 
Köszönöm! Kiírtam oda is. Az tény,hogy az Arduino jóval okosabb a Nextion-hoz képest,viszont ebben az applikációban az Arduino egy "mezei" I/O kártya lesz 1-2 extrával.
Következő: »»   44 / 44
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu