UART вопрос

JIEXA
Offline
Зарегистрирован: 11.02.2015

Есть 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о - мастер, то в вемосе пустота.

В чем косяк?

b707
Offline
Зарегистрирован: 26.05.2017

а можно узнать, зачем вы во втором коде отправляете числа в Сериал дважды - командами write и  print и понимаете ли вы разницу между ними?

b707
Offline
Зарегистрирован: 26.05.2017

и хотелось бы увидеть схему, как все соединено. Не понятно, как вы узнаете, что "в нано все летит", а назд - нет

JIEXA
Offline
Зарегистрирован: 11.02.2015

Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.

В мониторе НАНО вижу что приходит. В Вемосе не вижу. Ко всему прочему, светодиод в НАНО включается/выключается как и положено 

JIEXA
Offline
Зарегистрирован: 11.02.2015

b707 пишет:

а можно узнать, зачем вы во втором коде отправляете числа в Сериал дважды - командами write и  print и понимаете ли вы разницу между ними?

serial.println это для тестирования, видеть что в порт летит.

b707
Offline
Зарегистрирован: 26.05.2017

JIEXA пишет:

Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.

В мониторе НАНО вижу что приходит. В Вемосе не вижу. Ко всему прочему, светодиод в НАНО включается/выключается как и положено 

А монитор-то как подключен? Вы в курсе, что на Нано только один USART порт? как вы одновременно его включили и в Вемос и в Монитор?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

JIEXA пишет:

Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.

У ESP8266 - уровни 3.3В, у Nano - 5В. Существует ненулевая вероятность, что RX на ESP - тупо сдох от такого подключения (хотя, конечно, пишут, что 5V tolerant). С TX nano на RX wemos лучше бы через делитель.

JIEXA
Offline
Зарегистрирован: 11.02.2015

b707 пишет:

JIEXA пишет:

Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.

В мониторе НАНО вижу что приходит. В Вемосе не вижу. Ко всему прочему, светодиод в НАНО включается/выключается как и положено 

А монитор-то как подключен? Вы в курсе, что на Нано только один USART порт? как вы одновременно его включили и в Вемос и в Монитор?

Ок Отключил println.Картина не изменилась.

JIEXA
Offline
Зарегистрирован: 11.02.2015

DIYMan пишет:

JIEXA пишет:

Соединено все очень просто. TX wemos ---> RX nano, TX nano ---> RX wemos, GND объединены.

У ESP8266 - уровни 3.3В, у Nano - 5В. Существует ненулевая вероятность, что RX на ESP - тупо сдох от такого подключения (хотя, конечно, пишут, что 5V tolerant). С TX nano на RX wemos лучше бы через делитель.

Если так, то пичалька.

Хотя оба от ЮСБ.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

JIEXA пишет:

Ок Отключил println.Картина не изменилась.

а что вы хотите увидеть? с 15 года вроде зарегестрированyы - никак не запомните что монитор порта на TX RX Arduino висит.

Если хочется общаться между ESP и Arduino и одновременно с монитором порта - ставьте software serial

JIEXA
Offline
Зарегистрирован: 11.02.2015

andycat пишет:

JIEXA пишет:

Ок Отключил println.Картина не изменилась.

а что вы хотите увидеть? с 15 года вроде зарегестрированyы - никак не запомните что монитор порта на TX RX Arduino висит.

Если хочется общаться между ESP и Arduino и одновременно с монитором порта - ставьте software serial

Дата регистрации ни о чем не говорит.  З наводку спасибо.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

По образу и подобию подключения модема

void loop() {
  if (SIM800.available())           // Ожидаем прихода данных (ответа) от модема...
    while (SIM800.available()) {
      Serial.write(SIM800.read());    // ...и выводим их в Serial
    }
  if (Serial.available())           // Ожидаем команды по Serial...
    while (Serial.available())
      SIM800.write(Serial.read());    // ...и отправляем полученную команду модему
}

 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

ИМХО без делителя на выходе Tx NANO (аппаратного или программного) - риск подгорания входа Rx Wemos очень велик.

b707
Offline
Зарегистрирован: 26.05.2017

JIEXA пишет:

Дата регистрации ни о чем не говорит. 

это точно....

В соседней ветке чел через два года после начала работы с ардуино узнал, что существуют локальные и глобальные переменные, в этой - понадобилось пять лет, чтобы понять, что RX TX USB - это одно и тоже :)))

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Komandir пишет:

ИМХО без делителя на выходе Tx NANO (аппаратного или программного) - риск подгорания входа Rx Wemos очень велик.

никто и не спорит, развязка уровней строго обязательна во избежании проблем....

хотя, тут недавно пробегала тема что ESP толерантна к уровням 5 вольт, но что то проверять на себе не хочется.

JIEXA
Offline
Зарегистрирован: 11.02.2015

b707 пишет:

JIEXA пишет:

Дата регистрации ни о чем не говорит. 

это точно....

В соседней ветке чел через два года после начала работы с ардуино узнал, что существуют локальные и глобальные переменные, в этой - понадобилось пять лет, чтобы понять, что RX TX USB - это одно и тоже :)))

Ну да, я зарегался и написал пару постов. Больше не заходил и ардуину не юзал.