فهرست مطالب:

ماشین حساب صفحه لمسی آردوینو TFT LCD: 3 مرحله
ماشین حساب صفحه لمسی آردوینو TFT LCD: 3 مرحله

تصویری: ماشین حساب صفحه لمسی آردوینو TFT LCD: 3 مرحله

تصویری: ماشین حساب صفحه لمسی آردوینو TFT LCD: 3 مرحله
تصویری: 7 Segment lcd 2024, نوامبر
Anonim
ماشین حساب صفحه لمسی آردوینو TFT LCD
ماشین حساب صفحه لمسی آردوینو TFT LCD

سلام بچه ها در این دستورالعمل نحوه ساخت ماشین حساب با استفاده از Arduino Uno با صفحه نمایش لمسی 3.5 اینچی TFT LCD را یاد می گیریم. بنابراین ما یک کد می نویسیم و آن را در arduino بارگذاری می کنیم که رابط ماشین حساب را روی صفحه نمایش می دهد و عملکرد لمسی را نیز انجام می دهد. خروجی عبارات اساسی ریاضی را ارائه دهید.

مرحله 1: موارد مورد نیاز

چیزهایی که شما نیاز دارید
چیزهایی که شما نیاز دارید
چیزهایی که شما نیاز دارید
چیزهایی که شما نیاز دارید

برای این پروژه به موارد زیر نیاز دارید: 3.5 اینچ TFT LCD DISPLAYARDUINO UNO

مرحله 2: نصب کتابخانه نمایش TFT در Arduino IDE

نصب کتابخانه نمایش TFT در Arduino IDE
نصب کتابخانه نمایش TFT در Arduino IDE

ما از کتابخانه SPFD5408 استفاده می کنیم:

برای کارکردن این کد ماشین حساب arduino. این یک کتابخانه تغییر یافته از Adafruit است و می تواند به طور یکپارچه با ماژول LCD TFT ما کار کند. برای شما بسیار مهم است که این کتابخانه را در Arduino IDE خود نصب کنید یا این برنامه را بدون خطا کامپایل کنید. برای نصب این کتابخانه ، می توانید به سادگی بر روی پیوند بالا کلیک کنید که شما را به صفحه Github منتقل می کند. در آنجا روی clone یا download کلیک کرده و "Download ZIP" را انتخاب کنید. یک فایل فشرده بارگیری می شود. اکنون ، Arduino IDE را باز کرده و Sketch -> Include Librarey -> Add. ZIP library را انتخاب کنید. یک پنجره مرورگر باز می شود و به فایل ZIP بروید و روی "OK" کلیک کنید. در گوشه سمت چپ پایین آردوینو باید به "کتابخانه ای که به کتابخانه های شما اضافه شده است" توجه کنید.

مرحله 3: کد ماشین حساب را بارگذاری کنید

کد ماشین حساب را بارگذاری کنید
کد ماشین حساب را بارگذاری کنید
کد ماشین حساب را بارگذاری کنید
کد ماشین حساب را بارگذاری کنید

