UART вопрос
- Войдите на сайт для отправки комментариев
Втр, 09/06/2020 - 01:55
Есть 2 скетча
byte v;
void setup() {
Serial.begin(9600);
pinMode(BUILTIN_LED, OUTPUT);
}
void loop() {
if( Serial.available() > 0 ){
v = Serial.read(); // считываем один байт из UART
Serial.println(v);
switch (v) {
case 1:
digitalWrite(BUILTIN_LED, HIGH); // включаем светодиод
break;
case 2:
digitalWrite(BUILTIN_LED, LOW); // выключаем светодиод
break;
}
}
}
и
const int d12 = 12;
int count_1 = 0;
int count_2 = 0;
void setup() {
pinMode(d12, INPUT);
Serial.begin(9600); // инициализируем UART со скоростью 9600 бод
}
void loop() {
int State = digitalRead(d12);
//Serial.println(State);
if (State == HIGH && count_1 == 0){
Serial.write(1); // отправляем в UART число 1
count_1 = 1;
count_2 = 0;
Serial.println(1);
delay(500); // ждём 500мс
}
else if (State == LOW && count_2 == 0){
count_1 = 0;
count_2 = 1;
Serial.write(2); // отправляем в UART число 2
Serial.println(2);
delay(500); // ждём 500мс
}
}
Так же есть 2 платы: wemos D1 и nano
Если вемос - мастер, все работает, инфа по уарту летит в нано, если nanо - мастер, то в вемосе пустота.
В чем косяк?
а можно узнать, зачем вы во втором коде отправляете числа в Сериал дважды - командами write и print и понимаете ли вы разницу между ними?
и хотелось бы увидеть схему, как все соединено. Не понятно, как вы узнаете, что "в нано все летит", а назд - нет
Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.
В мониторе НАНО вижу что приходит. В Вемосе не вижу. Ко всему прочему, светодиод в НАНО включается/выключается как и положено
а можно узнать, зачем вы во втором коде отправляете числа в Сериал дважды - командами write и print и понимаете ли вы разницу между ними?
serial.println это для тестирования, видеть что в порт летит.
Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.
В мониторе НАНО вижу что приходит. В Вемосе не вижу. Ко всему прочему, светодиод в НАНО включается/выключается как и положено
А монитор-то как подключен? Вы в курсе, что на Нано только один USART порт? как вы одновременно его включили и в Вемос и в Монитор?
Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.
У ESP8266 - уровни 3.3В, у Nano - 5В. Существует ненулевая вероятность, что RX на ESP - тупо сдох от такого подключения (хотя, конечно, пишут, что 5V tolerant). С TX nano на RX wemos лучше бы через делитель.
Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.
В мониторе НАНО вижу что приходит. В Вемосе не вижу. Ко всему прочему, светодиод в НАНО включается/выключается как и положено
А монитор-то как подключен? Вы в курсе, что на Нано только один USART порт? как вы одновременно его включили и в Вемос и в Монитор?
Ок Отключил println.Картина не изменилась.
Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.
У ESP8266 - уровни 3.3В, у Nano - 5В. Существует ненулевая вероятность, что RX на ESP - тупо сдох от такого подключения (хотя, конечно, пишут, что 5V tolerant). С TX nano на RX wemos лучше бы через делитель.
Если так, то пичалька.
Хотя оба от ЮСБ.
Ок Отключил println.Картина не изменилась.
а что вы хотите увидеть? с 15 года вроде зарегестрированyы - никак не запомните что монитор порта на TX RX Arduino висит.
Если хочется общаться между ESP и Arduino и одновременно с монитором порта - ставьте software serial
Ок Отключил println.Картина не изменилась.
а что вы хотите увидеть? с 15 года вроде зарегестрированyы - никак не запомните что монитор порта на TX RX Arduino висит.
Если хочется общаться между ESP и Arduino и одновременно с монитором порта - ставьте software serial
Дата регистрации ни о чем не говорит. З наводку спасибо.
По образу и подобию подключения модема
void loop() { if (SIM800.available()) // Ожидаем прихода данных (ответа) от модема... while (SIM800.available()) { Serial.write(SIM800.read()); // ...и выводим их в Serial } if (Serial.available()) // Ожидаем команды по Serial... while (Serial.available()) SIM800.write(Serial.read()); // ...и отправляем полученную команду модему }ИМХО без делителя на выходе Tx NANO (аппаратного или программного) - риск подгорания входа Rx Wemos очень велик.
Дата регистрации ни о чем не говорит.
это точно....
В соседней ветке чел через два года после начала работы с ардуино узнал, что существуют локальные и глобальные переменные, в этой - понадобилось пять лет, чтобы понять, что RX TX USB - это одно и тоже :)))
ИМХО без делителя на выходе Tx NANO (аппаратного или программного) - риск подгорания входа Rx Wemos очень велик.
никто и не спорит, развязка уровней строго обязательна во избежании проблем....
хотя, тут недавно пробегала тема что ESP толерантна к уровням 5 вольт, но что то проверять на себе не хочется.
Дата регистрации ни о чем не говорит.
это точно....
В соседней ветке чел через два года после начала работы с ардуино узнал, что существуют локальные и глобальные переменные, в этой - понадобилось пять лет, чтобы понять, что RX TX USB - это одно и тоже :)))
Ну да, я зарегался и написал пару постов. Больше не заходил и ардуину не юзал.