সুচিপত্র:

STP32 এর সাথে RPM মিটার: 8 টি ধাপ
STP32 এর সাথে RPM মিটার: 8 টি ধাপ

ভিডিও: STP32 এর সাথে RPM মিটার: 8 টি ধাপ

ভিডিও: STP32 এর সাথে RPM মিটার: 8 টি ধাপ
ভিডিও: বাইকের আরপিএম এর কাঁটা ১০০০ এ রাখলে মারাত্মক ক্ষতি!! #rpm 2024, নভেম্বর
Anonim
STM32 সহ RPM মিটার
STM32 সহ RPM মিটার

যদিও এটি কিনতে কিছুটা বিরক্তিকর (কারণ এটি অনেক ইন্টারনেট দোকানে পাওয়া যায় না), আমি STM32 L432KC নিয়ে আলোচনা করা প্রয়োজন বলে মনে করি। এই চিপটি বিশেষ স্নেহ পাওয়ার যোগ্য, কারণ এটি আল্ট্রা লো পাওয়ার। যাইহোক, যারা STM32 এর মালিক নন, তাদের জন্য এই প্রকল্পে Arduino Uno দ্বারা প্রতিস্থাপিত হতে পারে। এটি করার জন্য, কেবল ইন্টারাপ্ট ইনপুটের পিন পরিবর্তন করুন।

আসুন তাহলে STM32 L432KC এবং একটি ইনফ্রারেড সেন্সর ব্যবহার করে একটি RPM মিটার তৈরি করি। এই একই প্রোগ্রাম বাতাসের গতি পরিমাপ করতেও ব্যবহার করা যেতে পারে। এই মাইক্রোকন্ট্রোলারের লো-পাওয়ার ফিচারটি আইওটির জন্য পারফেক্ট।

ধাপ 1: মডিউল

মডিউল
মডিউল
মডিউল
মডিউল

আজ আমাদের প্রকল্পের জন্য, আমরা 8-সংখ্যার MAX7219CWG, সেইসাথে ইনফ্রারেড মডিউল ব্যবহার করি।

ধাপ 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

ধাপ 3: বিক্ষোভ

প্রদর্শন
প্রদর্শন

আমাদের সমাবেশে, আমাদের STM32, 8-সংখ্যার ডিসপ্লে এবং পালস ইনপুট আছে। ইনফ্রারেড কার্ডে একটি ফোটোট্রান্সিস্টর এবং একটি LED আছে যা একটি সাদা ফিতা বন্ধ করে আলো ধরে। এই টেপটি একটি চাকার সাথে সংযুক্ত এবং প্রতিটি মোড়ে, একটি পালস তৈরি করবে, যা STM32 বিঘ্ন দ্বারা ধরা হবে।

আমাদের এসেমব্লিতে একটি ডায়োড এবং একটি ক্যাপাসিটর আছে যা এসটিএম 32 এ পৌঁছানোর থেকে টেপ রিডিং সিগন্যালের গোলমাল রোধ করতে ব্যবহৃত হয়েছিল, যা এটিকে চালু এবং বন্ধের ব্যাখ্যা দেবে।

বিক্ষোভ আমাদের প্রকল্প, সেইসাথে মিনিপা মিটার (উভয়ই চালু আছে) দেখায়।

ধাপ 4: সমাবেশ

সমাবেশ
সমাবেশ

ধাপ 5: প্রোগ্রাম

আমরা এমন একটি প্রোগ্রাম করব যেখানে ইনফ্রারেড মডিউল STM32 L432KC- এর প্রতি "পালা" তে একটি বাধা সৃষ্টি করবে এবং আমরা ডিসপ্লের উপর RPM প্রদর্শন করার জন্য হিসাব করব।

ধাপ 6: লাইব্রেরি

গ্রন্থাগার
গ্রন্থাগার

নিম্নলিখিত "DigitLedDisplay" লাইব্রেরি যোগ করুন।

কেবল অ্যাক্সেস করুন "স্কেচ >> লাইব্রেরি অন্তর্ভুক্ত করুন >> লাইব্রেরি পরিচালনা করুন …"

ধাপ 7: সোর্স কোড

লাইব্রেরি এবং পরিবর্তনশীল

DigitLedDisplay লাইব্রেরী সহ সোর্স কোড শুরু করা যাক। আমরা ডিসপ্লে অবজেক্ট দেখাবো। আমি বিরতি পিন সেট করেছি, যা 12 হবে। এছাড়াও, আমি RPM কাউন্টার এবং সময় উভয়ের জন্য একটি উদ্বায়ী অপারেটর প্রবেশ করি যাতে কোনও সংঘর্ষের সমস্যা এড়ানো যায়।

/ * DigitLedDisplay লাইব্রেরি অন্তর্ভুক্ত করুন // arduino DigitLedDisplay ld = DigitLedDisplay (4, 2, 3); // STM32 L432KC int pin = 12; // pino de interrupção (módulo IR) volatile unsigned int rpm; // contador de rpm উদ্বায়ী স্বাক্ষরবিহীন দীর্ঘ সময়; // টেম্পো

সেটআপ

সেটআপে, আমরা ডিসপ্লে অপারেশন কনফিগার করি, সেইসাথে রাইজিং হিসাবে বাধা কনফিগার করি।

অকার্যকর সেটআপ () {Serial.begin (115200); / * উজ্জ্বলতা মিনিট সেট করুন: 1, সর্বোচ্চ: 15 */ ld.setBright (10); / * অঙ্ক গণনা সেট করুন */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; টাইমোল্ড = মিলিস (); }

লুপ

পরিশেষে, ডিসপ্লে আপডেট করার জন্য আমরা 1 মিনিটের মধ্যে 1 এর ব্যবধান নির্ধারণ করি। পর্দা পরিষ্কার করার পর, আমরা RPM প্রিন্ট করি। আমরা ফাংশনটি সম্পাদন করি যা বাধা কল করবে। আমরা RPM গণনা করি এবং সময় আপডেট করি।

অকার্যকর লুপ () {বিলম্ব (1000); ld. clear (); ld.printDigit (rpm); } অকার্যকর interruptPin () {rpm = 60*1000/(millis () - timeold); টাইমোল্ড = মিলিস (); }

ধাপ 8: ফাইল

ফাইল ডাউনলোড করুন:

পিডিএফ

আইএনও

প্রস্তাবিত: