Difference between revisions of "Using RS-232 and Printing to LCD"

From Mech
Jump to navigationJump to search
Line 8: Line 8:


Figure 1 shows how to hook up the system:<br>
Figure 1 shows how to hook up the system:<br>
[[Image:RS232_LCD_fig1]]<br>
[[Image:RS232_LCD_connections]]<br>
Figure 1<br>
Figure 1<br>



Revision as of 21:21, 28 May 2006

Getting Started

1.Plug the Seetron BPI-216 LCD display into the COM1 serial port of the target PC, and power the display (see the LCD display’s user’s guide for more information) If you wish to use COM2, see “Changing COM Ports” later in this article.

2.Copy the file RS232Async_Messages.m into your work folder. This file contains a struct that holds configuration parameters for the RS232_Send block within the BPI_216_Send subsystem. Open the BPI_216_Send.mdl file and copy the BPI_216_Send block into your own model. The other blocks in BPI_216_Send.mdl are just for demonstration purposes.

3.To output text to the BPI-216 LCD display using the BPI_216_Send block, the system that is deciding which message to output needs to output a number of data type “double” (see “double” in the MATLAB help files for more information on data types). The BPI_216_Send subsystem will read this number and display the corresponding message. (Note: the default time step of BPI_216_Send is 0.01 seconds. BPI_216_Send’s time step must be an integer multiple of your main system’s time step.)

Figure 1 shows how to hook up the system:
File:RS232 LCD connections
Figure 1

Displaying Text Messages

Open BPI_216_Send, and then open Message Bank/Selector. Find the switch-case control structure in the embedded MATLAB function. This is where we will store the messages. Messages must be entered in the form:

   [text,numPages]=lcd_text(uint8(['Your_Message_Here.']))



The MATLAB function "uint8()" makes sure that each letter of your text is converted into data type uint8(unsigned 8 bit integer, also known as an unsigned char). If ommitted, the program might not display your messages correctly.

See Figure 2:
File:RS232 LCD messageselect
Figure 2

The number outputted by your main system will be read in as the variable msgID. The switch-case control structure will find the case that matches the value of msgID, and print out the message corresponding message, displaying the message under otherwise if no match if found. Replace message_1, message_2, and message_default with your own message, preserving the single quotes. You may add or remove as many cases as you need, but case "otherwise" must be defined.

If your message is too long to display on a single screen, your message will be automatically split up into multiple screens, and displayed one at a time; after the last screen is displayed, it will loop back to the first screen and keep looping. Extra spaces on the last screen will be padded with black triangles; this will help you identify the last screen. The default time between screens is 3 seconds.

Displaying Numeric Data

If you wish to display numberic data you must add an input port to the "message select" m-function to accept the incoming data, and then use the subfunction "numtostr" to convert it into a uint8 vector.

Changing COM Ports

To change the COM port, open
BPI_216_Send>Text_Send_Control>RS232_Mainboard_Setup.
Change Port from COM1 to the COM port you want. Then open
BPI_216_Send>Text_Send_Control>RS232_Mainboard_Send.
Change Port from COM1 to the COM port you want.


Changing Screen Change Rate

To change the rate at which successive screens are displayed when the message is broken up into multiple screens, open
BPI_216_Send>Text_Send_Control>Page_Incrementer_Timer>Page_Timer.
Set the sample time to the time you want between screen changes, in seconds.