Advertisement
pippero

Untitled

Nov 4th, 2022
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2. #define SSerialRX 9
  3. #define SSerialTX 8
  4. #define SSerialTxControl 7
  5. #define RS485Transmit HIGH
  6. #define RS485Receive LOW
  7.  
  8. SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX
  9.  
  10. struct mydata {
  11. char cmd;
  12. int count;
  13. float temp;
  14. char str[20];
  15. };
  16. mydata dato;
  17.  
  18. byte stato = 0;
  19.  
  20.  
  21. void setup() {
  22. RS485Serial.begin(4800);
  23. Serial.begin(9600);
  24. pinMode(SSerialTxControl, OUTPUT);
  25. digitalWrite(SSerialTxControl, RS485Receive);
  26. }
  27. byte buff[20];
  28. int i = 0;
  29. void loop(){
  30. digitalWrite(SSerialTxControl, RS485Transmit);
  31. int a = (stato%3);
  32. Serial.println(a);
  33. RS485Serial.write( a ); //produce una sequenza: 0, 1, 2
  34.  
  35. digitalWrite(SSerialTxControl, RS485Receive); // Disable RS485 Transmit
  36. stato++;
  37.  
  38.  
  39. if (RS485Serial.available()) {
  40. byte n = RS485Serial.read();
  41. if ((char)n == '\n') {
  42. Serial.println(n);
  43. //mySerial.write((const uint8_t *)&dato, sizeof(struct mydata));
  44.  
  45. memcpy(&dato, buff, i);
  46.  
  47. Serial.print(dato.cmd);Serial.print(" - ");
  48. Serial.print(dato.count);Serial.print(" - ");
  49. Serial.print(dato.temp);Serial.print("\n");
  50. Serial.print(dato.str);Serial.print("\n");
  51.  
  52. Serial.print("ricevuti: ");
  53. Serial.print(i);
  54. Serial.println(" bytes - END");
  55. i = 0;
  56. } else {
  57. buff[i] = n;
  58. i++;
  59. }
  60. delay(1000);
  61. }
  62. //mySerial.write((const uint8_t *)&dato, sizeof(struct mydata));
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement