невозможно прочитать вывод RS232 на Arduino mega с экраном MAX232
Я пытаюсь считать данные с датчика, оборудованного RS232, с помощью последовательного монитора, подключенного к Arduino Mega с экраном RS-232, но я не получаю никаких данных.
Я не могу определить точную причину проблемы, так как она возникает только при объединении датчика и RS232shield/Arduino, в то время как связь работает должным образом при тестировании их по отдельности
Что работает:
- Подключение датчика к компьютеру с помощью переходного кабеля RS232-USB.
- Передача данных с компьютера через кабель-переходник USB-RS232 на экран RS232 и обратно через USB-выход Arduino.
- Подключение контакта 2 RS232 к порту 10 с использованием библиотеки {SoftwareSerial} с инвертированной логикой.
Что не работает:
- Передача данных с датчика на компьютер через MAX232 и Arduino.
Настройка:
- Ардуино Мега 2560
- Шилд Seeed RS232 (на базе MAX232)
- Датчик с выходом RS232 (57600 8N1)
Я подключил выход RS232 датчика к экрану с помощью преобразователя пола MM. Шилд и Arduino соединены тремя проводами: GND-GND, 5V-5V, 232_TX-RX1), а Arduino подключается к Macbook через USB. Последовательный монитор на компьютере настроен на 56700 бод.
Я использую следующий скетч для передачи данных с экрана RS232 на последовательный:
void setup()
{
// Открытая последовательная связь на скорости 5700 бод
Serial.begin(57600);
Serial1.begin(57600);
// Проверяем, активен ли Serial1
if (Serial1.available())
while (!Serial1) {
;
}
Serial.println("Serial 1 is active");
}
void loop()
{
if (Serial1.available()){
Serial.write(Serial1.read());
}
}
@Joost Keuskamp, 👍1
Обсуждение1 ответ
Я решил вышеизложенное и поделюсь ответом, поскольку он может помочь другим:
Поскольку светодиодный индикатор Tx на экране RS232 не загорался при подключении к датчику, я проверил разницу напряжений между контактом 2 (Tx) и контактом 5 (GND) разъема RS232. Оказалось, что это всего 5 В, что указывает на то, что используется протокол TTL-RS232, а не «настоящий» RS232.
Из-за низкого напряжения я подключил контакты RS232 Tx и GND напрямую к Arduino. С Tx, подключенным к цифровому порту 10, я использовал библиотеку SoftwareSerial с логической инверсией для чтения данных: SoftwareSerial mySerial(10, 11, 1)
.
Это работает!
это не ответ на вопрос, потому что в ответе используется информация, не упомянутая в вопросе. что за датчик?, @Juraj
- Чтение данных с Ohaus Defender 3000 с экраном RS-232
- Как разделить входящую строку?
- Какова максимальная длина провода для последовательной связи между двумя Arduino?
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Последовательная связь между двумя Arduino (запрос и получение)
- Не нашел датчик отпечатков пальцев :( Arduino Mega 2560 Adafruit Fingerprint Sensor
- Модуль SIM808: команда определения местоположения GSM (AT+CIPGSMLOC=1,1) дает неверное значение после выполнения команды отправки сообщения (AT+CMGS=+91xxxxxxxx)
- Как правильно получить MIDI с Arduino, с 6n138?
Требуются ли вашему датчику аппаратные сигналы управления потоком, которые не обеспечивает экран?, @Majenko