ماژول مبدل دو طرفه TTL به RS485
توجه: جزئیات مشاهده شده روی تصویر کالا، ملاک انتخاب نیستند.
ماژول مبدل TTL به RS485 دو طرفه
ماژول TTL به RS485 یک مبدل سطح ورودی/خروجی است که برای تبدیل سیگنال TTL (5 ولت) به سیگنال RS485 مناسب است. این ماژول دارای 6 پایه است که شامل A+، B-، GND، VCC، TX و RX است. با استفاده از این ماژول، می توانید یک مدار سخت افزاری ایجاد کنید که امکان ارتباط با دستگاه هایی که از پروتکل RS485 پشتیبانی می کنند را فراهم می کند. این ماژول دارای تراشه MAX485 است که یک تراشه معروف در زمینه تبدیل سیگنال RS485 به سیگنال TTL و بالعکس است. این تراشه قابلیت تحمل ولتاژ بالا و توان بالایی دارد و برای استفاده در برنامه های کنترلی و اتوماسیونی مورد استفاده قرار می گیرد.
ماژول TTL به RS485 دو طرفه نیز برخلاف ماژول TTL به RS485 یک طرفه، برای ارتباط دوطرفه با دستگاه های دیگر از پروتکل RS485 استفاده می شود. در این حالت، این ماژول دارای دو پورت UART است که یکی برای ارسال داده ها و دیگری برای دریافت داده ها مورد استفاده قرار می گیرد. همچنین این ماژول دارای پایههای A, B, GND برای اتصال به رابط RS485 است و همچنین دارای پایههای TX و RX برای اتصال به رابط TTL است. برای استفاده از این ماژول در پروژههای الکترونیکی، کابلهای ارتباطی و تغذیه باید به آن متصل شوند. به طور کلی، ماژول TTL به RS485 از نظر عملکردی بسیار کارآمد است و به دلیل کاربرد زیادی که در صنایع مختلف دارد، مورد استفاده قرار می گیرد.
مشخصات فنی و ویژگی های کلی ماژول مبدل TTL به RS485
- ابعاد کوچک
- ولتاژ کاری 3.3 الی 5 ولت DC
- توانایی انتقال داده ها تا بیش از یک کیلومتر
- سهولت در راه اندازی، بدون نیاز به قطعات اضافه
- سازگاری با بردهای آردوینو، ESP و میکروکنترلرهای ARM نظیر STM32
پایه های PinOut ماژول مبدل دو طرفه TTL به RS485
ماژول TTL به RS485 دو طرفه شامل ۷ پایه است که شرح آنها به شرح زیر است:
1- A+: این پایه مربوط به سیگنال A+ است که برای ارتباط با دستگاه دیگر RS485 استفاده می شود.
2- B-: این پایه مربوط به سیگنال B- است که برای ارتباط با دستگاه دیگر RS485 استفاده می شود.
3- GND: این پایه برای اتصال به زمین مشترک است.
4- VCC: این پایه برای تغذیه ماژول از طریق منبع تغذیه خارجی استفاده می شود.
5- TX: این پایه مربوط به سیگنال خروجی ارسال (Transmit) برای ارتباط با دستگاه دیگر RS485 است.
6- RX: این پایه مربوط به سیگنال ورودی دریافت (Receive) برای ارتباط با دستگاه دیگر RS485 است.
7- GND: این پایه برای اتصال به زمین مشترک است.
برای استفاده از این ماژول، شما باید پایه های A+ و B- را به سیگنال های متناظر در دستگاه RS485 خود متصل کنید و پایه های GND و VCC را به منابع تغذیه مشخص شده متصل کنید. همچنین، شما می توانید پایه های TX و RX را به پایه های متناظر با دستگاه کنترل کننده مانند میکروکنترلر یا کامپیوتر متصل کنید.
این ماژول چگونه ارتباط دو طرفه برقرار میکند؟
ماژول TTL به RS485 دوطرفه با استفاده از تراشه MAX485 که یک تراشه درایور RS485 است، ارتباط دوطرفه بین دستگاه TTL و دستگاه RS485 را برقرار میکند. این تراشه با استفاده از سیگنالهای منطقی TTL که توسط دستگاه TTL تولید شدهاند، سیگنالهای RS485 را تولید و از طریق خط RS485 برای دستگاه RS485 ارسال میکند. همچنین، سیگنالهای RS485 که توسط دستگاه RS485 ارسال شدهاند، توسط این تراشه به سیگنالهای منطقی TTL تبدیل میشوند و به دستگاه TTL ارسال میشوند. این ماژول با قابلیت تبدیل سطح ولتاژ، امکان ارتباط بین دستگاههایی با سطح ولتاژ متفاوت را فراهم میکند.
به همراهی این ماژول چه اقلامی بایستی خریداری شود؟
برای استفاده از این ماژول، به علاوهی ماژول TTL to RS485 Dual Bidirectional، باید از موارد زیر بهره گرفت.
1- کابل USB برای تغذیهی برد یا منبع تغذیهی دیگر
2- برد آردوینو یا هر میکروکنترلر دیگری که بتواند به ماژول TTL to RS485 وصل شود.
3- برای پیکربندی ماژول TTL to RS485، بهتر است از یک کامپیوتر یا لپتاپ استفاده کنید که دارای پورت سریال است تا بتوانید با استفاده از یک ماژول تبدیل USB به سریال به ماژول TTL to RS485 متصل شوید. در غیر این صورت، باید از یک ماژول تبدیل USB به TTL نیز استفاده کنید.
4- منابع تغذیه برای تغذیهی ماژول TTL to RS485 و سایر اجزای مدار (مانند برد آردوینو و سنسورها)، مثلا باتری ۹ ولت یا منبع تغذیه ۵ ولت استفاده شود.
لازم به ذکر است که نوع اجزا و تجهیزات موردنیاز بسته به نوع برد و ماژول TTL to RS485، ممکن است متفاوت باشد. بنابراین برای اطمینان از نیازهای خاص خود، بهتر است به دقت بررسی کنید که چه اجزا و تجهیزاتی برای استفاده از برد و ماژول TTL to RS485 موردنیاز است.
سطح ولتاژ منطقی این ماژول چقدر است ؟
سطح ولتاژ منطقی ماژول TTL به RS485 دوطرفه، همانند بیشتر ماژولهای TTL دیگر، 3.3 ولت است. بنابراین در صورتی که با سیستمی با ولتاژ 5 ولت کار میکنید، باید از راه حلهایی مانند ایزولاتورهای منطقی استفاده کنید تا از خطر نقص و یا خرابی ماژول جلوگیری کنید.
نمونه کد آردوینو ماژول مبدل دو طرفه TTL به RS485
در ادامه یک نمونه کد آردوینو برای ارسال داده با استفاده از ماژول TTL به RS485 دو طرفه برای شما ارائه کردهایم. این کد ابتدا پایه ارسال ماژول RS485 را به پایه 2 آردوینو متصل میکند و سپس ارتباط را با سرعت تبادل 9600 بودریت شروع میکند. در هر دوره حلقه loop()، داده "Hello World!" به ماژول RS485 ارسال میشود و پس از توقف برای یک ثانیه، فرایند به تکرار خود ادامه میدهد. به طور کلی، کار با این ماژول تقریبا مشابه کار با یک پورت سریال است. باید به پایه ارسال ماژول RS485، یکی از پایههای ارسال آردوینو را متصل کرد و سپس با استفاده از توابع begin() و write() میتوان داده را به ماژول ارسال کرد. همچنین باید مطمئن شوید که ماژول RS485 درست تنظیم شده است، از جمله تنظیمات سرعت بودریت و پایه های TTL اهمیت دارند. در ادامه ایان کد را بررسی کنید.
#include <SoftwareSerial.h>
#define RS485Transmit 2 // پایه ارسال در ماژول RS485 به پایه 2 متصل شده است
SoftwareSerial RS485Serial(0, RS485Transmit); // RX, TX
void setup() {
RS485Serial.begin(9600); // شروع ارتباط با سرعت 9600 بودریت
}
void loop() {
RS485Serial.write("Hello World!"); // ارسال داده به ماژول RS485
delay(1000); // توقف برای یک ثانیه
}
نمونه کد ماژول مبدل دو طرفه TTL به RS485 با میکروپایتون با ESP32
برای استفاده از ماژول TTL به RS485 دوطرفه با ESP32 و میکروپایتون، میتوانید از کتابخانه ModbusMaster استفاده کنید. این کتابخانه به شما امکان میدهد با استفاده از پروتکل Modbus RTU، ارتباط با دستگاههایی که از پروتکل Modbus پشتیبانی میکنند را برقرار کنید. در ابتدا، مطمئن شوید که کتابخانه ModbusMaster را در میکروپایتون و ESP32 نصب کردهاید. سپس، برای ارتباط با ماژول TTL به RS485 دوطرفه، باید پایههای مربوطه را به پایههای ESP32 متصل کنید.
سپس، با استفاده از کد زیر، میتوانید با ماژول ارتباط برقرار کنید. در این کد، ابتدا شی UART برای ارتباط با ماژول ایجاد شده است. پس از آن، یک شی ModbusMaster با استفاده از این UART ایجاد شده است. در ادامه، آدرس دستگاه مقصد تعیین شده و درخواستی با استفاده از تابع read_holding_registers به دستگاه ارسال میشود. سپس مقدار بازگشتی چاپ میشود. این تنها یک مثال برای برقراری ارتباط با ماژول TTL به RS485 دوطرفه است و به تنظیمات خاصی نیاز ندارد. برای استفاده از این ماژول در پروژه خود، باید تنظیمات UART و ModbusMaster را انجام دهید.
import machine
from machine import UART
from ubinascii import hexlify
from modbus_master import ModbusMaster
# تنظیمات UART
uart = UART(2, 9600, tx=17, rx=16, rts=18, cts=19)
# ایجاد شیء ModbusMaster با استفاده از UART
modbus = ModbusMaster(uart)
# آدرس دستگاه را در اینجا وارد کنید
device_address = 1
# ارسال درخواست به دستگاه
response = modbus.read_holding_registers(device_address, 0, 1)
# چاپ مقدار بازگشتی
print(response)
نمونه کد ماژول مبدل دو طرفه TTL به RS485 با میکروپایتون و RP2040
در ادامه یک نمونه کد میکروپایتون با RP2040 برای ارسال و دریافت داده از ماژول TTL به RS485 دوطرفه را می توانید ببینید. در این کد، ابتدا پین های DE و RE تعریف شده و به عنوان خروجی تنظیم شدهاند. سپس اتصال سریال با استفاده از پورت UART ایجاد شده و توابع send_command و receive_data برای ارسال دستور و دریافت داده تعریف شده اند. در نهایت، دستور "Hello World" ارسال شده و داده دریافت شده از ماژول RS485 چاپ می شود. توجه داشته باشید که قبل از استفاده از این کد باید مطمئن شوید که پایه های DE و RE به درستی تنظیم شده اند و سطح ولتاژ منطقی ماژول RS485 با سطح ولتاژ منطقی میکروکنترلر سازگاری داشته باشد.
import board
import busio
import time
from digitalio import DigitalInOut, Direction
# تعریف پین های DE و RE
de_pin = DigitalInOut(board.GP18)
de_pin.direction = Direction.OUTPUT
re_pin = DigitalInOut(board.GP19)
re_pin.direction = Direction.OUTPUT
# تعریف اتصال سریال با استفاده از پورت UART
uart = busio.UART(tx=board.GP0, rx=board.GP1, baudrate=9600)
# تعریف تابع ارسال دستور
def send_command(command):
# ارسال دستور با استفاده از UART
uart.write(command)
# تنظیم پایه های DE و RE برای ارسال داده از ماژول RS485
de_pin.value = True
re_pin.value = True
time.sleep(0.01)
de_pin.value = False
re_pin.value = False
# تعریف تابع دریافت داده
def receive_data():
# تنظیم پایه های DE و RE برای دریافت داده از ماژول RS485
de_pin.value = False
re_pin.value = True
# خواندن داده از UART با طول دلخواه
data = uart.read(16)
# بازگشت دادن داده دریافت شده
return data
# ارسال دستور و دریافت داده
send_command(b'Hello World')
received_data = receive_data()
# چاپ داده دریافت شده
print(received_data)
کاربردهای ماژول مبدل TTL به RS485
- خانه های هوشمند و کنترل وسایل
- کنترل درایور موتور ها در فواصل طولانی
- ایجاد ارتباط در فواصل طولانی بین دو میکروکنترلر
- ایجاد شبکه بین دستگاه های مختلف و کنترل آن ها از طریق اتاق فرمان
ارتباط بین چند برد آردوینو در فواصل طولانی با پروتکل RS485
در این آموزش برای ارتباط با استفاده از پروتکل RS485 برد آردوینو UNO بعنوان Master و برد آردوینو NANO بعنوان Slave تعریف شدهاند. برای راه اندازی کافیست اتصالات را مانند نقشه شماتیک زیر برقرار کنید. پین های DE و RE در هر دو ماژول به یکدیگر متصل شدهاند. و همچنین توجه داشته باشد که سیمی که به پایه های A و B ماژول ها وصل میشود، بایستی سیم بهم تایده شده باشد.
مشخصات
- نوع ماژول
- مبدل
- سطح تجربه مورد نیاز
- پیشرفته
- ولتاژ ورودی
- 3.3 الی 5 ولت DC
- ترتیب پایه ها
- مطابق چاپ روی برد
- پروتکل ارتباطی
- UART و RS485
- ارتباط UART
- دارد
- نوع مبدل
- پروتکل RS485
پروتکل TTL
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.