siosin

MCU_serial

Sep 28th, 2020 (edited)
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2.  
  3. //Variable softwareSerial (Rx, Tx)
  4. SoftwareSerial DataSerial(D4, D3);
  5.  
  6. //Millis pengganti delay
  7. unsigned long previousMillis = 0;
  8. const long interval = 5000;
  9.  
  10. //variable penampung data array
  11. String arrData[3];
  12.  
  13. void setup() {
  14. Serial.begin(9600);
  15. DataSerial.begin(9600);
  16.  
  17. }
  18.  
  19. void loop() {
  20. //konfig millis
  21. unsigned long currentMillis = millis(); //baca millis saat ini
  22. if(currentMillis - previousMillis >= interval)
  23. {
  24. //update previousMillis
  25. previousMillis = currentMillis;
  26.  
  27. //Baca data dari UNO
  28. //baca data serial
  29. String data = "";
  30. while(DataSerial.available()>0)
  31. {
  32. data += char(DataSerial.read());
  33. }
  34. //buang spasi data
  35. data.trim();
  36.  
  37. //uji data
  38. if(data != "")
  39. {
  40. //pemecahan data
  41. int index = 0;
  42. for(int i=0; i<= data.length(); i++)
  43. {
  44. char delimiter = '#';
  45. if(data[i] != delimiter)
  46. arrData[index] += data[1];
  47. else
  48. index++; //variabel index bertambah 1
  49. }
  50. //pastikan data dikirim lengkap
  51. //urutan index 0=ppm, 1=temp, 2=ecpump
  52. if (index == 2)
  53. {
  54. //tampilkan nilai ke serial
  55. Serial.println("ppm: " + arrData[0]);
  56. Serial.println("Temp: " + arrData[1]);
  57. Serial.println("EcPump: " + arrData[2]);
  58. Serial.println();
  59. }
  60. arrData[0] = "";
  61. arrData[1] = "";
  62. arrData[2] = "";
  63. }
  64. //Reques data ke uno
  65. DataSerial.println("Ya");
  66. }
  67.  
  68. }
Add Comment
Please, Sign In to add comment