SerialEvent

Bu örnek SerialEvent () işlevinin kullanımını gösterir. Bu işlev loop () içinde çağrılır. Arabellekte seri veri varsa, bulunan her karakter bir satırsonu bulunana kadar bir dizeye eklenir. Bu durumda, şimdiye kadar alınan karakterler tarafından yapılan dize yazdırılır ve null değerine geri ayarlanır.

Gerekli Donanım

  • Arduino veya Genuino Kurulu

Devre

Yok, ancak kart bilgisayara bağlı olmalıdır; Arduino Software (IDE) seri monitörü tekli veya çoklu karakterleri iletmek ve dizeyi geri almak için kullanılabilir.

Kod


/*
  Serial Event example

  When new serial data arrives, this sketch adds it to a String.
  When a newline is received, the loop prints the string and clears it.

  A good test for this is to try it with a GPS receiver that sends out
  NMEA 0183 sentences.

  NOTE: The serialEvent() feature is not available on the Leonardo, Micro, or
  other ATmega32U4 based boards.

  created 9 May 2011
  by Tom Igoe

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/SerialEvent
*/

String inputString = "";         // a String to hold incoming data
bool stringComplete = false;  // whether the string is complete

void setup() {
  // initialize serial:
  Serial.begin(9600);
  // reserve 200 bytes for the inputString:
  inputString.reserve(200);
}

void loop() {
  // print the string when a newline arrives:
  if (stringComplete) {
    Serial.println(inputString);
    // clear the string:
    inputString = "";
    stringComplete = false;
  }
}

/*
  SerialEvent occurs whenever a new data comes in the hardware serial RX. This
  routine is run between each time loop() runs, so using delay inside loop can
  delay response. Multiple bytes of data may be available.
*/
void serialEvent() {
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    // add it to the inputString:
    inputString += inChar;
    // if the incoming character is a newline, set a flag so the main loop can
    // do something about it:
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}

See Also

  • SerialEvent()

  • ASCIITable- Arduino'nun gelişmiş seri çıkış fonksiyonlarını gösterir.
  • Dimmer- Bir LED'in parlaklığını değiştirmek için fareyi hareket ettirin.
  • Graph- Verileri bilgisayara gönderin ve İşlemde grafiğini çizin.
  • Midi- Seri olarak MIDI not mesajları gönderin.
  • MultiSerialMega- Arduino ve Genuino Mega'da bulunan iki seri bağlantı noktasını kullanın.
  • PhysicalPixel- İşleme veya Maks / MSP'den kartınıza veri göndererek bir LED'i açın ve kapatın.
  • ReadASCIIString- Bir LED'in solması için virgülle ayrılmış bir tamsayı dizesi ayrıştırın.
  • SerialCallResponse- Bir çağrı ve yanıt (el sıkışma) yöntemi kullanarak birden çok değişken gönderin.
  • SerialCallResponseASCII- 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.
  • VirtualColorMixer- Arduino'dan bilgisayarınıza birden çok değişken gönderin ve bunları İşleme veya Maks / MSP'de okuyun.