خواندن پالس ttl با اردوینو

6 ماه قبل
76 بازدید

0

سلام وقت بخیر 

بنده یه سنسور دارم که پالس ttl میده مشکلی که دارم اینه که تعداد پالس ها در یک ثانیه تا ۱ میلیون پالس میرسه.

می خواستم بدونم میشه این پالس ها رو مستقیم از اردوینو بخونم؟

یعنی اردوینو میتونه همه پالس ها رو بخونه و پالس گم نکن؟

یا باید از یه برد کمکی مثل ttl to rs485 استفاده کنم؟

لطف می کنید اگه راهنمایی کنید.

اردوینو بنده uno هست.

 

مدل دیگه ای از اردوینو یا کنترلر هست که بتونه بخونه؟

تشکر

26 مهر 02 در 04:26
محسن زارع
1

افزودن دیدگاه

1 پاسخ ثبت شده است
0

با سلام

منظور شما از 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 به شما میدهد و با محاسبه مقدار عددی که به شما برمیگرداند، می توانید حساب کنید که فرکانس موج شما چقدر بوده است.

 

البته همه این روش ها تا حدی به قدرت میکرو شما برمیگردد، و استفاده از میکرو قوی تر در این موارد پیشنهاد می شود.

 
26 مهر 02 در 05:08
محمد دمیرچی
3670

سلام وقت بخیر ممنون از پاسخگویی شما سنسور بنده یک سنسور دور موتور هست که پالس بین ۰ و ۵ ولت مربعی میده مشکل بنده اینه که تعداد پالس هایی که میده زیاده و در هر ثانیه حدود ۱ میلیون پالس میده. ممنون که راهنمایی می کنید.  – محسن زارع 02-07-26 در 05:13

پاسخ ویرایش شد  – محمد دمیرچی 02-07-26 در 10:24

سلام خیلی ممنون بابت راهنمایی تون و بابت وقتی که گذاشتین تشکر  – محسن زارع 02-07-26 در 06:28

خواهش میکنم، با تایید پاسخ می توانید ما را در این راه کمک کنید😉  – محمد دمیرچی 02-07-29 در 05:59

افزودن دیدگاه


انجمن کافه‌ربات © 1400