Arduino TFT LCD টাচস্ক্রিন ক্যালকুলেটর: 3 ধাপ
Arduino TFT LCD টাচস্ক্রিন ক্যালকুলেটর: 3 ধাপ
Anonim
Arduino TFT LCD টাচস্ক্রিন ক্যালকুলেটর
Arduino TFT LCD টাচস্ক্রিন ক্যালকুলেটর

হাই বন্ধুরা এই নির্দেশাবলীতে আমরা 3.5 TFT LCD টাচস্ক্রিন ডিসপ্লে দিয়ে Arduino Uno ব্যবহার করে একটি ক্যালকুলেটর তৈরি করতে শিখব। সুতরাং আমরা একটি কোড লিখব এবং এটি arduino তে আপলোড করব যা ডিসপ্লেতে ক্যালকুলেটর ইন্টারফেস প্রদর্শন করবে এবং স্পর্শ কার্যকারিতা গ্রহণ করবে এবং মৌলিক গাণিতিক এক্সপ্রেশন আউটপুট দিন।

ধাপ 1: আপনার প্রয়োজনীয় জিনিসগুলি

জিনিস আপনার প্রয়োজন
জিনিস আপনার প্রয়োজন
জিনিস আপনার প্রয়োজন
জিনিস আপনার প্রয়োজন

এই প্রকল্পের জন্য আপনার নিম্নলিখিত বিষয়গুলির প্রয়োজন হবে: 3.5 TFT LCD DISPLAYARDUINO UNO

ধাপ 2: Arduino IDE তে TFT ডিসপ্লে লাইব্রেরি ইনস্টল করা

Arduino IDE তে TFT ডিসপ্লে লাইব্রেরি ইনস্টল করা
Arduino IDE তে TFT ডিসপ্লে লাইব্রেরি ইনস্টল করা

আমরা SPFD5408 লাইব্রেরি ব্যবহার করছি:

এই arduino ক্যালকুলেটর কোড কাজ পেতে। এটি অ্যাডাফ্রুটের একটি পরিবর্তিত লাইব্রেরি এবং আমাদের এলসিডি টিএফটি মডিউল দিয়ে নির্বিঘ্নে কাজ করতে পারে। আপনার Arduino IDE এ এই লাইব্রেরিটি ইনস্টল করা বা এই প্রোগ্রামে কোন ত্রুটি ছাড়াই কম্পাইল করার জন্য এটি খুবই গুরুত্বপূর্ণ। সেখানে ক্লোন বা ডাউনলোড এ ক্লিক করুন এবং "ডাউনলোড জিপ" নির্বাচন করুন। একটি জিপ ফাইল ডাউনলোড করা হবে। একটি ব্রাউজার উইন্ডো জিপ ফাইলে নেভিগেট খুলবে এবং "ওকে" ক্লিক করবে। আপনি Arduino এর নিচের বাম কোণে "আপনার লাইব্রেরিতে যোগ করা লাইব্রেরি" লক্ষ্য করুন।

ধাপ 3: ক্যালকুলেটর কোড আপলোড করুন

ক্যালকুলেটর কোড আপলোড করুন
ক্যালকুলেটর কোড আপলোড করুন
ক্যালকুলেটর কোড আপলোড করুন
ক্যালকুলেটর কোড আপলোড করুন

লাইব্রেরি ইনস্টল করার পর ডিসপ্লেটি আরডুইনোতে সংযুক্ত করুন এবং নিচের কোডটি অনুলিপি করুন এবং এটি আরডুইনোতে আপলোড করুন। লাইব্রেরি#অন্তর্ভুক্ত "SPFD5408_TouchScreen.h"/*_ লাইব্রেরির সমাপ্তি _*//*_ LCD পিন সংজ্ঞায়িত করুন (আমি ডিফল্ট মানগুলি স্বাক্ষর করেছি) _*/#YP A1 সংজ্ঞায়িত করুন // একটি এনালগ পিন হতে হবে, "একটি" নোটেশন ব্যবহার করুন!# XM A2 সংজ্ঞায়িত করুন // একটি এনালগ পিন হতে হবে, "একটি" স্বরলিপি ব্যবহার করুন! A1#LCD_RD A0#সংজ্ঞায়িত করুন LCD_RESET A4/*_ সংজ্ঞা সমাপ্তি _*//*_ রং এবং চাপের নাম নির্ধারণ করুন _*/#নির্ধারণ করুন সাদা 0x0000 // কালো-> সাদা#YELLOW 0x001F // নীল-> হলুদ#সংজ্ঞায়িত করুন CYAN 0xF800 // লাল-> সায়ান#PINK 0x07E0 সংজ্ঞায়িত করুন // সবুজ-> গোলাপী#RED 0x07FF নির্ধারণ করুন // সায়ান-> লাল#সবুজ 0xF81F সংজ্ঞায়িত করুন // গোলাপী-> সবুজ#ডিফাইন ব্লু 0xFFE0 // হলুদ- > নীল#সংজ্ঞায়িত কালো 0xFFFF // সাদা-> কালো#সংজ্ঞা MINPRESSURE 10#সংজ্ঞায়িত MAXPRESSURE 1000/*_ বরাদ্দ _*//*_ ক্যালিব্রেট TFT LCD _*/#TS_MINX 125#সংজ্ঞায়িত TS_MINY 85#সংজ্ঞায়িত TS_MAX 950 _ ক্রমাঙ্কনের শেষ _*/টাচস্ক্রিন ts = টাচস্ক্রিন (XP, YP, XM, YM, 300); // 300 হল সংবেদনশীলতা Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // LCDString চিহ্নের সাথে যোগাযোগ শুরু করুন [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; দীর্ঘ সংখ্যা 1, সংখ্যা 2, সংখ্যা; চার অ্যাকশন; বুলিয়ান ফলাফল = মিথ্যা; অকার্যকর সেটআপ () {Serial.begin (9600); // tft.reset () ডিবাগ করার জন্য সিরিয়াল মনিটর ব্যবহার করুন; // সর্বদা tft.begin (0x9341) শুরুতে রিসেট করুন; // আমার LCD LIL9341 ইন্টারফেস ড্রাইভার IC tft.setRotation (2) ব্যবহার করে; // আমি শুধু ঘোরালাম যাতে পাওয়ার জ্যাক মুখোমুখি হয় - alচ্ছিক tft.fillScreen (সাদা); ইন্ট্রোস্ক্রিন (); draw_BoxNButtons (); } অকার্যকর লুপ () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial.print (X); সিরিয়াল.প্রিন্ট (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); বিলম্ব (300);} TSPoint waitTouch () {TSPoint p; করুন {p = ts.getPoint (); পিনমোড (এক্সএম, আউটপুট); পিনমোড (ওয়াইপি, আউটপুট); } যখন ((p.z MAXPRESSURE)); p.x = মানচিত্র (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = মানচিত্র (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // কলাম 1 এ বোতাম শনাক্ত করা {যদি (Y> 0 && Y <85) // যদি বাতিল বোতাম টিপানো হয় {Serial.println ("Button Cancel"); সংখ্যা = সংখ্যা 1 = সংখ্যা 2 = 0; result = false;} if (Y> 85 && Y <140) // যদি বাটন 1 টি টিপানো হয় {Serial.println ("Button 1"); যদি (সংখ্যা == 0) সংখ্যা = 1; অন্য সংখ্যা = (সংখ্যা*10) + 1; // দুবার চাপানো হয়} যদি (Y> 140 && Y <192) // যদি বোতাম 4 টি চাপানো হয় {Serial.println ("Button 4"); যদি (সংখ্যা == 0) সংখ্যা = 4; অন্য সংখ্যা = (সংখ্যা*10) + 4; // দুবার চাপানো হয়} যদি (Y> 192 && Y <245) // যদি বোতাম 7 টি টিপানো হয় {Serial.println ("Button 7"); যদি (সংখ্যা == 0) সংখ্যা = 7; অন্য সংখ্যা = (সংখ্যা*10) + 7; // দুবার চাপানো}} if (X50) // কলাম 2 এ বোতাম সনাক্তকরণ {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // বোতাম 0 চাপানো হয় যদি (সংখ্যা == 0) সংখ্যা = 0; অন্য সংখ্যা = (সংখ্যা*10) + 0; // দুবার চাপে} যদি (Y> 85 && Y <140) {Serial.println ("Button 2"); যদি (সংখ্যা == 0) সংখ্যা = 2; অন্য সংখ্যা = (সংখ্যা*10) + 2; // দুবার চাপে} যদি (Y> 140 && Y <192) {Serial.println ("Button 5"); যদি (সংখ্যা == 0) সংখ্যা = 5; অন্য সংখ্যা = (সংখ্যা*10) + 5; // চাপা twic} যদি (Y> 192 && Y <245) {Serial.println ("Button 8"); যদি (সংখ্যা == 0) সংখ্যা = 8; অন্য সংখ্যা = (সংখ্যা*10) + 8; // চাপানো twic}} if (X105) // কলাম 3 এ বোতাম সনাক্তকরণ {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); সংখ্যা 2 = সংখ্যা; ফলাফল = সত্য; } যদি (Y> 85 && Y <140) {Serial.println ("Button 3"); যদি (সংখ্যা == 0) সংখ্যা = 3; অন্য সংখ্যা = (সংখ্যা*10) + 3; // দুবার চাপে} যদি (Y> 140 && Y <192) {Serial.println ("Button 6"); যদি (সংখ্যা == 0) সংখ্যা = 6; অন্য সংখ্যা = (সংখ্যা*10) + 6; // দুবার চাপে} যদি (Y> 192 && Y <245) {Serial.println ("Button 9"); যদি (সংখ্যা == 0) সংখ্যা = 9; অন্য সংখ্যা = (সংখ্যা*10) + 9; // দুবার চাপানো}} যদি (X165) // কলাম 3 এ বোতাম শনাক্ত করা {Num1 = সংখ্যা; সংখ্যা = 0; tft.setCursor (200, 20); tft.setTextColor (RED); যদি (Y> 0 && Y <85) {Serial.println ("সংযোজন"); কর্ম = 1; tft.println ('+');} যদি (Y> 85 && Y <140) {Serial.println ("বিয়োগ"); কর্ম = 2; tft.println ('-');} যদি (Y> 140 && Y <192) {Serial.println ("Multiplication"); কর্ম = 3; tft.println ('*');} যদি (Y> 192 && Y <245) {Serial.println ("Devesion"); কর্ম = 4; tft.println ('/');} বিলম্ব (300); }} অকার্যকর CalculateResult () {if (action == 1) Number = Num1+Num2; যদি (ক্রিয়া == 2) সংখ্যা = সংখ্যা 1-সংখ্যা 2; যদি (ক্রিয়া == 3) সংখ্যা = সংখ্যা 1*সংখ্যা 2; যদি (ক্রিয়া == 4) সংখ্যা = সংখ্যা 1/সংখ্যা 2; } অকার্যকর DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // পরিষ্কার ফলাফলের বাক্স tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (কালো); tft.println (সংখ্যা); // নতুন মান আপডেট করুন} অকার্যকর ইন্ট্রোস্ক্রিন () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (RED); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("ক্যালকুলেটর"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (নীল); tft.println ("-সার্কিট ডাইজেস্ট"); বিলম্ব (1800);} অকার্যকর draw_BoxNButtons () {// ফলাফল বাক্স আঁকুন tft.fillRect (0, 0, 240, 80, CYAN); // প্রথম কলাম আঁকুন tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, কালো); tft.fillRect (0, 140, 60, 60, কালো); tft.fillRect (0, 80, 60, 60, কালো); // তৃতীয় কলাম আঁকুন tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, কালো); tft.fillRect (120, 140, 60, 60, কালো); tft.fillRect (120, 80, 60, 60, কালো); // (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE) এর জন্য গোপন এবং চতুর্থ কলাম আঁকুন; tft.fillRect (60, b, 60, 60, BLACK);} // (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, WHITE) এর জন্য অনুভূমিক রেখা আঁকুন; // (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE) এর জন্য উল্লম্ব রেখা আঁকুন; // (int j = 0; j <4; j ++) {জন্য (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60* j)); tft.setTextSize (3); tft.setTextColor (সাদা); tft.println (প্রতীক [j] ); }}} কোডটি আপলোড করার পর আপনি আপনার ডিসপ্লেতে আমার মত ক্যালকুলেটর দেখতে পাবেন এবং এখন আপনি এই বিষয়ে গণিতের মৌলিক হিসাব করতে পারবেন। তাই আরডুইনো ইউএনও দিয়ে আপনার নিজের ক্যালকুলেটর তৈরি করে মজা করুন।

প্রস্তাবিত: