SoftwareSerialExample

Arduino ve Genuino kartları, 0 ve 1 pinlerinde seri iletişim için dahili destek sunar, ancak daha fazla seri bağlantı noktasına ihtiyacınız varsa? SoftwareSerial Library , kablolu RX ve TX hatlarının işlevselliğini çoğaltmak için yazılım kullanarak, seri iletişimin panolarınızın diğer dijital pinlerinde gerçekleşmesini sağlamak için geliştirilmiştir. Bu, iki seri özellikli cihazla iletişim kurma veya ana seri portu hata ayıklama amacıyla açık bırakırken sadece bir cihazla konuşma ihtiyacı ortaya çıktığında son derece yararlı olabilir.

Aşağıdaki örnekte, Arduino veya Genuino kartlarınızdaki dijital pinler 10 ve 11 sanal RX ve TX seri hatları olarak kullanılmıştır. Sanal RX pini, ana seri hattı üzerinden gelen her şeyi dinlemek ve ardından bu verileri sanal TX hattından tekrarlamak için ayarlanır. Bunun tersine, sanal RX'de alınan her şey donanım TX'i üzerinden gönderilir.

Gerekli Donanım

  • Arduino veya Genuino Kurulu

Devre

Bu örnek için devre yok. Arduino Yazılımının (IDE) seri monitör penceresinden seri iletişimi sağlamak için Arduino veya Genuino kartınızın USB üzerinden bilgisayarınıza bağlı olduğundan emin olun.

Şemalar

Kod


/*
  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 2 (connect to TX of other device)
 * TX is digital pin 3 (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 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 mySerial(2, 3); // RX, TX

void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Native USB only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(38400);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

See Also

  • The Software Serial Library
  • TwoPortReceive- Özel bir karakter alındığında birinden diğerine veri geçişi yapan iki seri port.
  • MultiSerialMega- Arduino ve Genuino Mega'da bulunan iki seri bağlantı noktasını kullanın.
  • Serial Call Response- Bir çağrı ve yanıt (el sıkışma) yöntemini kullanarak birden fazla vaerable gönderin.
  • Serial Call Response ASCII- Bir çağrı ve yanıt (el sıkışma) yöntemi kullanarak birden çok değişken gönderin ve göndermeden önce değerleri ASCII kodlayın.