RS485 Transmit Data int EN = 2; //RS485 has a enable/disable pin to transmit or receive data. Arduino Digital Pin 2 = Rx/Tx 'Enable'; High to Transmit, Low to Receive    void setup()  {   pinMode(EN, OUTPUT);   Serial.begin(19200); }     void loop() { // send data    digitalWrite(EN, HIGH);//Enable data transmit   Serial.print('A');   delay(1000); } RS485 Receiving Data int ledPin = 13; int EN = 2; int val;    void setup()  {   pinMode(ledPin, OUTPUT);   pinMode(EN, OUTPUT);   Serial.begin(19200); }    void loop() {   // receive data  digitalWrite(EN, LOW);//Enable Receiving Data  val = Serial.read();   if (-1 != val) {     if ('A' == val) {       digitalWrite(ledPin, HIGH);       delay(500);       digitalWrite(ledPin, LOW);       delay(500);     }  } } Sketch per la trasmissione //RS485 has a enable/disable pin to transmit or receive data. Arduino Digital Pin 2 = Rx/Tx 'Enable'; High to Transmit, Low to Receive int EN = 2; void setup() { pinMode(EN, OUTPUT); Serial.begin(19200); } void loop() { // send data digitalWrite(EN, HIGH);//Enable data transmit Serial.print('A'); delay(1000); } Sketch per la ricezione int ledPin = 13; int EN = 2; int val; void setup() { pinMode(ledPin, OUTPUT); pinMode(EN, OUTPUT); Serial.begin(19200); } void loop() { // receive data digitalWrite(EN, LOW);//Enable Receiving Data val = Serial.read(); if (-1 != val) { if ('A' == val) { digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); delay(500); } } } Programma per la ricezione di informazioni a pacchetti. Il led collegato al pin digitale 9,si accende solo se l’ informazione è corretta. Librerie necessarie per l’ utilizzo dell’ interrupt del timer. #include #include #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1) int a; int stato=0; int c=0; int Byte_Ricevuti=0; int LunghPack; boolean flag_RX=false; byte DatiRX[20]; int tcnt2; int toggle=0; int b=0; int TIMEOUT; boolean Ab_TIMEOUT; void setup() { pinMode(9,OUTPUT); UCSR0B |= (1 << RXEN0) | (1 << TXEN0); // Accendere il circuito di trasmissione e ricezione UCSR0C |=(1 << UCSZ00) | (1 << UCSZ01); // Utilizzare caratteri a dimensioni di8 bit UBRR0L = BAUD_PRESCALE; // Caricare gli 8 bit inferiori del baud rate nei byte inferiori del registro UBRR UBRR0H = (BAUD_PRESCALE >> 8); // Caricare gli 8 bit superiori del baud rate nei byte superiori del registro UBRR UCSR0B |= (1 << RXCIE0); // Attivare la USART alla ricezione completa dell' interrupt (USART_RXC) TIMSK2 &=~(1<