Чем связать UART(5V) - UART(3.3V) ?

kandiral
Offline
Зарегистрирован: 15.04.2017

Здравствуйте, уважаемые форумчане!

Задача связать Arduino Mega с ESP8266, но пока тестирую MEGA + DUE

Есть четырех канальный двунаправленный преобразователь 

https://advertexa.biz/p378356460-preobrazovatel-logicheskih-urovnej.html...

Когда просто инвертирую состояние дискретных входов, всё работает нормально. То есть Mega видит сигналы от DUE и наоборот. А когда их соединяю Serial1(Mega) <-> Serial1(DUE) в ответ тишина

Вот скетч который заливаю в оба контроллера:

01#define IN1 2 
02#define IN2 4 
03#define OUT1 3 
04#define OUT2 5 
05 
06#include <KRTON.h>
07KRTON ton1(5000);
08 
09bool b=true;
10 
11void setup() {
12  pinMode(IN1,INPUT);
13  pinMode(IN2,INPUT);
14  pinMode(OUT1,OUTPUT);
15  pinMode(OUT2,OUTPUT);
16  digitalWrite(OUT1, HIGH);
17  digitalWrite(OUT2, LOW);
18  Serial.begin(9600);
19  Serial1.begin(9600);
20}
21 
22void loop() {
23  if(ton1._DO(true)){
24    ton1._DO(false);
25    Serial.print("IN1=");Serial.println(digitalRead(IN1)==HIGH ? "HIGH" : "LOW");
26    Serial.print("IN2=");Serial.println(digitalRead(IN2)==HIGH ? "HIGH" : "LOW");
27    if(b){
28      digitalWrite(OUT1, LOW);
29      digitalWrite(OUT2, HIGH);
30    }else{
31      digitalWrite(OUT1, HIGH);
32      digitalWrite(OUT2, LOW);
33    }
34    b=!b;
35  }
36  if(Serial.available()){
37    int bt=Serial.read();
38    Serial1.write(bt);
39  }
40  if(Serial1.available()){
41    int bt=Serial1.read();
42    Serial.write(bt);
43  }
44}

При тестировании дискретных входов подключаю

Mega, преобразователь:

  • GND - GND
  • +5v - HV
  • D2 - HV1
  • D3 - HV2
  • D4 - HV3
  • D5 - HV4

DUE, преобразователь:

  • GND - GND
  • +3.3v - LV
  • D2 - LV2
  • D3 - LV1
  • D4 - LV4
  • D5 - LV3

При тестировании UART соединения

Mega, преобразователь:

  • GND - GND
  • +5v - HV
  • D18 - HV1
  • D19 - HV2

DUE, преобразователь:

  • GND - GND
  • +3.3v - LV
  • D18 - LV1
  • D19 - LV2

 

Я что-то не так подключаю или этот преобразователь не подходит для такой цели?

sadman41
Offline
Зарегистрирован: 19.10.2016

RX/TX перекрестно подключали, надеюсь? Что осциллограф показывает?

kandiral
Offline
Зарегистрирован: 15.04.2017

RX/TX подключи перекрестно.

Осциллографа нет

 

kandiral
Offline
Зарегистрирован: 15.04.2017

Меня в первую очередь интересуют вопросы подходит ли такой преобразователь и правильно ли я его подключил.

Если да, то буду ковырять(пробовать) дальше

 

kandiral
Offline
Зарегистрирован: 15.04.2017

Разобрался. На Меге контакты неправильно подписаны

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Мегу и ESP можно соединять без преобразователя, а через резисторы 3-5К. Там на входах стоят защитные диоды, поэтому достаточно ограничть ток..