پس از نصب کتابخانه ، صفحه نمایش را به آردوینو وصل کنید و کد زیر را کپی کنید و آن را در آردوینو بارگذاری کنید. کتابخانه#شامل "SPFD5408_TouchScreen.h"/*_ پایان کتابخانه ها _*//** تعریف XM A2 // باید یک پین آنالوگ باشد ، از نماد "An" استفاده کنید!#تعریف YM 7 // می تواند یک پین دیجیتال باشد#تعریف XP 6 // می تواند یک پین دیجیتال باشد#تعریف LCD_CS A3#تعریف LCD_CD A2#تعریف LCD_WR A1#تعریف LCD_RD A0#تعریف LCD_RESET A4/*_ پایان تعریفها _*//*_ تعیین نام رنگها و فشار _*/#تعریف WHITE 0x0000 // سیاه-> سفید#تعریف YELLOW 0x001F // آبی-> زرد#تعریف CYAN 0xF800 // قرمز-> فیروزه ای#تعریف PINK 0x07E0 // سبز-> صورتی#تعریف RED 0x07FF // فیروزه ای-> قرمز#تعریف GREEN 0xF81F // صورتی-> سبز#تعریف BLUE 0xFFE0 // زرد- > آبی#تعریف BLACK 0xFFFF // سفید-> سیاه#تعریف MINPRESSURE 10#تعریف MAXPRESSURE 1000/*_ تعیین _*//*_ کالیبره TFT LCD _*/#تعریف TS_MINX 125#تعریف TS_MINY 85#تعریف TS_MAXX 965#تعریف 90 _ پایان کالیبراسیون _*/TouchScreen ts = TouchScreen (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 ؛ طولانی Num1 ، Num2 ، Number ؛ اقدام به کاراکتر ؛ boolean result = false؛ void setup () {Serial.begin (9600)؛ // از مانیتور سریال برای اشکال زدایی tft.reset () استفاده کنید. // همیشه در شروع تنظیم مجدد tft.begin (0x9341) ؛ // LCD من از IC درایور رابط LIL9341 tft.setRotation (2) استفاده می کند. // من فقط طوری چرخیدم که جک برق رو به بالا باشد - اختیاری tft.fillScreen (WHITE) ؛ IntroScreen () ؛ draw_BoxNButtons ()؛ } void loop () {TSPoint p = waitTouch ()؛ X = p.y؛ Y = p.x؛ // Serial.print (X)؛ Serial.print ('،')؛ Serial.println (Y)؛ // + "" + Y)؛ DetectButtons ()؛ if (result == true) CalculateResult ()؛ DisplayResult ()؛ تأخیر (300) ؛} TSPoint waitTouch () {TSPoint p؛ انجام دهید {p = ts.getPoint ()؛ pinMode (XM ، OUTPUT) ؛ pinMode (YP ، OUTPUT) ؛ } while ((p.z MAXPRESSURE)) ؛ p.x = نقشه (p.x ، TS_MINX ، TS_MAXX ، 0 ، 320) ؛ p.y = نقشه (p.y ، TS_MINY ، TS_MAXY ، 0 ، 240) ؛؛ بازگشت p؛} void DetectButtons () {if (X0) // تشخیص دکمه ها در ستون 1 {if (Y> 0 && Y <85) // در صورت لغو دکمه {Serial.println ("Button Cancel") فشار داده می شود ؛ تعداد = Num1 = Num2 = 0 ؛ result = false؛} if (Y> 85 && Y <140) // If Button 1 is pressed {Serial.println ("Button 1")؛ اگر (تعداد == 0) شماره = 1 ؛ else شماره = (شماره*10) + 1؛ // دو بار} اگر (Y> 140 && Y <192) // اگر دکمه 4 {Serial.println ("دکمه 4") فشار داده شود ، دو بار فشرده شده است. اگر (تعداد == 0) شماره = 4 ؛ else شماره = (شماره*10) + 4 ؛ // دو بار} اگر (Y> 192 && Y <245) // اگر دکمه 7 {Serial.println ("دکمه 7") فشار داده شود ، فشرده می شود. اگر (تعداد == 0) شماره = 7 ؛ else شماره = (شماره*10) + 7 ؛ // دوبار فشار داده}} if (X50) // تشخیص دکمه ها در ستون 2 {if (Y> 0 && Y <85) {Serial.println ("Button 0")؛ // دکمه 0 فشار داده می شود اگر (تعداد == 0) شماره = 0 ؛ else شماره = (شماره*10) + 0 ؛ // دو بار} if (Y> 85 && Y <140) {Serial.println ("Button 2")؛ اگر (تعداد == 0) شماره = 2 ؛ else شماره = (شماره*10) + 2؛ // دو بار فشرده} if (Y> 140 && Y <192) {Serial.println ("دکمه 5") ؛ اگر (تعداد == 0) شماره = 5 ؛ else شماره = (شماره*10) + 5؛ // فشرده twic} if (Y> 192 && Y <245) {Serial.println ("دکمه 8") ؛ اگر (تعداد == 0) شماره = 8 ؛ else شماره = (شماره*10) + 8؛ // فشرده twic}} if (X105) // تشخیص دکمه ها در ستون 3 {if (Y> 0 && Y <85) {Serial.println ("Button Equal") ؛ Num2 = تعداد ؛ نتیجه = درست ؛ } if (Y> 85 && Y <140) {Serial.println ("دکمه 3") ؛ اگر (تعداد == 0) شماره = 3 ؛ else شماره = (شماره*10) + 3؛ // دو بار} if (Y> 140 && Y <192) {Serial.println ("Button 6")؛ اگر (تعداد == 0) شماره = 6 ؛ else شماره = (شماره*10) + 6 ؛ // دو بار} if (Y> 192 && Y <245) {Serial.println ("Button 9")؛ اگر (تعداد == 0) شماره = 9 ؛ else شماره = (شماره*10) + 9 ؛ // دوبار فشرده}} if (X165) // تشخیص دکمه ها در ستون 3 {Num1 = Number؛ تعداد = 0 ؛ tft.setCursor (200 ، 20) ؛ tft.setTextColor (RED) ؛ if (Y> 0 && Y <85) {Serial.println ("Add")؛ عمل = 1 ؛ tft.println ('+')؛} if (Y> 85 && Y <140) {Serial.println ("تفریق") ؛ عمل = 2 ؛ tft.println ('-')؛} if (Y> 140 && Y <192) {Serial.println ("ضرب") ؛ عمل = 3 ؛ tft.println ('*')؛} if (Y> 192 && Y <245) {Serial.println ("Devesion")؛ عمل = 4 ؛ tft.println ('/') ؛} تاخیر (300) ؛ }} void CalculateResult () {if (action == 1) Number = Num1+Num2؛ if (action == 2) Number = Num1-Num2؛ if (action == 3) Number = Num1*Num2؛ if (action == 4) Number = Num1/Num2؛ } void DisplayResult () {tft.fillRect (0 ، 0 ، 240 ، 80 ، CYAN) ؛ // پاک کردن کادر نتیجه tft.setCursor (10 ، 20) ؛ tft.setTextSize (4) ؛ tft.setTextColor (BLACK) ؛ tft.println (شماره) ؛ // مقدار جدید را به روز کنید} void IntroScreen () {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 ("-Circut Digest") ؛ تأخیر (1800) ؛} void draw_BoxNButtons () {// رسم کادر نتیجه tft.fillRect (0 ، 0 ، 240 ، 80 ، CYAN) ؛ // رسم اولین ستون tft.fillRect (0 ، 260 ، 60 ، 60 ، RED) ؛ tft.fillRect (0 ، 200 ، 60 ، 60 ، BLACK) ؛ tft.fillRect (0 ، 140 ، 60 ، 60 ، BLACK) ؛ tft.fillRect (0 ، 80 ، 60 ، 60 ، BLACK) ؛ // رسم ستون سوم tft.fillRect (120 ، 260 ، 60 ، 60 ، GREEN) ؛ tft.fillRect (120 ، 200 ، 60 ، 60 ، BLACK) ؛ tft.fillRect (120 ، 140 ، 60 ، 60 ، BLACK) ؛ tft.fillRect (120 ، 80 ، 60 ، 60 ، BLACK) ؛ // Draw Secound & Fourth Column for (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* ی)) ؛ tft.setTextSize (3) ؛ tft.setTextColor (سفید) ؛ tft.println (نماد [j] ) ؛ }}} پس از بارگذاری کد ، می توانید ماشین حساب را در صفحه نمایش من مشاهده کنید و اکنون می توانید محاسبات پایه ریاضی را در این مورد انجام دهید. بنابراین از ساخت ماشین حساب خود با Arduino UNO لذت ببرید.

توصیه شده: