สารบัญ:

ออแกไนเซอร์เดสก์ท็อปพร้อม LCD: 4 ขั้นตอน
ออแกไนเซอร์เดสก์ท็อปพร้อม LCD: 4 ขั้นตอน

วีดีโอ: ออแกไนเซอร์เดสก์ท็อปพร้อม LCD: 4 ขั้นตอน

วีดีโอ: ออแกไนเซอร์เดสก์ท็อปพร้อม LCD: 4 ขั้นตอน
วีดีโอ: วิธีตั้งค่าจอแยก เวลาใช้งานต่อหลายหน้าจอบนคอม ปรับแบบไหนดี ผ่านสาย HDMI, USB-C, DP, VGA 2024, กรกฎาคม
Anonim
Image
Image

**กำลังแก้ไข**

สำหรับโครงการ HKU arduino ฉันตัดสินใจสร้างออร์กาไนเซอร์เดสก์ท็อปที่มีหน้าจอ LCD ที่แสดงคำพูดสร้างแรงบันดาลใจเพื่อรับคุณเมื่อคุณหมุนพอตมิเตอร์!

ฉันจะครอบคลุมเนื้อหาทางเทคนิคของ Arduino เป็นส่วนใหญ่ ตราบใดที่คุณมีกล่องไม้เพื่อซ่อน Arduino และ LCD ของคุณใน oganisor ส่วนตัวของคุณในรูปแบบใดก็ได้ที่ต้องการ

สิ่งที่คุณต้องการ

  • *arduino uno
  • มิเตอร์หม้อ
  • *สาย prottyping ชาย
  • *โมดูล LCD !พร้อมเครื่องอ่านการ์ด SD! (ฉันได้ arduino tft LCD)
  • *การ์ดไมโคร SD
  • * ไม้ (ฉันนำลิ้นชักขนาดเล็กเก่ากลับมาใช้ใหม่และใช้ชิ้นส่วนไม้สำรอง อย่างน้อยต้องสร้างกล่องเล็ก ๆ เพื่อซ่อน Arduino ของคุณ!

ขั้นตอนที่ 1: การตั้งค่า Potmeter บน Arduino

การตั้งค่า Potmeter บน Arduino
การตั้งค่า Potmeter บน Arduino

ต่อมิเตอร์หม้อตามภาพ

เพื่อให้มิเตอร์หม้อเริ่มทำงาน

คุณจะต้องเริ่มต้นด้วยตัวแปรบางตัวที่ด้านบนของภาพร่างก่อนการตั้งค่า:

รหัส:

const int analogInPin = A0; // พินอินพุตแบบอะนาล็อกที่ต่อโพเทนชิออมิเตอร์

int sensorValue = 0; // ค่าที่อ่านจาก pot int outputValue = 0; // ค่าที่ส่งออกไปยัง PWM (แอนะล็อกเอาต์)

ในรูปที่ 2 ฉันแสดงให้เห็นว่า potmeter ถูกแมปใน void loop อย่างไร

รหัส:

// อ่านค่าอนาล็อก:

sensorValue = analogRead (analogInPin); // แมปกับช่วงของแอนะล็อกเอาท์: outputValue = map(sensorValue, 0, 1023, 0, 255); สตริง stuffToPrint = สตริง (outputValue); // เปลี่ยนค่าแอนะล็อกเอาท์:

stuffToPrint.toCharArray (พิมพ์ออกมา, 9); // ข้อความคงที่ myScreen.setTextSize(1);

Serial.print("เซ็นเซอร์ = "); Serial.print(เซ็นเซอร์ค่า); Serial.print("\t เอาท์พุท = "); Serial.println (เอาต์พุตค่า);

ล่าช้า (50);

แมปข้อมูลแอนะล็อกจากพอตมิเตอร์เป็นช่วง 0 ถึง 255 เราจะใช้ช่วงนี้เพื่อควบคุมสไลด์โชว์ LCD

หากคุณต้องการความช่วยเหลือในการตั้งค่า potmeter; ฉันใช้โค้ดจากบทช่วยสอนที่เป็นประโยชน์นี้ หมุดเหมือนกันทุกประการ และจะทำงานกับการตั้งค่า LCD ในขั้นตอนต่อไป

www.toptechboy.com/arduino/lesson-11-arduin…

ขั้นตอนที่ 2: การตั้งค่า LCD

การตั้งค่า LCD
การตั้งค่า LCD

ตั้งค่าหมุดตามตัวอย่างด้านบน

เมื่อทำถูกต้องแล้ว หน้าจอของคุณจะสว่างเป็นสีขาว

หากคุณต้องการความช่วยเหลือเพิ่มเติมหรือต้องการใช้โค้ดตัวอย่างเพื่อทดสอบการแสดงผล คุณสามารถดูบทแนะนำอย่างเป็นทางการสำหรับโมดูลนี้และเป็นตัวอย่างโค้ดได้ที่นี่

เราจะใช้ "การวาดภาพจากการ์ด SD" บางส่วนในขั้นตอนต่อไป

ขั้นตอนที่ 3: การตั้งค่าสไลด์โชว์

การตั้งค่าสไลด์โชว์
การตั้งค่าสไลด์โชว์

ตอนนี้เราได้ตั้งค่า Potmeter และ LCD แล้ว เราสามารถตั้งค่า "สไลด์โชว์" โดยใช้ค่าที่แมปของ potmeter ได้

การใช้ช่วง 0 ถึง 255 เราสามารถระบุช่วงที่เราสามารถเรียกใช้ Arduino เพื่อแสดงเนื้อหาบางอย่างบน LCD

ตัวอย่างแรกดังแสดงในภาพ:

if (outputValue <51) { //range one if (rangeOne == true) { rangeTwo = true; myScreen.setRotation(90); myScreen.background(0, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text("สวัสดี เยี่ยมมาก", 10, 50); myScreen.text("หมุนพิน > เป็น", 10, 60); myScreen.text("ขอกำลังใจ", 10, 70); rangeOne = เท็จ;

หาก potmeter เปลี่ยนเป็นช่วงที่ต่ำกว่า 51 หน้าจอพร้อมจอแสดงผล (ในโหมดแนวตั้ง = หมุน 90) ข้อความบางส่วน

เพื่อให้สามารถแสดงภาพได้ ตรวจสอบให้แน่ใจว่าพิน SD CS ของคุณถูกกำหนดอย่างถูกต้อง มิฉะนั้น Arduino จะล้มเหลวในการเริ่มต้น SD (เพื่อให้แน่ใจว่าได้ตรวจสอบสายไฟของคุณแล้ว !!)

หากคุณต้องการตรวจสอบพินของ LCD คุณสามารถดูคู่มืออย่างเป็นทางการภายใต้ "การเชื่อมต่อหน้าจอ"

ฉันกำหนดพิน SD CS เป็น 4 ตอนนี้เพราะฉันผสมสายเข้าด้วยกัน! - ฉันยินดีที่จะแบ่งปัน oopsie เล็กน้อยนั้นเพราะมันจะช่วยคุณประหยัดเวลาในการค้นหาเว็บสำหรับข้อผิดพลาด "Failed to initialize" ซึ่งในบางฟอรัมก็บอกว่าการแก้ไขคือต้องมีการ์ด SD บางรุ่น ดังนั้นควรตรวจสอบสายไฟก่อนซื้อการ์ด SD ใหม่!!

ขั้นตอนที่ 4: ตัวอย่างโค้ดแบบเต็ม

#รวม

#include // ไลบรารีเฉพาะฮาร์ดแวร์ #include

#define SD_CS 4 #define CS 10 #define DC 9 #define รีเซ็ต 8

const int analogInPin = A0; // พินอินพุตแบบอะนาล็อกที่ต่อโพเทนชิออมิเตอร์

int sensorValue = 0; // ค่าที่อ่านจาก pot int outputValue = 0; // ค่าที่ส่งออกไปยังบูลบูล PWM (แอนะล็อกเอาต์) rangeOne = true; ช่วงบูลทู = จริง; บูล rangeThree = true; บูล rangeFour = true; bool rangeFive = จริง;

TFT myScreen = TFT (CS, DC, รีเซ็ต);

รูปภาพรูปภาพ; const ถ่านพิมพ์[9];

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); myScreen.begin(); // พยายามเข้าถึงการ์ด SD Serial.print("กำลังเตรียมใช้งานการ์ด SD…"); ถ้า (!SD.begin(SD_CS)) { Serial.println("ล้มเหลว!"); กลับ; } Serial.println("ตกลง!");

// เริ่มต้นและล้างหน้าจอ GLCD myScreen.begin(); myScreen.background(255, 255, 255);

} void loop(){ // อ่านค่าอนาล็อก: sensorValue = analogRead(analogInPin); // แมปกับช่วงของแอนะล็อกเอาท์: outputValue = map(sensorValue, 0, 1023, 0, 255); สตริง stuffToPrint = สตริง (outputValue); // เปลี่ยนค่าแอนะล็อกเอาท์:

stuffToPrint.toCharArray (พิมพ์ออกมา, 9); // ข้อความคงที่ myScreen.setTextSize(1);

Serial.print ("เซ็นเซอร์ = "); Serial.print(เซ็นเซอร์ค่า); Serial.print("\t เอาท์พุท = "); Serial.println (เอาต์พุตค่า);

ล่าช้า (50);

if (outputValue to", 10, 60); myScreen.text("get friendship.", 10, 70); rangeOne = false; } } if(outputValue > 52 && outputValue 102 && outputValue 154 && outputValue < 205){ / / range four if (rangeFour == true) { rangeThree = true; rangeFive = true; myScreen.setRotation(90); myScreen.background(255, 255, 255); // ล้างภาพหน้าจอ = myScreen.loadImage ("quote2.bmp"); //เขียนภาพบนหน้าจอ myScreen.image(image, 0, 0); myScreen.stroke(255, 255, 255); myScreen.text("I'm so proud", 10, 50); myScreen.text("ของคุณ!", 10, 60); rangeFour = false; } }

if(outputValue > 206 && outputValue

แนะนำ: