با سلام
منظور شما از TTL همان UART یا سریال می باشد؟؟؟
وقتی در مورد سریال بحث میکنید یکسری استاندارد دارند (برای مثال 9600 یا 115200) که نشان دهنده سرعت آن می باشد.
تبدیل TTL به RS485 نیز همین کار را میکند یعنی سریال که RS232 هست را به RS485 که برای PLC ها یا انتقال داده مسیر طولانی استفاده می شود به کار میرود و RS485 را به آردوینو نمیتوانید وصل کنید.
دقیقا مشخص کنید که سنسور شما چه چیزی می باشد که بتوانم بهتر شما را راهنمایی کنم.
یک نکته:
به صورت کلی به پروتکل سریال این اسم ها را داده می شود UART TTL RS232 Serilal
هر کدام از این اسم ها مربوط به یک حالت خاصی از این پروتکل می باشد ولی همگی باهم مشترک هستند و میتوانند با هم صحبت کنند و همگی از بیس RS232 تولید شدن
ویرایش اول
موردی که شما نیاز دارید خواندن فرکانس می باشد.
چند راه به ذهنم میرسد.
یکی با توجه به اینکه چقدر برنامه آردوینو شما شلوغ باشد. می توانید با استفاده از وقفه (Interrupt) برای خواندن پالس ها استفاده کنید و از مود RISING استفاده کنید تا یک مقدار را i++ کند و در لوپ اصلی به این مقدار دسترسی پیدا کنید. این روش خیلی کاربردی و سریع عمل میکند و فقط به حجم برنامه شما برمیگردد، در صورتی که برد شما توان محاسبه را نداشت می توانید از برد های STM32 یا ESP32 به عنوان جایگزین استفاده کرده و همین روش را بر روی آنها اعمال کنید
روش دیگری که به ذهنم میرسد استفاده از لایبراری خواندن فرکانس می باشد. لینک1 و لینک2
این لایبراری برای محاسبه فرکانس موج سینوسی مورد استفاده قرار میگیرد، ولی در مورد شما می توانید با تغییرات مناسب طوری استفاده کنید تا سیگنال مربعی را نیز بخواند.
روش دیگر استفاده از دستور pulseIn می باشد. در این دستور مدت زمان HIGH یا LOW بودن سیگنال را به صورت millis به شما میدهد و با محاسبه مقدار عددی که به شما برمیگرداند، می توانید حساب کنید که فرکانس موج شما چقدر بوده است.
البته همه این روش ها تا حدی به قدرت میکرو شما برمیگردد، و استفاده از میکرو قوی تر در این موارد پیشنهاد می شود.