متوسط⏱ 12 دقیقه مطالعه
UART (Universal Asynchronous Receiver-Transmitter) سادهترین پروتکل ارتباط سریال است که با تنها دو سیم (TX و RX) بین دو دستگاه داده رد و بدل میکند. همان چیزی که با Serial.println() در سریال مانیتور میبینید، در پشت صحنه از طریق UART اصلی (Serial0) روی پورت USB ارسال میشود.
ایجاد یک UART اضافه با HardwareSerial
ESP32 چند واحد UART سختافزاری دارد. Serial معمولاً برای برنامهنویسی/دیباگ رزرو است؛ برای ارتباط با ماژولهای دیگر (مثل GPS یا بلوتوث سریال HC-05) یک شیء HardwareSerial جدید روی پایههای دلخواه میسازیم.
CPP
HardwareSerial mySerial(2); // استفاده از واحد سختافزاری UART شمارهٔ ۲
void setup() {
Serial.begin(115200);
mySerial.begin(9600, SERIAL_8N1, 16, 17); // باودریت، فرمت، RX، TX
}
void loop() {
mySerial.println("سلام از ESP32");
if (mySerial.available()) {
String data = mySerial.readString();
Serial.print("دریافت شد: ");
Serial.println(data);
}
delay(1000);
}ℹ️ اطلاعات
باودریت (baudrate) دو طرف ارتباط باید کاملاً یکسان باشد؛ رایجترین مقدار 9600 یا 115200 است.
کاربردهای رایج UART
- ماژولهای GPS برای دریافت مختصات مکانی
- ماژولهای بلوتوث سریال مثل HC-05/HC-06
- ارتباط بین دو میکروکنترلر
- پرینترهای حرارتی و برخی نمایشگرهای سریال
❓ حداقل چند سیم برای ارتباط پایهٔ UART نیاز است (بدون زمین مشترک)؟
→ فصل قبل: فصل ۳: ورودی آنالوگ و سنسورها: درس ۷: سنسور دما و رطوبت DHT11/DHT22
درس بعدی: درس ۹: پروتکل I2C و نمایشگر OLED ←
طراحی و توسعه: امین شیخ نجدی — glcd.ir | نسخهٔ افزونه: 1.21.0