สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: การเชื่อมต่อฮาร์ดแวร์
- ขั้นตอนที่ 2: The Code: Global Definitions & Setup
- ขั้นตอนที่ 3: รหัส: Loop
- ขั้นตอนที่ 4: รหัส: ฟังก์ชัน Squares
- ขั้นตอนที่ 5: รหัส: ฟังก์ชันตัวเลข
- ขั้นตอนที่ 6: รหัส: NumberSelect Function
- ขั้นตอนที่ 7: สนุกกับโครงการที่เสร็จแล้วของคุณ
วีดีโอ: Arduino Touchscreen Calculator: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
สวัสดี! นี่เป็นโครงการที่จะสร้างเครื่องคิดเลขหน้าจอสัมผัสโดยใช้ Arduino Uno และแผงป้องกัน TFT LCD ฉันคิดแนวคิดสำหรับชั้นเรียนเขียนโปรแกรมโฮมสคูล และประสบการณ์ในการสร้างโครงการนี้ก็น่าสนใจมาก เครื่องคิดเลขนี้สามารถดำเนินการทางคณิตศาสตร์อย่างง่ายได้สี่แบบ (การบวก การลบ การคูณ และการหาร) นอกจากนี้ยังแสดงจุดทศนิยมสูงสุดสองจุดสำหรับคำตอบของการหารที่มี มาดำดิ่งกัน! อุปกรณ์สำหรับโครงการนี้มีดังต่อไปนี้
เสบียง
- Arduino Uno
- 2.4 TFT LCD Shield (ฉันซื้อที่นี่:
- สาย USB A ถึง B (สายต่อ Arduino กับคอมพิวเตอร์)
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
- คุณจะต้องดาวน์โหลดสองไลบรารี่: MCUFRIEND_kbv และ Touchscreen ไฟล์แรกที่คุณสามารถพบได้ใน github (ลิงก์: https://github.com/prenticedavid/MCUFRIEND_kbv) หรือคุณสามารถใช้ไฟล์ zip ของไลบรารีที่ฉันได้รวมไว้ด้านล่าง ประการที่สองอยู่ใน Arduino Library Manager สำหรับการติดตั้ง
ขั้นตอนที่ 1: การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อแผงหน้าจอสัมผัสกับ Arduino Uno ทำได้ง่ายและรวดเร็ว สิ่งที่คุณต้องทำคือจัดเรียงพินต่ำสุดบนชิลด์กับพินต่ำสุดบน Arduino และดันชิลด์เข้าไปในพิน พิน 5V ด้านบนและพินที่ไม่มีป้ายกำกับที่ด้านกำลังไฟฟ้าไม่ควรมีพินจากชิลด์ในนั้น โดยจะใช้พารามิเตอร์เดียวกันกับพินที่ระบุว่า SCL และ SDA ที่อีกด้านหนึ่งของบอร์ด ตอนนี้เราพร้อมที่จะเขียนโค้ดแล้ว!
ขั้นตอนที่ 2: The Code: Global Definitions & Setup
#รวม
MCUFRIEND_kbv tft; // ต่อสายแบบแข็งสำหรับ UNO shields อยู่แล้ว
#รวม
#define YP A3
#define XM A2
#define YM 9
#define XP 8
TouchScreen ts = หน้าจอสัมผัส (XP, YP, XM, YM, 300);
#กำหนดความดันต่ำ 10
นี่คือจุดเริ่มต้นของโค้ด ซึ่งเรารวมไลบรารี่ (MCUFRIEND_kbv & Touchscreen) กำหนดพิน X และ Y ตั้งค่าพารามิเตอร์หน้าจอสัมผัส และกำหนดแรงดันขั้นต่ำที่จำเป็นสำหรับ Arduino เพื่อลงทะเบียนผู้ใช้กด
รหัสภายใน;
int user_selection;
float save_number = 0;
ระยะลอยตัว 1;
int op_num;
ผลลอย;
int เคอร์เซอร์LocX = 5;
int เคอร์เซอร์LocY = 20;
ก่อนตั้งค่า เราจำเป็นต้องตั้งค่าตัวแปรส่วนกลางบางตัว ID ช่วยในการทำให้หน้าจอสัมผัสทำงาน user_selection ถือตัวเลขที่สอดคล้องกับคีย์ที่ผู้ใช้เลือกเมื่อกดหน้าจอสัมผัส save_number เป็นตัวแปรที่เราพิมพ์ไปยังหน้าจอหลังจากผู้ใช้ป้อนข้อมูล (เพิ่มเติมในลูปนี้) เป็นทศนิยมสามารถเก็บตัวเลขทศนิยมและจำนวนเต็มได้ เทอม 1 คือตัวแปรที่บันทึกหมายเลขแรกของสมการหลังจากเลือกตัวถูกดำเนินการ op_num บันทึกตัวถูกดำเนินการเป็นตัวเลข (1 สำหรับการบวก 2 สำหรับการลบ 3 สำหรับการคูณและ 4 สำหรับการหาร) ผลลัพธ์คือตัวแปรที่พิมพ์ไปยังหน้าจอหลังจากที่ผู้ใช้กดเครื่องหมายเท่ากับ ยังเป็นทุ่นลอยน้ำอีกด้วย cursorLocX และ cursorLocY คือจุดจับคู่บนหน้าจอสัมผัสที่เคอร์เซอร์ถูกตั้งค่าหลายครั้ง (อยู่ในแถบสีเทาที่ด้านบน หรือที่เรียกว่าฟิลด์ผลลัพธ์)
การตั้งค่าเป็นโมฆะ (){
tft.reset();
ID = 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() ซึ่งเราจะเขียนทับ (ยกเว้นฟิลด์ผลลัพธ์) ฟังก์ชัน squares() และ numbers() วาดกำลังสองของเครื่องคิดเลข ระบายสีสี่เหลี่ยมขาวดำในรูปแบบกระดานหมากรุก และเขียนตัวเลข/ตัวถูกดำเนินการบนช่องสี่เหลี่ยมด้วยสีน้ำเงิน เราจะพูดถึงสิ่งเหล่านั้นในขั้นตอนต่อไป คำสั่ง tft.setTextSize() กำหนดขนาดข้อความของฟิลด์ผลลัพธ์เป็น 3 ซึ่งเป็นฟอนต์ขนาดกลาง คำสั่ง tft.setTextColor() กำหนดสีข้อความของฟิลด์ผลลัพธ์เป็นสีน้ำเงิน ซึ่งเขียนทับฟิลด์สีเทาเข้ม
ขั้นตอนที่ 3: รหัส: Loop
วงเป็นโมฆะ () { numberSelect ();
ล่าช้า (100);
ถ้า (user_selection == 16){
;
}อื่น{
ถ้า (user_selection < 10){
save_number = save_number * 10 + user_selection;
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print(saved_number);
}อื่นถ้า (user_selection > 10){
สวิตช์ (user_selection){
กรณีที่ 11:
op_num = 1;
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print("+");
เทอม 1 = save_number;
save_number = 0;
หยุดพัก;
กรณีที่ 12:
op_num = 2;
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print("-");
เทอม 1 = save_number;
save_number = 0;
หยุดพัก;
กรณีที่ 13:
op_num = 3;
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print("X");
เทอม 1 = save_number;
save_number = 0;
หยุดพัก;
กรณีที่ 14:
op_num = 4;
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print("/");
เทอม 1 = save_number;
save_number = 0;
หยุดพัก;
กรณีที่ 15:
save_number = 0;
เทอม 1 = 0;
op_num = 0;
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print(" ");
หยุดพัก;
}
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
นี่เป็นเรื่องที่ต้องเคี้ยวมาก ดังนั้นฉันจะอธิบายสิ่งที่กล่าวข้างต้น เราเริ่มต้นด้วยการเรียกใช้ฟังก์ชัน numberSelect() ซึ่งกำหนดตัวเลขให้กับแต่ละช่องสี่เหลี่ยมบนหน้าจอสัมผัส เมื่อผู้ใช้กดหนึ่งในสี่เหลี่ยมเหล่านั้น ฟังก์ชันจะตั้งค่าตัวแปร user_selection เป็นจำนวนสี่เหลี่ยมจัตุรัส คำสั่ง if เป็นคำสั่งแรกให้รันผ่านลูปก็ต่อเมื่อได้เลือกผู้ใช้ที่ถูกต้องแล้ว ถ้าใช่ คำสั่ง if ถัดไปจะถามว่า user_selection มีตัวเลขที่บันทึกไว้น้อยกว่า 10 หรือไม่ (ตัวเลข 0-9) ถ้าเป็นเช่นนั้น save_number จะถูกคูณด้วย 10 และตัวเลขใน user_selection จะถูกเพิ่มไปยัง save_number ซึ่งจะถูกพิมพ์ในช่องผลลัพธ์บนหน้าจอสัมผัส หากไม่เป็นเช่นนั้น คำสั่ง if ถัดไปจะถามว่า user_selection มีตัวเลขที่มากกว่า 10 บันทึกไว้หรือไม่ (ตัวเลขตัวถูกดำเนินการ: 11 สำหรับ +, 12 สำหรับ -, 13 สำหรับ X, 14 สำหรับ / และ 15 สำหรับช่องสี่เหลี่ยมแบบใส). ฟังก์ชันสวิตช์จะดูแลแต่ละกรณี (กำหนดโดย user_selection) ตัวแปร op_num จะได้รับตัวเลขที่สอดคล้องกับตัวถูกดำเนินการที่เลือก (1 สำหรับ +, 2 สำหรับ -, 3 สำหรับ X และ 4 สำหรับ /) ค่าใน save_number จะถูกบันทึกลงในตัวแปร term1 เพื่อให้สามารถใช้ตัวแปร saved_number สำหรับครึ่งหลังของสมการได้ สัญลักษณ์ตัวถูกดำเนินการจะถูกพิมพ์บนหน้าจอพร้อมกับล้างตัวเลขใดๆ ในฟิลด์ผลลัพธ์ ข้อยกเว้นเพียงอย่างเดียวคือสี่เหลี่ยมหน้าจอที่ชัดเจน ซึ่งจะรีเซ็ตตัวแปรการคำนวณทั้งหมดและล้างฟิลด์ผลลัพธ์ของสิ่งใดๆ ที่อยู่ในนั้น
}อื่น{
สวิตช์ (op_num){
กรณีที่ 1:
ผลลัพธ์ = เทอม 1 + save_number;
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print(สองเท่า(ผลลัพธ์));
หยุดพัก;
กรณีที่ 2:
ผลลัพธ์ = เทอม 1 - save_number;
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print(สองเท่า(ผลลัพธ์));
หยุดพัก;
กรณีที่ 3:
ผลลัพธ์ = เทอม 1 * save_number;
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print(สองเท่า(ผลลัพธ์));
หยุดพัก;
กรณีที่ 4:
ผลลัพธ์ = float(term1) / float(saved_number);
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print(ผลลัพธ์);
หยุดพัก;
}
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
save_number = ผลลัพธ์;
เทอม 1 = 0;
op_num = 0;
ล่าช้า (1000);
}
}
}
ส่วนสุดท้ายของลูปเกี่ยวข้องกับเหตุการณ์ที่ผู้ใช้เลือกเครื่องหมายเท่ากับ (user_selection == 10) ฟังก์ชันสวิตช์อื่นทำงานผ่านฟังก์ชันทางคณิตศาสตร์ทั้งสี่ (กำหนดโดย op_num) กรณีที่บวก (กรณีที่ 1) เพิ่ม term1 และ save_number เข้าด้วยกันและบันทึกตัวเลขลงในตัวแปรผลลัพธ์ ผลลัพธ์จะถูกพิมพ์ลงในฟิลด์ผลลัพธ์เป็นสองเท่า กรณีการลบ (กรณีที่ 2) จะลบ save_number จากเทอม 1 และบันทึกตัวเลขลงในตัวแปรผลลัพธ์ ผลลัพธ์จะถูกพิมพ์ลงในฟิลด์ผลลัพธ์เป็นสองเท่า กรณีการคูณ (กรณีที่ 3) คูณเทอม 1 ด้วย save_number และบันทึกตัวเลขลงในตัวแปรผลลัพธ์ ผลลัพธ์จะถูกพิมพ์ลงในฟิลด์ผลลัพธ์เป็นสองเท่า ตัวพิมพ์หาร (กรณีที่ 4) แบ่งเทอม 1 ด้วย save_number เข้าด้วยกันและบันทึกตัวเลขลงในตัวแปรผลลัพธ์ ผลลัพธ์จะถูกพิมพ์ลงในฟิลด์ผลลัพธ์แบบทศนิยม (เนื่องจากคำตอบของการแบ่งส่วนอาจเป็นตัวเลขทศนิยม) หลังจากเหตุการณ์ของตัวเลข ตัวถูกดำเนินการ หรือผลลัพธ์ที่พิมพ์ไปยังหน้าจอ เคอร์เซอร์จะถูกรีเซ็ต บันทึก save_number ถูกตั้งค่าเป็นผลลัพธ์ก่อนหน้า และterm1 & op_num จะถูกรีเซ็ต
หมายเหตุบางประการ: ผู้ใช้ไม่สามารถป้อนตัวเลขทศนิยมลงในเครื่องคิดเลขได้เนื่องจากไม่มีจุดทศนิยม นอกจากนี้ ผู้ใช้สามารถทำสมการได้ครั้งละหนึ่งสมการเท่านั้น คุณไม่สามารถคำนวณผลลัพธ์แล้วบวก/ลบ/คูณ/หารผลลัพธ์นั้นได้ ในฟังก์ชัน numberSelect() มีฟังก์ชันที่ล้างหน้าจอหลังจากพิมพ์ผลลัพธ์แล้ว หากผู้ใช้กดสี่เหลี่ยมอื่น
ขั้นตอนที่ 4: รหัส: ฟังก์ชัน Squares
ช่องว่างสี่เหลี่ยม (){
// สี่เหลี่ยมขาวดำสลับกันในแต่ละแถวและแถวที่หนึ่งและสามมีรูปแบบที่ตรงกันข้ามกับแถวที่สองและสี่
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); // แถวที่สี่ของสี่เหลี่ยมสิ้นสุด
}
ฟังก์ชัน squares() ค่อนข้างตรงไปตรงมา คำสั่ง 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: รหัส: NumberSelect Function
เป็นโมฆะ numberSelect(){
TSPoint p = ts.getPoint();
โหมดพิน (XM, เอาต์พุต);
โหมดพิน (YP, OUTPUT);
ถ้า (หน้า z > MINPRESSURE){
หน้าx = แผนที่(หน้าx, 250, 845, 0, 239);
py = แผนที่(py, 245, 860, 0, 319);
ถ้า (ผลลัพธ์ != 0){
ผลลัพธ์ = 0;
save_number = 0;
tft.print("ค่าที่ชัดเจน");
ล่าช้า (500);
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
tft.print(" ");
tft.setCursor (เคอร์เซอร์LocX, เคอร์เซอร์LocY);
}
ในการเริ่มต้นฟังก์ชัน numberSelect() เราขอข้อมูลจากผู้ใช้จากหน้าจอสัมผัสด้วยคำสั่ง ts.getPoint() เมื่อรวบรวมข้อมูลแล้ว เราจะตรวจสอบเพื่อดูว่าแรงดันเกินขั้นต่ำเกินหรือไม่ (หรือกล่าวอีกนัยหนึ่งคือ หากผู้ใช้กดที่ใดที่หนึ่งบนหน้าจอสัมผัส) หากใช่ พิกัด x และ y จะถูกจับคู่จากพิกัดคาร์ทีเซียนกับพิกัดเฉพาะหน้าจอสัมผัส (0, 0) คือมุมซ้ายบนของหน้าจอสัมผัส โดยให้แกน x ข้ามและแกน y เลื่อนลง ส่วนถัดไปจะตรวจสอบว่ามีการบันทึกตัวเลขในผลลัพธ์หรือไม่ หากมี ผลลัพธ์และบันทึก_number จะถูกรีเซ็ตเป็น 0 ข้อความ "CLEAR VALUES " จะถูกพิมพ์เหนือฟิลด์ผลลัพธ์ และหน้าจอจะถูกล้างด้วยเคอร์เซอร์กลับไปที่ตำแหน่งเริ่มต้น
if (p.y 60){ // แถวแรกของสี่เหลี่ยม
ถ้า (หน้าx < 60)
user_selection = 7;
อื่นถ้า (หน้าx < 120)
user_selection = 8;
อื่น ๆ ถ้า (หน้า x < 180)
user_selection = 9;
อย่างอื่น user_selection = 14;
} else if (p.y 125){ // แถวที่สองของสี่เหลี่ยม
ถ้า (หน้า x < 60)
user_selection = 4;
อื่น ๆ ถ้า (หน้า x < 120)
user_selection = 5;
อื่น ๆ ถ้า (หน้า x < 180)
user_selection = 6;
อย่างอื่น user_selection = 13;
} else if (p.y 190){ // แถวที่สามของช่องสี่เหลี่ยม
ถ้า (หน้า x < 60)
user_selection = 1;
อื่น ๆ ถ้า (หน้า x < 120)
user_selection = 2;
อื่น ๆ ถ้า (หน้า x < 180)
user_selection = 3;
อย่างอื่น user_selection = 12;
} else if (py > 255){ // แถวที่สี่ของสี่เหลี่ยม
ถ้า (หน้า x < 60)
user_selection = 15;
อื่นถ้า (หน้าx < 120)
user_selection = 0;
อื่น ๆ ถ้า (หน้า x < 180)
user_selection = 10;
อย่างอื่น user_selection = 11;
}
}อื่น{
user_selection = 16; // user_selection ถูกตั้งค่าเป็น 16 (ไม่มีตัวแปร)
}
}
เป็นส่วนที่กำหนดว่าปุ่มใดถูกเลือก เริ่มจากแถวบนสุดของสี่เหลี่ยมจัตุรัสและลงท้ายด้วยแถวล่าง Arduino จะค้นหาตำแหน่งที่หน้าจอถูกกดจริงๆ จากนั้นกำหนดตัวเลขให้กับสี่เหลี่ยมจัตุรัสและบันทึกตัวเลขนั้นลงใน user_selection ตัวเลข 0-9 ตรงกับตัวเลขกำลังสอง ตัวเลข 11-15 ตรงกับตัวถูกดำเนินการและกำลังสองที่ชัดเจน และหมายเลข 10 ตรงกับเครื่องหมายกำลังสอง หากไม่ได้เลือกสี่เหลี่ยมจัตุรัส user_selection จะถูกตั้งค่าเป็น 16 ซึ่งจะทำให้การวนซ้ำเริ่มต้นใหม่อีกครั้ง (ดูฟังก์ชันวนซ้ำ)
ขั้นตอนที่ 7: สนุกกับโครงการที่เสร็จแล้วของคุณ
ที่นั่นคุณมีมัน! ตอนนี้คุณมีเครื่องคำนวณหน้าจอสัมผัสที่สามารถทำการบวก ลบ คูณ และหารได้ โปรเจ็กต์นี้เปลี่ยนวิธีที่ฉันคิดว่าเครื่องคิดเลขทำงาน ขณะที่ฉันทำโครงงานนี้ ฉันจำได้ว่าบอกผู้สอนในชั้นเรียนว่า "ฉันจะไม่มองเครื่องคิดเลขแบบเดิมอีกต่อไป!" ฟังก์ชันที่คุณในฐานะผู้ใช้คิดว่าง่ายจะค่อนข้างยากเมื่อคุณอยู่เบื้องหลังคอมพิวเตอร์ที่พยายามเลียนแบบความคิดของคุณ ฉันหวังว่าคุณจะสนุกกับโครงการนี้ และฉันหวังว่าความคิดของคุณเกี่ยวกับวิธีการทำงานของเครื่องคิดเลขก็เปลี่ยนไปเช่นกัน!
นี่คือรหัสทั้งหมดเพื่อความสะดวกของคุณ มันเต็มไปด้วยความคิดเห็น ดังนั้นหากคุณมีปัญหาใดๆ พวกเขาควรแสดงให้คุณเห็นว่าแต่ละบรรทัดทำอะไร
แนะนำ:
Turn-a-HP49G-Graphing-Calculator-into-an-Intervalomet สำหรับ Canon Eos: 4 ขั้นตอน
Turn-a-HP49G-Graphing-Calculator-into-an-Intervalomet for Canon Eos: Disparador automático y manual para Canon Eos con HP49GPor Abraham [email protected]://www.flickr.com /photos/cacholongo/ส่วนประกอบที่จำเป็น:2n3904,Resistencia 2,2k;Diodo 1n4001,Cable de conexiÃÂ&su
Arduino Flappy Bird - Arduino 2.4" TFT Touchscreen SPFD5408 โครงการเกมนก: 3 ขั้นตอน
Arduino Flappy Bird | Arduino 2.4" TFT Touchscreen SPFD5408 Bird Game Project: Flappy Bird เป็นเกมที่ได้รับความนิยมมากเกินไปในช่วงไม่กี่ปีที่ผ่านมา และหลายคนสร้างมันขึ้นมาในแบบของพวกเขาเอง ฉันเองก็สร้าง Flappy Bird เวอร์ชันของฉันด้วย Arduino และ 2.4" TFT ราคาถูก หน้าจอสัมผัส SPFD5408 เริ่มกันเลย
BluBerriSix - บทช่วยสอน TFT TouchScreen / Arduino: 12 ขั้นตอน (พร้อมรูปภาพ)
BluBerriSix - บทช่วยสอน TFT TouchScreen / Arduino: 2019 เป็นวันครบรอบ 20 ปีของ RIM Blackberry 850! สิ่งประดิษฐ์เล็กๆ น้อยๆ ของแคนาดานี้ได้เปลี่ยนวิธีการสื่อสารของโลก หายไปนาน แต่มรดกยังคงอยู่! ในคำแนะนำนี้ คุณจะได้เรียนรู้วิธีใช้ MCUfriend.com 2.4" TFT ดิส
Flush Wall-Mounted Raspberry Pi Touchscreen: 8 ขั้นตอน (พร้อมรูปภาพ)
หน้าจอสัมผัส Raspberry Pi แบบติดผนังแบบฟลัช: Raspberry Pi 7" หน้าจอสัมผัสเป็นเทคโนโลยีที่น่าทึ่งและราคาไม่แพง ฉันตัดสินใจว่าต้องการติดตั้งอันหนึ่งเข้ากับผนังเพื่อใช้สำหรับระบบอัตโนมัติภายในบ้าน แต่ไม่มีการติดตั้ง DIY ใดที่ฉันพบทางออนไลน์ที่จัดการกับปัญหาวิธีการล้างการติดตั้งโดยไม่ต้องใช้
Arduino Uno: แอนิเมชั่นบิตแมปบน ILI9341 TFT Touchscreen Display Shield พร้อม Visuino: 12 ขั้นตอน (พร้อมรูปภาพ)
Arduino Uno: แอนิเมชั่นบิตแมปบน ILI9341 TFT Touchscreen Display Shield พร้อม Visuino: ILI9341 ที่ใช้ TFT Touchscreen Display Shields เป็น Display Shields ราคาประหยัดยอดนิยมสำหรับ Arduino Visuino ได้รับการสนับสนุนสำหรับพวกเขามาระยะหนึ่งแล้ว แต่ฉันไม่เคยมีโอกาสเขียนบทช่วยสอนเกี่ยวกับวิธีการใช้งาน ล่าสุดมีคนถามมาว่า