Apr 16, 2015 Komunikasi serial banyak digunakan dalam berbagai aplikasi karena kemudahannya dalam dukungan terhadap sistem. Dalam posting kali ini, saya akan menyampaikan cara pembuatan program pengiriman data serial menggunakan Microsoft Visual basic 2010.
Arduino and Genuino boards have built in support for serial communication on pins 0 and 1, but what if you need more serial ports? The SoftwareSerial Library has been developed to allow serial communication to take place on the other digital pins of your boards, using software to replicate the functionality of the hardwired RX and TX lines. This can be extremely helpful when the need arises to communicate with two serial enabled devices, or to talk with just one device while leaving the main serial port open for debugging purpose.
In the example below, digital pins 10 and 11 on your Arduino or Genuino boards are used as virtual RX and TX serial lines. The virtual RX pin is set up to listen for anything coming in on via the main serial line, and to then echo that data out the virtual TX line. Conversely, anything received on the virtual RX is sent out over the hardware TX.
Hardware Required
Arduino or Genuino Board
Circuit
There is no circuit for this example. Make sure that your Arduino or Genuino board is attached to your computer via USB to enable serial communication through the serial monitor window of the Arduino Software (IDE).
image developed using Fritzing. For more circuit examples, see the Fritzing project page
Schematics
image developed using Fritzing. For more circuit examples, see the Fritzing project page
Code
/* Software serial multple serial test Receives from the hardware serial, sends to software serial. Receives from software serial, sends to hardware serial. The circuit: * RX is digital pin 10 (connect to TX of other device) * TX is digital pin 11 (connect to RX of other device) Note: Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). created back in the mists of time modified 25 May 2012 by Tom Igoe based on Mikal Hart's example This example code is in the public domain. */ #include <SoftwareSerial.h> SoftwareSerial mySerial(10,11);// RX, TX voidsetup(){ // Open serial communications and wait for port to open: Serial.begin(57600); while(!Serial){ ;// wait for serial port to connect. Needed for native USB port only } Serial.println('Goodnight moon!'); // set the data rate for the SoftwareSerial port mySerial.begin(4800); mySerial.println('Hello, world?'); } voidloop(){// run over and over if(mySerial.available()){ Serial.write(mySerial.read()); } if(Serial.available()){ mySerial.write(Serial.read()); } }
See also
TwoPortReceive – Two serial ports that receive data switching from one to the other one when a special character is received.
MultiSerialMega - Use two of the serial ports available on the Arduino and Genuino Mega.
Serial Call Response - Send multiple vairables using a call-and-response (handshaking) method.
Serial Call Response ASCII - Send multiple variables using a call-and-response (handshaking) method, and ASCII-encode the values before sending.