Tutorial using serial LCD screen make Arduino speed curve recording
The real time tach curve is created using the Real-time curve control of the STONE serial screen. The Real-time curve control of the serial touch screen STVI056WT-01 can draw 8 real time trend lines at the same time, and you can see a nice animation effect after completion. However, there is no detailed description of the Real-time curve control and no video tutorial. All the contents found in the user manual are extracted from Figure 1, Figure 2 and Figure 3 below; the meanings of the parameters extracted from the Real-time curve parameter setting interface of the STONE TOOL box platform are shown in Figure 4 - Figure 8.
(Figure 1: Real-time curve control parameter settings)
After choosing to create the Real-time curve control in the software STONE TOOL Box menu Variable Configuration (D) and setting the parameters, you still need to program the data at each point on the curve using the instructions in Figure 2 to depict the trend of the physical quantity (RPM). Regarding the use of the instruction in Figure 2, the following points need to be noted.
- Like the 0x82 instruction, two bytes of header and one byte of length are required in front of instruction 0x84.
- The instruction 0x84 is followed by a byte (8-bit) channel mode, each bit of 1 corresponds to the need to follow the data, and the low channel data in the front, the high channel data in the back, in order.
- Each data are two bytes, is a 16-bit unsigned integer.
- Assuming that the header byte is A5 5A, send 3 points of data to channel 0, the instruction is: A5 5A 08 84 01 00 01 00 02 00 03. where 0x08 is the length of the subsequent, 0x84 after 0x01 means that only the data of channel 0 is sent, the next 0x00 0x01 is the first point data, 0x00 0x02 is the second point data, 0x00 0x03 is the third point data.
- The instruction to send a point data to channel 3 is: A5 5A 04 84 08 00 A1 . Where 0x04 is the length, 0x08 is the data of channel 3 only, 0x00 0xA1 is the data.
- To channel 0 and channel 1 at the same time to send a point data instruction is: A5 5A 06 84 03 02 01 04 00. where 0x03 represents channel 0 and channel 1 have data, 0x02 0x01 is the channel 0 data, 0x04 0x00 is the channel 1 data.
(Figure 2: Real-time curve control data write command)
(Figure 3: Instructions for using the Real-time curve control)
(Figure 4: Real-time curve control's setup page in STONE TOOL Box - Y_Central)
(Figure 5: Real-time curve control's setup page in STONE TOOL Box - VD_Central)
Y_Central in Figure 4 is the pixel point of the Y-axis origin of the curve from the top of the screen, which specifies the Y-axis reference of the curve for this channel. VD_Central in Figure 5 is the vertical translation of the curve; the larger the value, the more the curve is translated downward.
(Figure 6: Real-time curve control settings page in STONE TOOL Box - Magnification N)
(Figure 7: Real-time curve control settings page in STONE TOOL Box - Channel channel)
Regarding the calculation of amplification N in Figure 6, the maximum speed of this project is 640, and the peak of the set curve is 50, taking the translation VD_Central = 0, then N = 256*50/640 = 20.
(Figure 8: Real-time curve control in STONE TOOL Box settings page - horizontal interval -X_lattice)
The lateral interval in Figure 8 is important and is what sets the distance between two points in the lateral direction of the curve. In the case of sending data one point at a time, it also determines the speed of the curve's advance in the X-axis direction. As in Figure 9, when the curve goes to the far right end, it will automatically move left as a whole and the top point will disappear.
(Figure 9: Actual effect of 1 channel of Real-time curve control)
(Figure 10: Actual effect of 2 channels of Real-time curve control)
(Figure 11: Design interface for 2 channels of Real-time curve control)
As in Figure 10 and Figure 11, the curves of the two channels should be made into two Real-time curve controls, the top one is channel 0 and the bottom one can be channel 1. The curve data transfer command 0x84 does not require a normal memory address, but is represented by a byte of 8 bits immediately after, each bit represents a channel, bit 1 means that 2 bytes of that bit will be transferred later Data, bit 0, means no transmission. The data is the low channel in front and the high channel in the back.
The code demonstrated in the video is as follows:
Finally, online debugging.
The STONE TOOL Box GUI software edited the screen file download, arduino code file upload, connect the power supply, communication, and turn on the machine to observe the real-time speed curve depiction and forward movement to achieve the expected effect.
(online tuning attempts)