Tx Rx Arduino uno
Прежде всего позвольте мне поблагодарить вас всех, вы мне очень помогли. Итак, моя проблема следующая: у меня есть счетчик заметок, мне нужно прочитать данные с машины на Arduino в виде байтов или ascii, просто некоторые читаемые данные. Машина подключена к Arduino через 2 контакта, tx и rx, и данные, которые я получаю, не читабельны и кажутся странными, и еще один вопрос, нужен ли мне какой-то последовательный шил или нет? Потому что прямо сейчас он подключен к всего 2 провода. Спасибо
#include <AltSoftSerial.h>
// AltSoftSerial всегда использует эти контакты:
//
// Board Transmit Receive PWM Unusable
// ----- -------- ------- ------------
// Teensy 3.0 & 3.1 21 20 22
// Teensy 2.0 9 10 (none)
// Teensy++ 2.0 25 4 26, 27
// Arduino Uno 9 8 10
// Arduino Leonardo 5 13 (none)
// Arduino Mega 46 48 44, 45
// Wiring-S 5 6 4
// Sanguino 13 14 12
AltSoftSerial altSerial;
void setup() {
Serial.begin(9600);
while (!Serial) ; // ждем, пока откроется последовательный монитор Arduino
Serial.println("AltSoftSerial Test Begin");
altSerial.begin(9600);
}
byte rx_byte =0 ;
char text ;
char hex;
void loop() {
if (altSerial.available()) {
// получаем байт из последовательного порта программного обеспечения
rx_byte = altSerial.read();
// отправляем байт в последовательный порт программного обеспечения
//altSerial.println(text);
Serial.print(rx_byte, HEX);
}
//Serial.println("TUKA SUM");
//text = altSerial.read();
//hex=(text);
//Serial.print(text);
//Serial.write(text);
// Serial.println(text);
@Ivanh23, 👍0
Обсуждение1 ответ
Лучший ответ:
9-контактный порт предназначен для подключения к принтеру. Он использует протокол RS-232, а не UART.
Вы не можете подключить его напрямую к Arduino — необходимо подключить его через плату адаптера MAX232.
Немедленно отсоедините кабель — уровни напряжения RS-232 могут привести к необратимому повреждению Arduino.
Да, я где-то видел это, я это обнаружил, так что, в заключение, нет возможности использовать только два провода от последовательного кабеля к tx и rx на Arduino?, @Ivanh23
Неа. Вам необходимо преобразовать уровни напряжения от -10В/+10В до +5В/0В., @Majenko
Так что без платы адаптера MAX232 я могу делать то, что хочу. Хорошо, большое спасибо., @Ivanh23
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Что такое код? И что за странный вывод?, @Michel Keijzers
Укажите ссылку на счетчик банкнот, который вы используете., @Majenko
Почему вы используете программный последовательный порт, а не «аппаратный»? Каков результат? А ты уверен, что 9600 это правильная скорость?, @Michel Keijzers
Начало тестирования AltSoftSerial 00FE0F00000000000000000000000000000140B50000000000000000009C000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000083000830000B4AFB400002F90008000007F0042000091000E700E2FF00000F001E00FE0080000000000007DFC 00F0000000008000FF, @Ivanh23
Вот что я получаю, ссылка http://souqmega.com/product/nc3500-ma-value-counting-machine/, @Ivanh23
и да, я уверен, потому что я могу установить скорость передачи данных в машине,, @Ivanh23
Картинка бесполезна. Есть ли руководство или таблица данных, на которые можно дать ссылку?, @Majenko
Соединение с машиной осуществляется через UART или RS-232?, @Majenko
скорость передачи чего? контакты RX и TX предназначены для внешнего дисплея, @Juraj
https://manualzz.com/doc/6360685/nc-3500-series-multi-currency-banknote-counter, @Juraj
Вы используете 9-контактный или 5-контактный порт?, @Majenko
попробуйте поменять местами контакты tx и rx, у меня сработало после замены этих контактов, @NaveenVelusamy
Я использую 9-контактный порт, и от tx и rx на последовательном кабеле я подключаю их к rx и tx на Arduino или к 8 и 9 в эскизе, на Arduino нет шилда для последовательного кабеля, просто два провода., @Ivanh23
Вы по-прежнему просто печатаете удобочитаемые шестнадцатеричные символы, как и в ваших предыдущих вопросах. И ваш вывод состоит только из символов, которые используются для представления шестнадцатеричных значений в удобочитаемой форме. Так какого результата вы от него ожидали? Насколько я вижу код, вы не можете получить другой результат, кроме этого шестнадцатеричного преобразования., @chrisl