সুচিপত্র:

Arduino টাচস্ক্রিন ক্যালকুলেটর: 7 টি ধাপ
Arduino টাচস্ক্রিন ক্যালকুলেটর: 7 টি ধাপ

ভিডিও: Arduino টাচস্ক্রিন ক্যালকুলেটর: 7 টি ধাপ

ভিডিও: Arduino টাচস্ক্রিন ক্যালকুলেটর: 7 টি ধাপ
ভিডিও: Top 5 Sensor ফোন করে স্মার্ট that makes your phone smart 2024, নভেম্বর
Anonim
Arduino টাচস্ক্রিন ক্যালকুলেটর
Arduino টাচস্ক্রিন ক্যালকুলেটর

হ্যালো! এটি একটি Arduino Uno এবং TFT LCD usingাল ব্যবহার করে একটি টাচস্ক্রিন ক্যালকুলেটর তৈরির প্রকল্প। আমি আমার হোমস্কুল প্রোগ্রামিং ক্লাসের জন্য ধারণা নিয়ে এসেছিলাম, এবং এই প্রকল্পটি নির্মাণের অভিজ্ঞতা ছিল খুবই আকর্ষণীয়। এই ক্যালকুলেটরটি চারটি সাধারণ গাণিতিক ক্রিয়াকলাপ করতে পারে (যোগ, বিয়োগ, গুণ এবং ভাগ)। এটি বিভাগের উত্তরগুলির জন্য দুটি দশমিক পয়েন্ট পর্যন্ত প্রদর্শন করে। আসুন ডুব দাও! এই প্রকল্পের জন্য সরবরাহগুলি নীচে তালিকাভুক্ত করা হয়েছে।

সরবরাহ

- আরডুইনো উনো

