Productivity Open P1AM Arduino Serial Monitor COM

We will now look at the Arduino serial monitor com. This serial communication is good for troubleshooting and displaying information to you or your operators. The Arduino integrated development environment (IDE) has a built-in pop-up serial monitor. The serial monitor can be used to receive and send serial data to our Arduino program. This can be a great feature to help us in debugging or controlling Arduino programs. (Sketches)
We will be modifying the blinking light program that we did previously and add a one to an integer every time the P1AM-100 arduino CPU switch is on. This will be then printed on the serial monitor.
Arduino Serial Monitor COM
Removing the blinking light, we will run our program again an see the difference in speed with the delay instructions removed. Productivity blocks will be used to program our industrial arduino controller.
We will then look at escape character codes that we can use with our industrial arduino. Since the built-in serial monitor will not interpret the escape codes, we will be using Putty as our serial monitor program. Let’s get started.

Previous posts in this Productivity Open Arduino Compatible Industrial Controller Series
A full list can be obtained at the following location:
Productivity Open (P1AM-100) Arduino Controller
Productivity Open Arduino Controller Hardware
– Starter Kit Unboxing Video
Powering Up Video
Installing the SoftwareVideo
First ProgramVideo
Program StructureVideo
Variables Data TypesVideo

Watch the video below to see the serial monitors work on our productivity open industrial Arduino controller. 

Adding Serial COM Instructions


Arduino Serial Monitor COM
We will now add Serial COM instructions to the program we made in the Program Structure post.
Arduino Serial Monitor COM
Select the Serial COM menu on the left side. Click and drag the Start instruction onto our workspace. Position it under the setup part of our program.
Arduino Serial Monitor COM
We will leave the default values the same except for the baud rate. Increase this to 115200. This will set our serial communication to 115200 baud, 8 data bits, No parity, and 1 stop bit.
Productivity Blocks Sample Program Code
Select the Set Integer instruction under the Variables\Constants menu on the left side menu. Click and drag to the workspace and place it under the start (Serial COM) instruction.
Productivity Blocks Sample Program Code
Right-click on the Set Integer instruction and select clone. This will make a copy of the instruction that will place under the else condition of our if/else instruction.
Productivity Blocks Sample Program Code
Here is our program so far.
Productivity Blocks Sample Program Code
Select the Serial COM menu on the left side. Click and drag the Print Number instruction onto our workspace under the Blink instruction.
Productivity Blocks Sample Program Code
Remove the 1 in the print number instruction by clicking and dragging it to the left side menu.
Productivity Blocks Sample Program Code
Right-click on the Integer_Variable and select clone. Drag the Integer_Variable to the number on the print number instruction.
Productivity Blocks Sample Program Code
Under the Math menu on the left-hand side, select +- instruction. Click and drag this onto our workspace and place it under the print number instruction.
Productivity Blocks Sample Program Code
Change the value we are adding to our Interger_Variable to 1.
Select verify from the top menu.
Arduino Serial Monitor COM
This will convert our program to C++ in the IDE. The syntax is something that we do not have to worry about because ProductivityBlocks makes it very easy to visually see our code.
Select the upload button to send this program to our industrial Arduino P1AM-100.
Arduino Serial Monitor COM
Once it is done uploading. Select the Serial Monitor icon on the top menu of the IDE.
Arduino Serial Monitor COM
Ensure that the baud rate is set to 115200 that we set above.
We can now turn on the P1AM-100 CPU switch.
Arduino Serial Monitor COM
The integer value will be printed and incremented after each blink of the CPU led. Notice that it is 250 milliseconds on and 500 milliseconds off. This gives us a total of 750 milliseconds before our serial print will be done out to our monitor. If our program needed to monitor another switch, this program would be too slow to pick it up.

Speeding Up our Program (Sketch)


Productivity Blocks Sample Program Code
Modify our program by removing blink instruction. This utilized the delay instruction that is currently slowing down our program. Instead of the blink instruction, we will be setting the CPU led high if the switch is on.
Save and then verify the productivity blocks program.
Arduino Serial Monitor COM
Upload to our industrial Arduino P1AM controller.
Arduino Serial Monitor COM
Select the Serial Monitor icon on the top menu of the IDE after uploading our new program.
Arduino Serial Monitor COM
Running our program now you can see that our numbers are rapidly increasing. Our program is running in the microsecond range instead of the millisecond range.

Using Escape Character Codes in Arduino

The serial monitor window built into the IDE works well for quick troubleshooting of your program. It does not understand escape characters. Escape characters can interact with your monitor and do things like tab, form feed, backspace, newline, carriage return, etc. In order to accomplish some of the escape characters, an external terminal monitor program must be used.
Here is the ASCII chart that will show you the escape characters that are available. In the arduino the backslash indicates the start of an escape code.
Arduino Serial Monitor COM
The above chart will indicate the way we print these escape character codes in the arduino.

Putty Serial Monitor

Putty is a program that can use escape codes. PuTTY is an SSH and telnet client, developed originally by Simon Tatham for the Windows platform. PuTTY is an open-source software that is available with source code and is developed and supported by a group of volunteers.
Download PuTTY here.
Arduino Serial Monitor COM
Since I am using a 64-bit Windows 7 machine the download for putty will be the 64-bit version of the standalone binaries.
Arduino Serial Monitor COM
Double click on the putty.exe file that you downloaded.
Select the serial for the connection type.
Arduino Serial Monitor COM
Select Serial from the left side menu under Category.
Arduino Serial Monitor COM
Ensure that the settings are the same as our arduino serial monitor port. 115200 baud, 8 data bits, 1 stop bit, and parity none.
Arduino Serial Monitor COM
Select Session on the left side menu. Select Default Settings and then save. This will now be the settings each time we start putty.
Now select the Open button on the bottom of the putty configuration window.
Arduino Serial Monitor COM
We will now run our program.
Arduino Serial Monitor COM
Our program looks similar to the built-in serial monitor of the IDE. Now let’s add some escape characters.

Adding Escape Codes to our Serial Monitor Program


Productivity Blocks Sample Program Code
Select the print character instruction under the Serial COM menu. Add this before our print number instruction. Change the character that we are going to print to the escape code for a carriage return. (/r)
Change the new line on our print instructions to false. The new line is actually the command for both a carriage return and new line. In our case, we only want a carriage return so the variable remains on the top line and gets updated. Select save and then verify on the top menu.
Arduino Serial Monitor COM
Upload the program to our P1AM industrial arduino.
Arduino Serial Monitor COM
Start our Putty program. Notice since we changed the default settings, our program starts in serial mode with the correct settings. Select Open.
Arduino Serial Monitor COM
As our program runs, the variable is now just on the top line. Stop putty and try the built-in serial monitor of the IDE. Since it does not understand the escape code everything will be on one line scrolling across the screen.
Note: You must stop the serial monitor programs before downloading a new program to the Arduino controller. This is because it uses the same serial line for communication with the IDE.
Arduino Serial Monitor COM

Watch the video below to see Putty working with our productivity open industrial arduino controller.

Download the P1AM-100 sample sketch and Productivity Block program here.

Productivity Open Arduino Compatible Links:
Product Hardware
Productivity Open (Automation Direct)
P1AM-100 Specifications
Productivity Open User Manual
Configure a Productivity Open Arduino-based Controller
Open Source Controllers (Arduino-Compatible)
Productivity Open Documentation (Facts Engineering)
P1AM Design Files
Software
Arduino IDE (Integrated Development Environment)
P1AM-100 library (Easy Interface for controlling P1000 Modules)
Productivity Blocks (Development Timesaver)
Productivity Blocks Documentation (Wiki)
Community
Automation Direct Forum – Open Source Devices

Next time we will look at program control in the P1AM-100 Arduino Industrial Controller.

Watch on YouTube: Productivity Open P1AM Industrial Arduino Serial Monitor COM

If you have any questions or need further information please contact me. Thank you, Garry

If you’re like most of my readers, you’re committed to learning about technology. Numbering systems used in PLC’s are not difficult to learn and understand. We will walk through the numbering systems used in PLCs. This includes Bits, Decimal, Hexadecimal, ASCII and Floating Point. To get this free article, subscribe to my free email newsletter.

Use the information to inform other people how numbering systems work. Sign up now. The ‘Robust Data Logging for Free’ eBook is also available as a free download. The link is included when you subscribe to ACC Automation.

Leave a Comment