ماژول MAX3485 مبدل TTL To RS485
ماژول مبدل MAX3485 TTL To RS485
ماژول مبدل TTL به RS485 با تراشه MAX3485، یک ماژول تبدیل پروتکل UART به استاندارد صنعتی RS485 است. به کمک این ماژول می توانید داده ها را در فواصل طولانی از طریق کابل، انتقال داده و از آن ها در برابر نویز، محافظت کنید. این ماژول به سادگی با آردوینو و سایر میکروکنترلرها نظیر ARM راه اندازی می شود. همچنین، جهت سهولت در راه اندازی و کار با این ماژول، کتابخانه تحت آردوینو در قسمت دانلودها، قرار گرفته است. این ماژول با بردهای ESP و آردوینو سازگاری کامل داشته و به سادگی با آن ها راه اندازی می گردد.
مشخصات فنی و ویژگی های کلی ماژول مبدل MAX3485 TTL To RS485
- ابعاد کوچک
- جریان مصرفی پایین
- ولتاژ کاری3.3 و 5 ولت
- توانایی انتقال داده تا 10Mbps
- دمای کاری بین 40- الی 85+ سانتی گراد
- سهولت در راه اندازی، بدون نیاز به قطعات اضافه
- سازگاری با بردهای آردوینو، ESP و میکروکنترلرهای ARM نظیر STM32
کاربردهای ماژول مبدل MAX3485 TTL To RS485
ماژول MAX3485 یک مبدل سطح سیگنال است که به عنوان یک رابط بین دستگاههای دیجیتالی با سطح سطح TTL (Transistor-Transistor Logic) و دستگاههایی که از پروتکل RS485 پشتیبانی میکنند، عمل میکند. این ماژول از طریق تبدیل سطح سیگنال به یک پروتکل ارتباطی مبتنی بر چندین نقطهای RS485، اجازه ارتباط میان دستگاههایی را میدهد که با محیطهای نویزی و مخابراتی پرشده هستند. RS485 یک پروتکل ارتباطی چند نقطهای است که برای محیطهای صنعتی و اتوماسیون ساختمانی مناسب است. استفاده از این ماژول برای کاربردهای مختلفی مانند کنترل صنعتی، اتوماسیون ساختمانی، انتقال داده در شبکههای محلی و انتقال دادهها به طور دور از طریق اینترنت و ارتباط از راه دور و ... مناسب است.
- خانه های هوشمند و کنترل وسایل
- کنترل درایور موتور ها در فواصل طولانی
- ایجاد ارتباط در فواصل طولانی بین دو میکروکنترلر
- ایجاد شبکه بین دستگاه های مختلف و کنترل آن ها از طریق اتاق فرمان
روش کار با ماژول MAX3485 مبدل TTL To RS485
استفاده از ماژول MAX3485 به عنوان یک ماژول تکمیلی: در این روش، ابتدا پایههای VCC و GND ماژول را به منبع تغذیه وصل کنید. سپس پایههای TX و RX دستگاه TTL خود را به پایههای DI و RO ماژول متصل کنید. همچنین پایههای A و B را به دستگاه RS485 متصل کنید. در نهایت با استفاده از پایههای DE و RE ماژول، جهت انتقال دادهها را تعیین کنید.
ساخت یک مدار تبدیل ساده: در این روش، میتوانید با استفاده از MAX3485 و تعدادی قطعه الکترونیکی دیگر، یک مدار تبدیل ساده برای تبدیل سیگنال TTL به RS485 ساخته و آن را به دستگاه مورد نظر خود متصل کنید. جهت این کار میتوانید از شماتیک و نحوه ساخت مدارهای مختلف که در دسترس هستند استفاده کنید. توصیه میشود قبل از استفاده از این ماژول، به دقت به پایهبندی و نحوه اتصال به دستگاههای دیگر توجه کنید و از دیتاشیت و دستورالعمل استفاده کنید.
برنامه نویسی ماژول MAX3485 مبدل TTL To RS485 با اردوینو
برای برنامهنویسی ماژول MAX3485 مبدل TTL به RS485 با استفاده از برد آردوینو، میتوانید از کتابخانه SoftwareSerial استفاده کنید. این کتابخانه به شما امکان ایجاد یک سریال پورت مجازی را بر روی پایههای آردوینو میدهد که میتوانید آن را به پایههای ماژول MAX3485 متصل کنید. نحوه استفاده از کتابخانه SoftwareSerial به شرح زیر است.
نصب کتابخانه: قبل از شروع برنامهنویسی، باید کتابخانه SoftwareSerial را در آردوینو نصب کنید. برای این منظور، به قسمت Sketch -> Include Library -> Manage Libraries در نرمافزار آردوینو بروید و کتابخانه SoftwareSerial را جستجو کنید و آن را نصب کنید.
تعریف سریال پورت: در قسمت setup کد، با استفاده از تابع SoftwareSerial، یک سریال پورت جدید تعریف کنید که برای آن پایههای ماژول MAX3485 را در نظر گرفتهاید. به عنوان مثال:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
در این مثال، یک سریال پورت با نام mySerial تعریف شده است که برای آن پایه RX به پایه 2 و پایه TX به پایه 3 از آردوینو متصل شده است. شروع ارتباط: پس از تعریف سریال پورت، باید آن را با فرکانس مورد نظر شما شروع کنید. به عنوان مثال:
void setup() {
mySerial.begin(9600); // شروع ارتباط با سرعت 9600 باود
}
ارسال داده: با استفاده از تابع mySerial.write() میتوانید دادههای مورد نظر را از طریق سریال پورت ارسال کنید. به عنوان مثال:
void loop() {
mySerial.write("Hello World!"); // ارسال داده
delay(1000); // تاخیر 1 ثانیه
}
در این مثال، عبارت "Hello World!" هر 1 ثانیه از طریق سریال پورت ارسال میشود.
دریافت داده: با استفاده از تابع mySerial.available() میتوانید بررسی کنید که آیا دادهای از سریال پورت دریافت شده است یا خیر. به عنوان مثال:
void loop() {
if (mySerial.available()) {
char c = mySerial.read(); // خواندن داده
Serial.println(c); // نمایش داده در مانیتور سریال
}
}
در این مثال، در صورتی که دادهای از سریال پورت دریافت شود، آن را به کمک تابع mySerial.read() خوانده و سپس در مانیتور سریال با استفاده از تابع Serial.println() نمایش داده میشود.
تنظیمات پیکربندی: برای تنظیمات پیکربندی بیشتر، میتوانید از توابع mySerial.begin()، mySerial.end() و mySerial.flush() استفاده کنید. به عنوان مثال:
void setup() {
mySerial.begin(9600); // شروع ارتباط با سرعت 9600 باود
mySerial.setTimeout(1000); // تنظیم مدت زمان timeout به 1 ثانیه
}
void loop() {
mySerial.flush(); // پاک کردن بوفرهای دریافت و ارسال
}
در این مثال، تابع mySerial.setTimeout() برای تنظیم timeout و تابع mySerial.flush() برای پاک کردن بوفرهای دریافت و ارسال استفاده شده است. توجه داشته باشید که پایههای ماژول MAX3485 را به پایههای سریال پورت متصل کنید و تنظیمات سرعت baud rate، پاریتی و ... را در کد آردوینو مطابق با نیاز خود تنظیم کنید.
برنامه نویسی ماژول MAX3485 مبدل TTL To RS485 با میکروپایتون و esp32
برای برنامهنویسی ماژول MAX3485 مبدل TTL To RS485 با میکروپایتون و esp32 میتوانید به کتابخانههای زیر مراجعه کنید.
کتابخانه PySerial: این کتابخانه به شما این امکان را میدهد که با استفاده از پورت سریال بر روی پایتون، ارتباطات RS485 را انجام دهید. برای نصب این کتابخانه، میتوانید دستور pip install pyserial را در ترمینال پایتون وارد کنید.
کتابخانه Modbus: این کتابخانه امکان برقراری ارتباطات Modbus را بر روی پایتون فراهم میکند. این کتابخانه میتواند برای برنامهنویسی دستگاههایی که از پروتکل Modbus استفاده میکنند، بسیار مفید باشد. برای نصب این کتابخانه، میتوانید دستور pip install pymodbus را در ترمینال پایتون وارد کنید. پس از نصب کتابخانههای بالا، میتوانید با استفاده از پورت سریال بر روی esp32 به MAX3485 متصل شوید و با استفاده از دستورات RS485، دادههای خود را بین دو دستگاه RS485 ارسال و دریافت کنید. به عنوان مثال، با استفاده از کتابخانه PySerial میتوانید به شکل زیر دادههای خود را ارسال کنید.
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
# ارسال دستورات به MAX3485
ser.write(b'Hello, world!')
# دریافت داده از MAX3485
data = ser.read(10)
ser.close()
در این مثال، /dev/ttyUSB0 به عنوان پورت سریال بر روی esp32 استفاده شده است. همچنین، سرعت ارتباطی 9600 بیت بر ثانیه و تایماوت 1 ثانیه برای خواندن دادهها تنظیم شده است.
برنامه نویسی ماژول MAX3485 مبدل TTL To RS485 با میکروپایتون و rp2040
برای برنامه نویسی ماژول MAX3485 مبدل TTL To RS485 با میکروکنترلر rp2040، میتوانید از زبان میکروپایتون و کتابخانههای مربوطه استفاده کنید. در اینجا یک نمونه کد برای ارسال داده از طریق ماژول MAX3485 با استفاده از rp2040 آمده است. در این نمونه، ابتدا کتابخانههای مورد نیاز فراخوانی شده، پایههای مربوط به MAX3485 و تراشه UART موجود در rp2040 مشخص شده و سپس با استفاده از تابع uart.write() دادهها به صورت TTL ارسال میشوند و توسط MAX3485 به سیگنال RS485 تبدیل میشوند.
import utime
from machine import UART, Pin
# تعریف پایهها
DE = Pin(16, Pin.OUT)
RE = Pin(17, Pin.OUT)
# تعریف UART
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1), txbuf=256)
# فعال کردن ماژول MAX3485 برای ارسال داده
DE.value(1)
RE.value(1)
# ارسال داده به صورت TTL
uart.write("Hello World!\r\n")
# تنظیم پایهها برای دریافت داده
DE.value(0)
RE.value(0)
# دریافت داده از ماژول MAX3485 به صورت TTL
data = uart.read(10)
# نمایش داده دریافت شده
print(data)
لطفا توجه داشته باشید که برای استفاده از ماژول MAX3485 باید از تغذیه 5 ولت AC و یک منبع تغذیه جداگانه برای تغذیه بخش RS485 استفاده کنید. همچنین باید از رزیستورهای مناسب برای ترمینیشن استفاده کنید تا جهت انتقال داده بهینه باشد.
آموزش: ارتباط بین چند برد آردوینو در فواصل طولانی با پروتکل RS485
در این آموزش برای ارتباط با استفاده از پروتکل RS485 برد آردوینو UNO بعنوان Master و برد آردوینو NANO بعنوان Slave تعریف شدهاند. برای راه اندازی کافیست اتصالات را مانند نقشه شماتیک زیر برقرار کنید. پین های DE و RE در هر دو ماژول به یکدیگر متصل شدهاند. و همچنین توجه داشته باشد که سیمی که به پایه های A و B ماژول ها وصل میشود، بایستی سیم بهم تابیده شده باشد.
مشخصات
- سطح تجربه مورد نیاز
- پیشرفته
- ولتاژ مورد نياز
- 3.3 و یا 5 ولت
- دمای کاری
- 40- الی 85+ درجه سانتی گراد
- ترتیب پایه ها
- مطابق چاپ روی برد
- نوع کانکتور
- ترمینال پیچی
پین هدر
- پروتکل ارتباطی
- RS485 و UART
- ارتباط UART
- دارد
- نوع مبدل
- پروتکل RS485
پروتکل TTL
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.