সুচিপত্র:

একটি সহজ, ব্যবহারিক Arduino স্টপওয়াচ: 4 ধাপ
একটি সহজ, ব্যবহারিক Arduino স্টপওয়াচ: 4 ধাপ

ভিডিও: একটি সহজ, ব্যবহারিক Arduino স্টপওয়াচ: 4 ধাপ

ভিডিও: একটি সহজ, ব্যবহারিক Arduino স্টপওয়াচ: 4 ধাপ
ভিডিও: Simple Obstacle Avoid Robot Programming with Arduino in Bangla Tutorial 2024, সেপ্টেম্বর
Anonim
একটি সহজ, ব্যবহারিক Arduino স্টপওয়াচ
একটি সহজ, ব্যবহারিক Arduino স্টপওয়াচ

আরডুইনো স্টপওয়াচের জন্য ওয়েবে অনুসন্ধান করুন। আপনি সম্ভবত এটি করেছেন, যদি আপনি এখানে থাকেন। ব্যক্তিগত অভিজ্ঞতা থেকে, আমি আপনাকে বলতে পারি যে ইন্টারনেটে যে কোনও স্টপওয়াচ হয় খুব জটিল (কোডে, নতুনদের জন্য), অথবা খুব সরলীকৃত, এবং ব্যবহারিক নয়, যেমন রিসেট না করে সেকেন্ড গণনা করা।

আপনিও তাই মনে করেন, তাই না? আচ্ছা অনুমান কি। আমি এটা করেছি, এবং আরো কি, আমি সরাসরি মিলি () ফাংশন থেকে আমার ইনপুট নিই- সংখ্যার একটি অন্তহীন লাইন (49 দিন পর্যন্ত, বা যাই হোক না কেন)। প্রধান অংশ? এটি মাত্র একটি লাইন।

রিসেট করা, স্টপওয়াচের প্রকৃত কঠিন অংশ। ইন্টারমিডিয়েট, প্রোগ্রামারদের জন্য, যদি আপনি ইতিমধ্যে না করে থাকেন তবে এগিয়ে যান এবং সেকেন্ড, মিনিট এবং ঘন্টা একসাথে এটি নিজে করার চেষ্টা করুন। আমি যা বলছি তা তুমি পাবে।

নতুনদের জন্য, পড়ুন এবং আমার মনের প্রতিভায় আনন্দ করুন।

শুধু মজা করছি, কিন্তু আমি যে সমাধান নিয়ে এসেছি তা বেশ ঝরঝরে। এখানে এটা কি:

ধাপ 1: সমাধান

সমাধান
সমাধান

তাই সমস্যা রিসেট হচ্ছে। আমরা যা চাই তা হল ক্রমাগত, পুনরাবৃত্ত চক্র, ক্রমবর্ধমান সংখ্যার অন্তহীন আউটপুট থেকে (মিলিস () - এটি মূলত মিলিসেকেন্ড বা প্রকৃতপক্ষে 1.024 মিলিসেকেন্ড, কিন্তু যাই হোক না কেন)।

প্রথম জিনিস যা মনে আসে তা হল পার্থক্য ব্যবহার করা, যেমন time1 -time2 এবং একটি বিলম্ব। ভুলে যাও. কমপক্ষে ছয় লাইন কোড লাগে এবং বুট করার জন্য if স্টেটমেন্ট লাগে।

তাই এখানে এটা কিভাবে করতে হয়। আমাদের একটি সীমা আছে (59)। আমরা 0 থেকে 59 পর্যন্ত সবকিছু বারবার পুনরাবৃত্তি করতে চাই। কিভাবে?

কি হবে যদি… আমরা মিলিস ফাংশনের বাকী অংশটি ৫ 59 দ্বারা ভাগ করি…। বিঙ্গো!

সুতরাং, এটি এর মতো হওয়া উচিত:

(60 [প্রাথমিক মান হিসাবে কারণ সীমা 59] + মিলিস () / 1000 [1000 মিলিসেকেন্ড একটি সেকেন্ড] % 60

ঠিক আছে, বুঝিয়ে বলুন। (%) বা মডুলাস, মূলত (+) এর মত একটি অপারেটর যা বাকিগুলি খুঁজে পায়। 9 % 2 = 1 এর মত।

সুতরাং:

  • অবশিষ্ট (60 + 0) % 60 = 0
  • অবশিষ্ট (60 + 1) % 60 = 1
  • অবশিষ্ট (60 + 58) % 60 = 58
  • অবশিষ্ট (60 + 59) % 60 = 59
  • অবশিষ্ট (60 + 60) % 60 = 60
  • অবশিষ্ট (60 + 61) % 60 = 1

দেখা!

এখন, অংশগুলির জন্য।

ধাপ 2: যন্ত্রাংশ

অংশ
অংশ

খুব বেশি নয়, মোটেও।

  1. কোন arduino
  2. যে কোন ডিসপ্লে (আমি 0.96 OLED ব্যবহার করেছি, কিন্তু আপনার যা কিছু আছে তা আপনি ব্যবহার করতে পারেন, শুধু আপনার ডিসপ্লের ডিসপ্লে ফাংশনে সঠিক ভেরিয়েবলগুলি রাখতে ভুলবেন না।)

এটাই.

ধাপ 3: কোড

এইতো যাও। এটি বেশ স্পষ্টভাবে মন্তব্য করা হয়েছে, তাই কোন সমস্যা হওয়া উচিত নয়। 0.96 "OLED" এর জন্য লাইব্রেরি এবং init কোডে আছে

// 0.96 OLED লাইব্রেরি

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

// 0.96 OLED Init

#OLED_RESET 4 নির্ধারণ করুন

Adafruit_SSD1306 ডিসপ্লে (OLED_RESET);

int সেকেন্ড;

int মিনিট;

int ঘন্টা;

অকার্যকর সেটআপ() {

// আরো কিছু 0.96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay (); display.setTextSize (2); display.setTextColor (সাদা); }

অকার্যকর লুপ () {

সেকেন্ড = (60 + মিলিস () / 1000) % 60;

মিনিট = (60 + মিলিস () / 60000) % 60; ঘন্টা = (25 + মিলিস () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // রিসেট ডিসপ্লে থেকে ঘণ্টার সংখ্যা মুদ্রণ করুন।প্রিন্ট (ঘন্টা); display.print ("h:");

// রিসেট করার পর থেকে মিউটের সংখ্যা মুদ্রণ করুন

display.print (মিনিট);

display.print ("m:");

// ডিসপ্লে রিসেট করার পর সেকেন্ডের সংখ্যা মুদ্রণ করুন।প্রিন্ট (সেকেন্ড); display.print ("s");

display.setCursor (0, 0);

display.print ("স্টপওয়াচ"); display.drawLine (0, 18, 128, 18, সাদা); display.display ();

}

ধাপ 4: চূড়ান্তকরণ …

চূড়ান্তভাবে…
চূড়ান্তভাবে…

সেজন্যই এটা! এখন আপনি যা চান তা করুন। সময় কিছু ডিম, অথবা আপনার আশেপাশের দখল।

চিয়ার্স, আরাশ

প্রস্তাবিত: