Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #define SSerialRX 9
- #define SSerialTX 8
- #define SSerialTxControl 7
- #define RS485Transmit HIGH
- #define RS485Receive LOW
- SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX
- struct mydata {
- char cmd;
- int count;
- float temp;
- char str[20];
- };
- mydata dato;
- byte stato = 0;
- void setup() {
- RS485Serial.begin(4800);
- Serial.begin(9600);
- pinMode(SSerialTxControl, OUTPUT);
- digitalWrite(SSerialTxControl, RS485Receive);
- }
- byte buff[20];
- int i = 0;
- void loop(){
- digitalWrite(SSerialTxControl, RS485Transmit);
- int a = (stato%3);
- Serial.println(a);
- RS485Serial.write( a ); //produce una sequenza: 0, 1, 2
- digitalWrite(SSerialTxControl, RS485Receive); // Disable RS485 Transmit
- stato++;
- if (RS485Serial.available()) {
- byte n = RS485Serial.read();
- if ((char)n == '\n') {
- Serial.println(n);
- //mySerial.write((const uint8_t *)&dato, sizeof(struct mydata));
- memcpy(&dato, buff, i);
- Serial.print(dato.cmd);Serial.print(" - ");
- Serial.print(dato.count);Serial.print(" - ");
- Serial.print(dato.temp);Serial.print("\n");
- Serial.print(dato.str);Serial.print("\n");
- Serial.print("ricevuti: ");
- Serial.print(i);
- Serial.println(" bytes - END");
- i = 0;
- } else {
- buff[i] = n;
- i++;
- }
- delay(1000);
- }
- //mySerial.write((const uint8_t *)&dato, sizeof(struct mydata));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement