Advertisement
pippero

Untitled

Nov 4th, 2022
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2. #define SSerialRX 10
  3. #define SSerialTX 11
  4. #define SSerialTxControl 3
  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 = {'x', 0, 18.0f, "hello world!"};
  17.  
  18. void setup() {
  19. RS485Serial.begin(4800);
  20. Serial.begin(9600);
  21. pinMode(13, OUTPUT);
  22. pinMode(SSerialTxControl, OUTPUT);
  23. digitalWrite(SSerialTxControl, RS485Receive); // Init Transceiver
  24. }
  25. void loop() {
  26.  
  27. if (RS485Serial.available()) {
  28. byte n = RS485Serial.read();
  29. if (n == 0) {
  30. Serial.println("req");
  31. digitalWrite(13, HIGH);
  32. readSensor();
  33. }
  34.  
  35. }
  36. }
  37. void readSensor(){
  38. digitalWrite(SSerialTxControl, RS485Transmit);
  39. RS485Serial.write((const uint8_t *)&dato, sizeof(struct mydata));
  40. RS485Serial.write((byte)'\n');
  41. dato.count++;
  42. delay(250);
  43. digitalWrite(SSerialTxControl, RS485Receive);
  44. digitalWrite(13, LOW);
  45. Serial.print("dato.count"); Serial.println(dato.count);
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement