رفتن به مطلب
  • advertisement_alt
  • advertisement_alt
  • advertisement_alt

مشکل در اتصال uart بین اردوینو پرو مینی و esp8266 v1


Erfan Saeedi
 اشتراک گذاری

ارسال های توصیه شده

وقتی مدار رو با وایرلس وصل میکنم به نتم کانکت نمیشه انگاری ک وایرلسو تشخیص نده

نحوه اتصال:

اردوینو                  وایرلس

en & 3.3 ---> pin 10

gnd ---> gnd

TX ---> pin 8

RX ---> pin 9

بعد این برنامه رو روی اردوینو پرو مینی اپلود کردم:

#include "SoftwareSerial.h"
SoftwareSerial esp(8, 9);

 

int l1 = 3;
int l2 = 4;
int r1 = 5;
int r2 = 6;

 

void setup() {
  Serial.begin(9600);
  esp.begin(115200);
  pinMode(l1, OUTPUT);
  pinMode(l2, OUTPUT);
  pinMode(r1, OUTPUT);
  pinMode(r2, OUTPUT);
  pinMode(10, OUTPUT);
  analogWrite(10, 170);
  sendData("AT+RST\r\n", 2000);                                   // RESET
  sendData("AT+CWMODE=1\r\n", 1000);                              //Client
  sendData("AT+CWJAP=\"ErfanSaeedi\",\"Se@8400000\"\r\n", 2000);  //USER & PASS
  while (!esp.find("OK")) {}
  sendData("AT+CIFSR\r\n", 1000);           // Get IP
  sendData("AT+CIPMUX=1\r\n", 1000);        // Single
  sendData("AT+CIPSERVER=1,80\r\n", 1000);  // Create Server
}

 

void loop() {
  if (esp.find("+IPD,")) {
    String msg;
    esp.find("?");
    msg = esp.readStringUntil(' ');
    String valuestr = msg.substring(0);
    int value = valuestr.toInt();
    Serial.println(value);
    if (value == 1) {
      digitalWrite(l1, HIGH);
      digitalWrite(l2, LOW);
      digitalWrite(r1, HIGH);
      digitalWrite(r2, LOW);
      delay(2000);
    }
    if (value == 2) {
      digitalWrite(l1, LOW);
      digitalWrite(l2, HIGH);
      digitalWrite(r1, LOW);
      digitalWrite(r2, HIGH);
      delay(2000);
    }
    if (value == 3) {
      digitalWrite(l1, HIGH);
      digitalWrite(l2, LOW);
      digitalWrite(r1, LOW);
      digitalWrite(r2, LOW);
      delay(700);
    }
    if (value == 4) {
      digitalWrite(l1, LOW);
      digitalWrite(l2, LOW);
      digitalWrite(r1, HIGH);
      digitalWrite(r2, LOW);
      delay(700);
    }

 

    if (value == 6) {
      digitalWrite(l1, LOW);
      digitalWrite(l2, HIGH);
      digitalWrite(r1, LOW);
      digitalWrite(r2, LOW);
      delay(700);
    }
    if (value == 9) {
      digitalWrite(l1, LOW);
      digitalWrite(l2, LOW);
      digitalWrite(r1, LOW);
      digitalWrite(r2, HIGH);
      delay(700);
    }
    if (value == 5) {
      digitalWrite(l1, LOW);
      digitalWrite(l2, LOW);
      digitalWrite(r1, LOW);
      digitalWrite(r2, LOW);
      delay(700);
    }
  }
}

 

String sendData(String command, const int timeout) {
  String response;
  esp.print(command);
  long int time = millis();
  while ((time + timeout) > millis()) {
    while (esp.available()) {
      char c = esp.read();
      response += c;
    }
  }
  Serial.print(response);
  return response;
}
لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

در مسیر ارتباط سریال بین آردوینو و ماژول باید از مدار تقسیم ولتاژ استفاده کنید

یک نمونه در لینک زیر:

https://irenx.ir/arduino/servo-motor-control-arduino-esp8266-wifi/

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری
 اشتراک گذاری

×
×
  • اضافه کردن...