-2.4 টিএফটি এলসিডি শিল্ড (এখানে আমি এটি কিনেছি:

- ইউএসবি এ থেকে বি ক্যাবল (কম্পিউটারে আরডুইনো সংযোগ করার জন্য কর্ড)

- Arduino IDE ইনস্টল করা কম্পিউটার

- আপনাকে দুটি লাইব্রেরি ডাউনলোড করতে হবে: MCUFRIEND_kbv এবং টাচস্ক্রিন। প্রথমটি আপনি গিথুব (লিঙ্ক: https://github.com/prenticedavid/MCUFRIEND_kbv) এ খুঁজে পেতে পারেন অথবা আপনি নীচে অন্তর্ভুক্ত লাইব্রেরির জিপ ফাইলটি ব্যবহার করতে পারেন। দ্বিতীয়টি ইনস্টল করার জন্য আরডুইনো লাইব্রেরি ম্যানেজারে রয়েছে।

ধাপ 1: হার্ডওয়্যার সংযোগ

হার্ডওয়্যার সংযোগ
হার্ডওয়্যার সংযোগ
হার্ডওয়্যার সংযোগ
হার্ডওয়্যার সংযোগ
হার্ডওয়্যার সংযোগ
হার্ডওয়্যার সংযোগ

আরডুইনো ইউনোর সাথে টাচস্ক্রিন ieldালের সংযোগ সহজ এবং দ্রুত। আপনাকে যা করতে হবে তা হল আরডুইনোতে সর্বনিম্ন পিনের সাথে ieldালের সর্বনিম্ন পিনগুলি সারিবদ্ধ করুন এবং ieldালটিকে পিনের মধ্যে ধাক্কা দিন। বোর্ডের অন্য পাশে এসসিএল এবং এসডিএ লেবেলযুক্ত পিনগুলির জন্য একই প্যারামিটারগুলি প্রয়োগ করার জন্য উপরের 5V পিন এবং পাওয়ার সাইডে লেবেলবিহীন পিনের theাল থেকে পিন থাকা উচিত নয়। এখন, আমরা কোড করার জন্য প্রস্তুত!

ধাপ 2: কোড: বৈশ্বিক সংজ্ঞা এবং সেটআপ

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

MCUFRIEND_kbv tft; // যাইহোক UNO shাল জন্য হার্ড-ওয়্যার্ড।

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

#YP A3 নির্ধারণ করুন

#XM A2 সংজ্ঞায়িত করুন

#YM 9 সংজ্ঞায়িত করুন

#এক্সপি 8 নির্ধারণ করুন

টাচস্ক্রিন ts = টাচস্ক্রিন (XP, YP, XM, YM, 300);

#সংজ্ঞা নির্ধারণ করুন 10

এটি কোডের শুরু, যেখানে আমরা লাইব্রেরিগুলি অন্তর্ভুক্ত করি (MCUFRIEND_kbv & Touchscreen), X এবং Y পিন সংজ্ঞায়িত করি, টাচস্ক্রিন প্যারামিটার সেট করি এবং ব্যবহারকারীর প্রেস নিবন্ধনের জন্য Arduino- এর জন্য প্রয়োজনীয় ন্যূনতম চাপ নির্ধারণ করি।

int আইডি;

int user_selection;

float saved_number = 0;

ভাসা শব্দ 1;

int op_num;

ভাসা ফলাফল;

int cursorLocX = 5;

int cursorLocY = 20;

সেটআপের ঠিক আগে, আমাদের কিছু গ্লোবাল ভেরিয়েবল সেট করতে হবে। আইডি টাচস্ক্রিন চালু এবং চালাতে সাহায্য করে। user_selection একটি নম্বর ধারণ করে যা টাচস্ক্রীন টিপে ব্যবহারকারী যে কীটি নির্বাচন করে তার সাথে মিলে যায়। save_number হল সেই ভেরিয়েবল যা আমরা ব্যবহারকারীর প্রবেশের পর স্ক্রিনে প্রিন্ট করি (লুপে এই বিষয়ে আরো)। এটি একটি ভাসমান তাই এটি দশমিক সংখ্যা এবং পূর্ণসংখ্যা ধরে রাখতে পারে। term1 হল একটি পরিবর্তনশীল যা সমীকরণের প্রথম সংখ্যাটি একটি অপারেন্ড নির্বাচিত হওয়ার পরে সংরক্ষিত হয়। op_num একটি সংখ্যা হিসেবে অপারেন্ড সংরক্ষণ করে (যোগের জন্য ১, বিয়োগের জন্য ২, গুণের জন্য and এবং ভাগের জন্য))। ফলাফল হল ভেরিয়েবল যা স্ক্রিনে মুদ্রিত হয় ব্যবহারকারীর সমান চিহ্নটি চাপার পরে। এটি একটি ভাসাও। cursorLocX এবং cursorLocY হল টাচস্ক্রিনের ম্যাপিং পয়েন্ট যেখানে কার্সার একাধিকবার সেট করা আছে (এটি উপরের ধূসর বারে অবস্থিত, অন্যথায় ফলাফল ক্ষেত্র হিসাবে পরিচিত)।

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

tft.reset ();

আইডি = tft.readID ();

tft.begin (ID);

tft.setRotation (0);

tft.fillScreen (TFT_DARKGREY);

স্কোয়ার ();

সংখ্যা ();

tft.setTextSize (3);

tft.setTextColor (TFT_BLUE, TFT_DARKGREY);

}

আমাদের সেটআপ ফাংশনে প্রথমে টাচস্ক্রিন শিল্ডের সূচনা রয়েছে (লাইন 1-3)। Tft.setRotation () কমান্ড ব্যবহার করে শিল্ডের ওরিয়েন্টেশন সেট করা আছে, 0 এর সাথে সোজা। পুরো স্ক্রিনটি tft.fillScreen () কমান্ডের সাথে গা dark় ধূসর রঙের, যা আমরা উপরের দিকে লিখব (ফলাফল ক্ষেত্র ব্যতীত)। স্কোয়ার () এবং সংখ্যা () ফাংশনগুলি ক্যালকুলেটরের স্কোয়ারগুলি আঁকবে, একটি চেকবোর্ড প্যাটার্নে স্কোয়ারগুলিকে কালো এবং সাদা রঙ করবে এবং স্কোয়ারগুলিতে নীল/সংখ্যা লিখবে। আমরা পরবর্তী ধাপে তাদের কাছে যাব। Tft.setTextSize () কমান্ড ফলাফল ক্ষেত্রের পাঠ্য আকার 3 তে সেট করে, যা একটি মাঝারি ফন্ট। Tft.setTextColor () কমান্ডটি ফলাফলের ক্ষেত্রের পাঠ্য রঙকে নীল করে, যা গা gray় ধূসর ক্ষেত্রের উপরে লেখা আছে।

