Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Következő változat
Előző változat
hu:arduino:serial_conv [2019/11/28 20:47]
Sandor Vamos
hu:arduino:serial_conv [2019/11/28 21:01] (aktuális)
Sandor Vamos
Sor 6: Sor 6:
 Az olyan board-okon, ahol csak egy serial csatorna van (UNO, NANO, MINI), ezt a kommunikációt letöltés előtt le kell kötni, mivel a PC-board kommunikáció is ezt a csatornát használja. \\ A serial UART kommunikáció,​ gyakorlatilag az összes tartalmat byte (illetve char) formában továbbítja. Ezt a tartalmat először össze kell rendezni és át kell konvertálni,​ hogy ismét - mondjuk - szöveges tartalomhoz jussunk. Ezekhez a konvertálásokhoz gyüjtöttem ide pár példaprogramot. Az olyan board-okon, ahol csak egy serial csatorna van (UNO, NANO, MINI), ezt a kommunikációt letöltés előtt le kell kötni, mivel a PC-board kommunikáció is ezt a csatornát használja. \\ A serial UART kommunikáció,​ gyakorlatilag az összes tartalmat byte (illetve char) formában továbbítja. Ezt a tartalmat először össze kell rendezni és át kell konvertálni,​ hogy ismét - mondjuk - szöveges tartalomhoz jussunk. Ezekhez a konvertálásokhoz gyüjtöttem ide pár példaprogramot.
  
-==== Mérés küldése ====+===== Mérés küldése ​=====
  
 A mérés küldéséhez a numerikus változót először érdemes átkonvertálni char_array-be,​ majd azt küldeni, itt a példaprogramban egy int-et: A mérés küldéséhez a numerikus változót először érdemes átkonvertálni char_array-be,​ majd azt küldeni, itt a példaprogramban egy int-et:
Sor 23: Sor 23:
 } }
 </​code>​ </​code>​
 +A konverziókhoz segítséget adhat a [[hu:​arduino:​var_conv|konverziós fejezet]].
  
 +===== Telegramm fogadása =====
 +A lenti program MEGA-ra íródott, egyidejűleg több serial-t is használ.
 +<code c>
  
 +void setup() {
 +  Serial.begin(9600); ​     // serial.monitor
 +  Serial1.begin(9600); ​    // arduino-arduino serial
 +}
 +
 +void loop() {
 +                           // főprogram
 +
 +  delay(100);
 +}
 +
 +void serialEvent1() {           // a funkció meghívásra kerül, ha valami érkezik a serial1-en (a másik Arduino-tól)
 +
 +  int i;                ​
 +  char data[20];
 +  delay(10); ​                   // kis idő, míg az egész telegramm bekerül a pufferbe
 +  i = Serial1.available(); ​     // a pufferelt telegramm hossza ​
 +  Serial.print("​hossza:​ ");
 +  Serial.println(i); ​           // a telegramm hossza
 +  Serial1.readBytes(data,​ i);   // a char_array-be teljes terjedelmében beolvasásra kerül
 +  Serial.print("​char_array:​ ");
 +  Serial.println(data); ​        // mehet a monitorra
 +  ​
 +  String eredmeny(data); ​       // mehet a String-be  ​
 +  Serial.print("​String:​ "​); ​    // monitor
 +  Serial.println(eredmeny); ​
 +}
 +</​code>​