2017-12-19 38 views
-2

ESP의 Rx 핀이 메가 핀 7에 연결된 Arduino Mega를 통해 ESP8266 모듈과 통신하려고합니다. ESP의 Tx 핀이 Mega 's Pin 6에 연결되었습니다. 다음 테스트 코드를 실행하려고했습니다 :SoftSerial Not ESP8266

#include <SoftwareSerial.h> 

SoftwareSerial esp8266(6, 7); 

void setup() { 
// Open serial communications and wait for port to open: 
Serial.begin(115200); 
while (!Serial) { 
    ; // wait for serial port to connect. Needed for native USB port only 
} 

    Serial.println("Started"); 

// set the data rate for the SoftwareSerial port 
esp8266.begin(9600); 
esp8266.write("AT\r\n"); 
} 

void loop() { 
if (esp8266.available()) { 
    Serial.write(esp8266.read()); 
} 
if (Serial.available()) { 
    esp8266.write(Serial.read()); 
} 
} 

ESP8266 모듈로부터 응답이 없습니다. 그런 다음 메가의 전용 Tx 및 Rx 핀 (각각 1 및 0)을 사용하려고했습니다. 직렬 모니터를 사용하여 명령을 보낼 수 있으며 응답합니다. 먼저 AT+CIOBAUD=9600을 115200 전송 속도로 전송하여 ESP 모듈의 전송 속도를 9600으로 변경했습니다. 그런 다음 9600 전송 속도로 AT+UART_DEF=9600,8,1,0,0을 보냈습니다. 양쪽 모두 예상대로 OK이라고 대답했습니다. 이 프로그램을 다시 실행하려고했지만 ESP 8266 모듈에서 응답이 없습니다. 나는 또한 단순히 Rx와 Tx 핀을 안전하게 바꾸기 위해 노력했다. 아직도 작동하지 않습니다. 내가 잘못하고있는 것에 대한 아이디어가 있습니까?

+0

@Billa 예, '시작됨'을 인쇄하지만 아무 것도 응답하지 않습니다. – foobar5512

+0

@Billa 작동하지 않는 것 같습니다. – foobar5512

+0

이 질문은 @Billa Right, https://arduino.stackexchange.com – user902383

답변

0

의견에서 언급했듯이 SoftwareSerial esp(6,7)UNO에서 작동하지만 Mega에서는 작동하지 않습니다. 그 단어는 Arduino SoftwareSerial 참조 페이지, 특히 제한 섹션에서 충분히 큰 힌트 여야합니다.

요약하면 UNO과 달리 Mega에는 모든 핀에서 핀 변경 인터럽트 기능이 없습니다. 따라서 핀 6에 Rx 핀을 사용할 수 없습니다.