ধাপ 3: কোড: লুপ

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

বিলম্ব (100);

যদি (user_selection == 16) {

;

} অন্য {

যদি (user_selection <10) {

save_number = save_number * 10 + user_selection;

tft.setCursor (cursorLocX, cursorLocY);

tft.print (সংরক্ষিত_সংখ্যা);

} অন্যথায় যদি (user_selection> 10) {

সুইচ (user_selection) {

কেস 11:

op_num = 1;

tft.setCursor (cursorLocX, cursorLocY);

tft.print ("+");

term1 = save_number;

সংরক্ষিত_সংখ্যা = 0;

বিরতি;

কেস 12:

op_num = 2;

tft.setCursor (cursorLocX, cursorLocY);

tft.print ("-");

term1 = save_number;

সংরক্ষিত_সংখ্যা = 0;

বিরতি;

কেস 13:

op_num = 3;

tft.setCursor (cursorLocX, cursorLocY);

tft.print ("X");

term1 = save_number;

সংরক্ষিত_সংখ্যা = 0;

বিরতি;

কেস 14:

op_num = 4;

tft.setCursor (cursorLocX, cursorLocY);

tft.print ("/");

term1 = save_number;

সংরক্ষিত_সংখ্যা = 0;

বিরতি;

কেস 15:

সংরক্ষিত_সংখ্যা = 0;

শব্দ 1 = 0;

op_num = 0;

tft.setCursor (cursorLocX, cursorLocY);

tft.print ("");

বিরতি;

}

tft.setCursor (cursorLocX, cursorLocY);

এটি অনেকটা চিবানো, তাই আমি উপরে কি তা ব্যাখ্যা করব। আমরা নাম্বার সিলেক্ট () ফাংশনটি কল করে শুরু করি, যা টাচস্ক্রিনের প্রতিটি বর্গক্ষেত্রে একটি নম্বর নির্ধারণ করে। যখন কোনো ব্যবহারকারী সেই স্কোয়ারগুলির একটিতে চাপ দেয়, ফাংশনটি ইউজার_সলেকশন ভেরিয়েবলকে স্কোয়ারের সংখ্যায় সেট করে। যদি একটি বৈধ ব্যবহারকারী নির্বাচন করা হয় তবে প্রথমটি যদি লুপের মাধ্যমে চালানো হয়। যদি এটি হয়, পরবর্তী যদি বিবৃতিটি জিজ্ঞাসা করে যে user_selection এর মধ্যে 10 টিরও কম নম্বর সংরক্ষিত আছে (সংখ্যা 0-9)। যদি এটি হয়, সংরক্ষিত_সংখ্যা 10 দ্বারা গুণিত হয় এবং ব্যবহারকারীর নির্বাচনের সংখ্যাটি সংরক্ষিত_নম্বরে যোগ করা হয়, যা টাচস্ক্রিনে ফলাফলের ক্ষেত্রে মুদ্রিত হয়। যদি এটি না হয়, পরবর্তী যদি বিবৃতিটি জিজ্ঞাসা করে যে ব্যবহারকারী_সলেকশনে 10 টিরও বেশি সংখ্যা সংরক্ষিত আছে (অপারেন্ড নম্বর: 11 এর জন্য +, 12 এর জন্য -, 13 এর জন্য X, 14 এর জন্য /, এবং 15 স্পষ্ট স্ক্রিন স্কোয়ারের জন্য 15)। একটি সুইচ ফাংশন প্রতিটি ক্ষেত্রে যত্ন নেয় (user_selection দ্বারা নির্ধারিত)। ভেরিয়েবল op_num একটি নম্বর দেওয়া হয় যা নির্বাচিত অপারেন্ডের সাথে মিলে যায় (1 এর জন্য +, 2 এর জন্য -, X এর জন্য 3 এবং /এর জন্য 4)। Save_number- এর মানটি ভেরিয়েবল টার্ম 1 এ সেভ করা হয় যাতে সেভ করা_নাম্বার ভেরিয়েবলটি সমীকরণের দ্বিতীয়ার্ধের জন্য ব্যবহার করা যায়। ফলাফল ক্ষেত্রের যেকোনো সংখ্যা সাফ করার সাথে সাথে স্ক্রিনে অপারেন্ড প্রতীক মুদ্রিত হয়। একমাত্র ব্যতিক্রম হল স্পষ্ট স্ক্রিন স্কোয়ার, যা সমস্ত ক্যালকুলেশন ভেরিয়েবল রিসেট করে এবং এটির যেকোন কিছুর ফলাফল ক্ষেত্র পরিষ্কার করে।

} অন্য {

সুইচ (op_num) {

মামলা 1:

ফলাফল = term1 + save_number;

tft.setCursor (cursorLocX, cursorLocY);

tft.print (ডবল (ফলাফল));

বিরতি;

কেস 2:

ফলাফল = মেয়াদ 1 - সংরক্ষিত_সংখ্যা;

tft.setCursor (cursorLocX, cursorLocY);

tft.print (ডবল (ফলাফল));

বিরতি;

কেস 3:

ফলাফল = মেয়াদ 1 * সংরক্ষিত_সংখ্যা;

tft.setCursor (cursorLocX, cursorLocY);

tft.print (ডবল (ফলাফল));

বিরতি;

কেস 4:

ফলাফল = float (term1) / float (save_number);

tft.setCursor (cursorLocX, cursorLocY);

tft.print (ফলাফল);

বিরতি;

}

tft.setCursor (cursorLocX, cursorLocY);

সংরক্ষিত_সংখ্যা = ফলাফল;

শব্দ 1 = 0;

op_num = 0;

বিলম্ব (1000);

}

}

}

লুপের শেষ অংশটি ব্যবহারকারীর সমান চিহ্ন (user_selection == 10) নির্বাচন করার ঘটনা নিয়ে কাজ করে। আরেকটি সুইচ ফাংশন চারটি গাণিতিক ফাংশনের মাধ্যমে কাজ করে (op_num দ্বারা নির্ধারিত)। সংযোজন কেস (কেস 1) term1 এবং save_number একসাথে যোগ করে এবং ফলাফল ভেরিয়েবলে সংখ্যাটি সংরক্ষণ করে। ফলাফল একটি দ্বিগুণ হিসাবে ফলাফল ক্ষেত্র মুদ্রিত হয়। ফলাফল একটি দ্বিগুণ হিসাবে ফলাফল ক্ষেত্র মুদ্রিত হয়। গুণের ক্ষেত্রে (কেস 3) term1 কে save_number দ্বারা গুণ করে এবং সংখ্যাটিকে ফলাফল ভেরিয়েবলে সংরক্ষণ করে। ফলাফল একটি দ্বিগুণ হিসাবে ফলাফল ক্ষেত্র মুদ্রিত হয়। ডিভিশন কেস (কেস 4) একসাথে save_number দ্বারা term1 ভাগ করে এবং ফলাফল ভেরিয়েবলে সংখ্যা সংরক্ষণ করে। ফলাফল একটি ফ্লোট হিসাবে ফলাফল ক্ষেত্রে মুদ্রিত হয় (কারণ বিভাগের উত্তর দশমিক সংখ্যা হতে পারে)। একটি সংখ্যা, অপারেন্ড, বা ফলাফল স্ক্রিনে মুদ্রিত হওয়ার পরে, কার্সারটি পুনরায় সেট করা হয়, সংরক্ষিত_ নম্বরটি পূর্ববর্তী ফলাফলে সেট করা হয় এবং শব্দ 1 এবং op_num পুনরায় সেট করা হয়।

