如何解决ATTiny串行通信无法在ESP8266NodeMCU V3的3.3V电压下工作
我正在将数据从ATTiny85传输到ESP8266(NodeMCU v3)。我正在使用USB电缆为NodeMCU供电。 当我使用5V给ATTiny供电时,它工作正常。
但是我计划将我的项目转移到5V耐压的ESP32中。因此,我必须在3.3V下运行ATTiny(根据数据表,这是可能的)。但是,当我为ATTiny85使用3.3V电源时,没有得到预期的结果。我胡说八道。使用电平转换器是一种选择,但我想知道自己做错了什么。
为澄清起见,我所做的唯一更改是使用3.3V(而不是5V)为ATTiny供电。
我准备了以下演示来演示我的情况。在此先感谢:)
我正在使用Ardiono 1.8.10
NodeMCU核心:2.7.4
ATTiny85使用8MHz内部振荡器运行。
NodeMCU代码
char rx;
void setup()
{
Serial.begin(57600);
}
void loop()
{
if (Serial.available()){
rx=Serial.read();
Serial.print(rx);
}
}
ATTiny85代码
#include "SoftwareSerial.h"
SoftwareSerial Monitor(5,4);
uint8_t x=0; //temp
uint8_t y=128; // ECG
void setup() {
Monitor.begin(57600);
}
void loop() {
Monitor.print("E"+String(int(y)));
Monitor.print("T"+String(int(x)));
x=x+1;
y=y-1;
delay(10);
}
当ATTiny从Arduino UNO以5V运行时,串行监控od NodeMCU
T95E32T96E31T97E30T98E29T99E28T100E27T101E26T102E25T103E24T104
Screen-Shot 1
当ATTiny从Arduino UNO以3.3V运行时,串行监控od NodeMCU
⸮qxt⸮q99⸮qx5⸮q9x⸮qx6⸮q97⸮qx7⸮q96⸮qxx⸮q95⸮qx9⸮q9t⸮q9`⸮q93⸮q9q⸮q9r⸮q9r⸮q9q⸮q93
Screen-Shot 2
当ATiny从ESP8266以3.3V运行时,串行监控od NodeMCU
3x⸮rtv⸮q37⸮rt7⸮qsv⸮rtx⸮qsu⸮rty⸮q3t⸮r5`⸮q3s⸮r5q⸮q3r⸮rur⸮q3q⸮r5s⸮q3`⸮r5t
Screen-Shot 3
解决方法
当您使用3.3V供电时,ATTiny85似乎必须以38400bps的速度运行SoftwareSerial。
但是用5V供电时,它可以在57600bps上正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。