arduino uno+hc-06+rs485
- Войдите на сайт для отправки комментариев
Втр, 06/02/2018 - 01:09
Всем доброе времени суток. Есть такой вопрос, собрался я сделать мобильное устройство для опросов оборудования. Есть Ардуина, блютуз модуль НС-06 и преобразователь RS 485.
по сути у меня есть несколько вопросов.
1е - сколько Сериал портов я могу организовать на ардуино Уно или Нано.
- я использую 6,7 порт для НС-06
- 10,11 для rs485
- 0,1 - решил не трогать так как они основные и при перепрошивке приходится вынимать блютуз если он там стоит
2е на сколько каряв мой код-
#include <SoftwareSerial.h>
#define RX485 10
#define TX485 11
#define RXBT 6
#define TXBT 7
#define OnOff 3
#define transmit HIGH
#define recive LOW
#define LinePin 13
SoftwareSerial Serial485 (RX485, TX485);
SoftwareSerial SerialBT (RXBT, TXBT);
char byte485;
char byteBT;
char byteSer;
int Send;
void setup() {
// put your setup code here, to run once:
Serial.begin(19200);
Serial.println("Go Go Go");
pinMode(OnOff, OUTPUT);
pinMode(LinePin, OUTPUT);
digitalWrite(LinePin, recive);
Serial485.begin(19200);
SerialBT.begin(19200);
SerialBT.println("Start BT");
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available())
{byteSer = Serial.read();
SerialBT.println(byteSer);
}
else if (Serial485.available())
{
}
else if (SerialBT.available())
{byteBT = SerialBT.read();
Serial.write(byteBT);}
}
На данном этапе достиг только того что получил сообщение в монитор порта с блютуза и обратно.
обновил код - теперь запросы с монитор порта и НС-06 доходят до устройства - но ответ на экран смартфона и монитор порта не возращаются :(
#include <SoftwareSerial.h> #define RX485 10 #define TX485 11 #define RXBT 6 #define TXBT 7 #define OnOff 3 #define transmit HIGH #define recive LOW #define LinePin 13 SoftwareSerial Serial485 (RX485, TX485); SoftwareSerial SerialBT (RXBT, TXBT); char byte485; char byteBT; char byteSer; int Send; void setup() { // put your setup code here, to run once: Serial.begin(19200); Serial.println("Go Go Go"); pinMode(OnOff, OUTPUT); pinMode(LinePin, OUTPUT); digitalWrite(LinePin, recive); Serial485.begin(19200); SerialBT.begin(19200); SerialBT.println("Start BT"); } void loop() { // put your main code here, to run repeatedly: Ser485(); SerBT(); while (Serial485.available()) { byte485 = Serial485.read(); Serial.print(byte485); } } void Ser485() { if(Serial.available()>0) { byteSer = Serial.read(); digitalWrite(OnOff, transmit); Serial485.write(byteSer); digitalWrite(OnOff, recive); } delay(20); } void SerBT() { if(SerialBT.available()>0) { byteBT = SerialBT.read(); digitalWrite(OnOff, transmit); Serial485.write(byteBT); digitalWrite(OnOff, recive); } delay(20); }