কয়েকটি নোট: দশমিক বিন্দু বর্গের অভাবে ব্যবহারকারী ক্যালকুলেটরে দশমিক সংখ্যা প্রবেশ করতে পারে না। এছাড়াও, ব্যবহারকারী একটি সময়ে শুধুমাত্র একটি সমীকরণ করতে পারেন। আপনি একটি ফলাফল গণনা করতে পারবেন না এবং তারপর যোগ/বিয়োগ/গুণ/ভাগ করুন যে ফলাফল। NumberSelect () ফাংশনে, একটি ফাংশন আছে যা একটি ফলাফল মুদ্রিত হওয়ার পরে স্ক্রীন সাফ করে যদি কোন ব্যবহারকারী অন্য স্কোয়ার টিপে থাকে।

ধাপ 4: কোড: স্কোয়ার ফাংশন

অকার্যকর স্কোয়ার () {

// প্রতিটি সারিতে বিকল্প কালো এবং সাদা বর্গ এবং প্রথম এবং তৃতীয় সারির দ্বিতীয় এবং চতুর্থ সারির তুলনায় বিপরীত প্যাটার্ন রয়েছে

tft.fillRect (0, 60, 60, 65, TFT_BLACK); // স্কয়ারের প্রথম সারি শুরু হয়, কালো থেকে সাদা tft.fillRect (60, 60, 60, 65, TFT_WHITE);

tft.fillRect (120, 60, 60, 65, TFT_BLACK);

tft.fillRect (180, 60, 60, 65, TFT_WHITE); // স্কোয়ারের প্রথম সারি শেষ

tft.fillRect (0, 125, 60, 65, TFT_WHITE); // স্কয়ারের দ্বিতীয় সারি শুরু, সাদা থেকে কালো tft.fillRect (60, 125, 60, 65, TFT_BLACK);

tft.fillRect (120, 125, 60, 65, TFT_WHITE);

tft.fillRect (180, 125, 60, 65, TFT_BLACK); // স্কোয়ারের দ্বিতীয় সারি শেষ

tft.fillRect (0, 190, 60, 65, TFT_BLACK); // স্কয়ারের তৃতীয় সারি শুরু হয়, কালো থেকে সাদা tft.fillRect (60, 190, 60, 65, TFT_WHITE);

tft.fillRect (120, 190, 60, 65, TFT_BLACK);

tft.fillRect (180, 190, 60, 65, TFT_WHITE); // স্কয়ারের তৃতীয় সারি শেষ

tft.fillRect (0, 255, 60, 65, TFT_WHITE); // বর্গক্ষেত্রের চতুর্থ সারি শুরু, সাদা থেকে কালো tft.fillRect (60, 255, 60, 65, TFT_BLACK);

tft.fillRect (120, 255, 60, 65, TFT_WHITE);

tft.fillRect (180, 255, 60, 65, TFT_BLACK); // স্কোয়ারের চতুর্থ সারি শেষ

}

স্কোয়ার () ফাংশনটি বেশ সহজবোধ্য। Tft.fillRect (X1, Y1, X2, Y2, TFT_COLOR) কমান্ডটি এটিতে প্রেরিত প্যারামিটার অনুসারে একটি আয়তক্ষেত্র আঁকে, যা x এবং y এর প্রথম অবস্থান, x এবং y এর দ্বিতীয় অবস্থান এবং আয়তক্ষেত্রটি যে রঙ দিয়ে ভরা হয় । এই ফাংশনটি চারটি সারি বর্গক্ষেত্র (টেকনিক্যালি আয়তক্ষেত্র) আঁকে এবং প্রতিটি বর্গক্ষেত্রকে পাস করা রঙ দিয়ে পূরণ করে।

ধাপ 5: কোড: সংখ্যা ফাংশন

অকার্যকর সংখ্যা () {

tft.setTextColor (TFT_BLUE); // নম্বর/অক্ষরের রঙ নীল সেট করে

tft.setTextSize (5); // সংখ্যা/অক্ষরের আকার 5 সেট করে

tft.setCursor (18, 75); // সংখ্যা/অক্ষরের প্রথম লাইনের জন্য কার্সার সেট করে

tft.print ("7 8 9 /"); // সংখ্যা/অক্ষরের প্রথম লাইন প্রিন্ট করে

tft.setCursor (18, 140); // সংখ্যা/অক্ষরের দ্বিতীয় লাইনের জন্য কার্সার সেট করে

tft.print ("4 5 6 X"); // সংখ্যা/অক্ষরের দ্বিতীয় লাইন প্রিন্ট করে

tft.setCursor (18, 205); // সংখ্যা/অক্ষরের তৃতীয় লাইনের জন্য কার্সার সেট করে

tft.print ("1 2 3 -"); // সংখ্যা/অক্ষরের তৃতীয় লাইন প্রিন্ট করে

tft.setCursor (18, 270); // সংখ্যা/অক্ষরের চতুর্থ লাইনের জন্য কার্সার সেট করে

tft.print ("C 0 = +"); // সংখ্যা/অক্ষরের চতুর্থ লাইন প্রিন্ট করে

}

সংখ্যা () ফাংশনটিও সহজবোধ্য। প্রথম দুটি লাইন টেক্সটের আকার বড় এবং রঙ নীল করে। Tft.setCursor () কমান্ড কার্সারকে প্রতিটি সারির অবস্থানে সেট করে যেখানে সংখ্যা লেখা শুরু হয়। তারপর tft.print () কমান্ড স্কোয়ারে সংখ্যা/অক্ষর প্রিন্ট করে।

ধাপ 6: কোড: সংখ্যা নির্বাচন ফাংশন

অকার্যকর সংখ্যা নির্বাচন করুন () {

TSPoint p = ts.getPoint ();

পিনমোড (এক্সএম, আউটপুট);

পিনমোড (ওয়াইপি, আউটপুট);

যদি (p.z> MINPRESSURE) {

p.x = মানচিত্র (p.x, 250, 845, 0, 239);

p.y = মানচিত্র (p.y, 245, 860, 0, 319);

যদি (ফলাফল! = 0) {

ফলাফল = 0;

সংরক্ষিত_সংখ্যা = 0;

tft.print ("পরিষ্কার মূল্য");

বিলম্ব (500);

tft.setCursor (cursorLocX, cursorLocY);

tft.print ("");

tft.setCursor (cursorLocX, cursorLocY);

}

NumberSelect () ফাংশনটি শুরু করতে, আমরা ts.getPoint () কমান্ড দিয়ে টাচস্ক্রিন থেকে ব্যবহারকারীর ইনপুট চাই। একবার সেই তথ্য সংগ্রহ করা হয়ে গেলে, আমরা দেখে নিই যে সর্বনিম্ন চাপ অতিক্রম করা হয়েছে কিনা (অথবা, অন্য কথায়, যদি ব্যবহারকারী টাচস্ক্রিনে কোথাও চাপ দিয়ে থাকে)। যদি এটি হয়, x এবং y স্থানাঙ্কগুলি কার্টেশিয়ান স্থানাঙ্ক থেকে টাচস্ক্রিন-নির্দিষ্ট স্থানাঙ্কগুলিতে ম্যাপ করা হয়। (0, 0) টাচস্ক্রিনের উপরের বাম দিকের কোণ, যেখানে x অক্ষটি জুড়ে যাচ্ছে এবং y অক্ষটি নিচে যাচ্ছে। পরের অংশটি চেক করে দেখুন যে ফলাফলে কোন নম্বর সংরক্ষিত আছে কিনা। যদি থাকে, ফলাফল এবং সংরক্ষিত_সংখ্যা 0 তে রিসেট করা হয়।

যদি (p.y 60) {// স্কয়ারের প্রথম সারি

যদি (p.x <60)

ব্যবহারকারী নির্বাচন = 7;

অন্যথায় যদি (p.x <120)

ব্যবহারকারী নির্বাচন = 8;

অন্যথায় যদি (p.x <180)

ব্যবহারকারী নির্বাচন = 9;

অন্যথায় user_selection = 14;

} অন্যথায় যদি (p.y 125) {// স্কোরের দ্বিতীয় সারি

যদি (p.x <60)

user_selection = 4;

অন্যথায় যদি (p.x <120)

ব্যবহারকারী নির্বাচন = 5;

অন্যথায় যদি (p.x <180)

ব্যবহারকারী নির্বাচন = 6;

অন্যথায় user_selection = 13;

} অন্যথায় যদি (p.y 190) {// স্কয়ারের তৃতীয় সারি

যদি (p.x <60)

ব্যবহারকারী নির্বাচন = 1;

অন্যথায় যদি (p.x <120)

ব্যবহারকারী নির্বাচন = 2;

অন্যথায় যদি (p.x <180)

ব্যবহারকারী নির্বাচন = 3;

অন্যথায় user_selection = 12;

} অন্যথায় যদি (p.y> 255) {// স্কোয়ারের চতুর্থ সারি

যদি (p.x <60)

ব্যবহারকারী নির্বাচন = 15;

অন্যথায় যদি (p.x <120)

user_selection = 0;

অন্যথায় যদি (p.x <180)

ব্যবহারকারী নির্বাচন = 10;

অন্যথায় user_selection = 11;

}

} অন্য {

ব্যবহারকারী নির্বাচন = 16; // user_selection 16 তে সেট করা হয়েছে (কিছুই পরিবর্তনশীল নয়)

}

}

এই অংশটি নির্ধারণ করে যে কোন বোতামটি নির্বাচন করা হয়েছে। স্কোয়ারের উপরের সারি থেকে শুরু করে এবং নিচের সারির সাথে শেষ হয়ে, Arduino সন্ধান করে যে পর্দাটি আসলে কোথায় চাপানো হয়েছিল। এটি তখন বর্গকে একটি সংখ্যা বরাদ্দ করে এবং সেই সংখ্যাটি ব্যবহারকারীর নির্বাচনে সংরক্ষণ করে। সংখ্যা 0-9 সংখ্যার বর্গের সাথে সামঞ্জস্যপূর্ণ, 11-15 সংখ্যাগুলি অপারেন্ড স্কোয়ার এবং স্পষ্ট বর্গের সাথে সামঞ্জস্যপূর্ণ এবং 10 নম্বরটি সমান চিহ্ন বর্গের সাথে মিলে যায়। যদি কোন বর্গক্ষেত্র নির্বাচন করা না হয়, তাহলে user_selection 16 তে সেট করা হয়, যা লুপটি আবার শুরু করবে (লুপ ফাংশন দেখুন)।

ধাপ 7: আপনার সমাপ্ত প্রকল্প উপভোগ করুন

সেখানে আপনার আছে! আপনার এখন একটি টাচস্ক্রিন ক্যালকুলেটর আছে যা যোগ, বিয়োগ, গুণ এবং ভাগ করতে পারে। এই প্রকল্পটি সম্পূর্ণভাবে পরিবর্তন করেছে যা আমি ভেবেছিলাম একটি ক্যালকুলেটর কাজ করেছে। যখন আমি এই প্রকল্পে কাজ করছিলাম, আমার ক্লাসে আমার প্রশিক্ষককে বলার কথা মনে আছে, "আমি আর কখনও একইভাবে ক্যালকুলেটরের দিকে তাকাব না!" একজন ব্যবহারকারী হিসাবে আপনি যে কাজগুলি সহজ মনে করেন তা কিছুটা কঠিন যখন আপনি কম্পিউটারের পিছনে আপনার ধারণা অনুকরণ করার চেষ্টা করছেন। আমি আশা করি আপনি প্রকল্পটি উপভোগ করেছেন, এবং আমি আশা করি কিভাবে একটি ক্যালকুলেটর কাজ করে সে সম্পর্কে আপনার মানসিকতাও পরিবর্তিত হয়েছে!

আপনার সুবিধার জন্য এখানে সম্পূর্ণ কোড। এটি মন্তব্যে ভরা তাই যদি আপনার কোন সমস্যা হয় তবে তারা আপনাকে দেখাবে প্রতিটি লাইন কি করে।

প্রস্তাবিত: