MAX485 module TTL to RS-485 (มีสต็อกสินค้าในประเทศไทยพร้อมจัดส่ง) สำหรับ Arduino
MAX485 module RS485 module TTL to RS-485
Features:
Onboard MAX485 chip provides a low power consumption for RS-485 communication.
Onboard 5.08 (mm) pitch 2P terminals to facilitate the RS-485 communication wiring.
All of the pins have been led by the MCU control operations
Working voltage: 5V
Board size: 44 x14mm
Programa Transmissor RS485
//Programa: Comunicação RS485 com Arduino - Transmissor
//Autor: Arduino e Cia
#include
//Pinos de comunicacao serial do modulo RS485
#define Pino_RS485_RX 10
#define Pino_RS485_TX 11
//Pino de controle transmissao/recepcao
#define SSerialTxControl 3
#define RS485Transmit HIGH
#define RS485Receive LOW
//Define led 13 para mostrar atividade na comunicacao
#define Pin13LED 13
//Cria a serial por sofware para conexao com modulo RS485
SoftwareSerial RS485Serial(Pino_RS485_RX Pino_RS485_TX);
void setup()
{
//Inicializa a serial do Arduino
Serial.begin(9600);
Serial.println(Modulo Transmissor);
Serial.println(Pressione o botao para enviar os dados...);
pinMode(Pin13LED OUTPUT);
pinMode(SSerialTxControl OUTPUT);
//Inicializa a serial do modulo RS485
RS485Serial.begin(4800);
//Seta o pino A0 como entrada e habilita o pull up
pinMode(A0 INPUT_PULLUP);
}
void loop()
{
//Verifica se o botao foi pressionado
int valor = digitalRead(A0);
if (valor == 0)
{
Serial.println(Botao pressionado. Enviando dados!);
//Habilita o modulo para transmissao
digitalWrite(SSerialTxControl RS485Transmit);
//Envia a string
RS485Serial.println(Botao acionado);
//Liga o led 13 para mostrar que ha conexao
digitalWrite(Pin13LED HIGH);
delay(10);
digitalWrite(Pin13LED LOW);
//Desabilita o modulo para transmissao
digitalWrite(SSerialTxControl RS485Receive);
while (digitalRead(A0) == 0)
{
delay(50);
}
}
}
Programa Receptor RS485
//Programa: Comunicação RS485 com Arduino - Receptor
//Autor: Arduino e Cia
#include
//Pinos de comunicacao serial do modulo RS485
#define Pino_RS485_RX 10
#define Pino_RS485_TX 11
//Pino de controle transmissao/recepcao
#define SSerialTxControl 3
#define RS485Transmit HIGH
#define RS485Receive LOW
//Define led 13 para mostrar atividade na comunicacao
#define Pin13LED 13
//Cria a serial por sofware para conexao com modulo RS485
SoftwareSerial RS485Serial(Pino_RS485_RX Pino_RS485_TX);
//Armazena os dados que chegam pela serial
String inputString = ;
//Variavel de string completa
boolean stringComplete = false;
void setup()
{
//Inicializa a serial do Arduino
Serial.begin(9600);
Serial.println(Modulo Receptor);
Serial.println(Aguardando dados...);
pinMode(Pin13LED OUTPUT);
pinMode(SSerialTxControl OUTPUT);
//Coloca o modulo RS485 em modo de recepcao
digitalWrite(SSerialTxControl RS485Receive);
//Inicializa a serial do modulo RS485
RS485Serial.begin(4800);
}
void loop()
{
//Recebe os dados do RS485 via porta serial
if (RS485Serial.available())
{
while (RS485Serial.available())
{
//Recebe os dados e monta a string
char inChar = (char)RS485Serial.read();
inputString += inChar;
if (inChar == n)
{
//Mostra no Serial Monitor a string recebida
Serial.print(inputString);
stringComplete = true;
inputString = ;
}
}
}
}