Код, работавший в Uno, не работает в Mega 2560.
Я отправляю данные с помощью Android и считываю их с экрана последовательного порта Arduino. Когда я использую UNO, я могу плавно читать данные. Когда пользуюсь МЕГА, то код выгружает без ошибок, но не передает данные на экран серийника. Можете ли вы сказать мне, почему?
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2,3); // TX,RX
int bar_analog=0;
int head_analog=0;
int bar_anim=0;
int strip_anim=0;
int motor_speed=1;
int direct=0;
int level=0;
boolean debug = true;
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
Serial.println("Program is starting...");
Serial.println("by Berke Ogulcan Parlak");
}
void loop() {
if (bluetooth.available()) {
while (bluetooth.available())
{
bar_analog = bluetooth.parseInt();
head_analog = bluetooth.parseInt();
bar_anim = bluetooth.parseInt();
strip_anim = bluetooth.parseInt();
motor_speed = bluetooth.parseInt();
direct = bluetooth.parseInt();
level = bluetooth.parseInt();
if (debug) {
Serial.print("Bar Brightness: ");
Serial.println(bar_analog);
Serial.print("Bar Animation Type: ");
Serial.println(bar_anim);
Serial.print("Headlight Brightness: ");
Serial.println(head_analog);
Serial.print("Strip Animation Type: ");
Serial.println(strip_anim);
Serial.print("Motor Speed Level: ");
Serial.println(motor_speed);
Serial.print("Direction: ");
Serial.println(direct);
Serial.print("Mast Goes: ");
Serial.println(level);
Serial.println("--------------------------------");
}
if (bluetooth.read() == '\n') {
azdırma işlemleri bu satırda yapılacak..
}
}
}
}
@bopele, 👍0
1 ответ
▲ 3
SoftwareSerial использует прерывание смены контакта. Не все контакты на Mega имеют прерывания смены контактов.
Но на самом деле все это спорный вопрос, потому что, когда вы используете микроконтроллер с большим количеством настоящих аппаратных UART, в любом случае нет необходимости использовать SoftwareSerial.
,
@Majenko
Смотрите также:
- Как разделить входящую строку?
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Arduino Due vs Mega 2560
- Как получить уникальный идентификатор для всех плат Arduino?
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Тайм-аут связи Arduino Mega с ошибкой программатора