ค้นหาโค้ด

การใช้ LCD กับ Digispark USB เพื่อแสดงข้อความ | Robojax

การใช้ LCD กับ Digispark USB เพื่อแสดงข้อความ | Robojax

โปรเจกต์นี้สาธิตวิธีการเชื่อมต่อจอ LCD 1602 เข้ากับไมโครคอนโทรลเลอร์ Digispark เพื่อแสดงข้อความ นี่เป็นทักษะพื้นฐานในระบบฝังตัว ซึ่งมีประโยชน์สำหรับการสร้างจอแสดงผลแบบกำหนดเองสำหรับการใช้งานต่างๆ ขนาดที่เล็กและต้นทุนต่ำของ Digispark ทำให้เหมาะสำหรับโปรเจกต์ขนาดกะทัดรัด

ไอเดียโปรเจกต์:

  • สร้างนาฬิกาดิจิทัลอย่างง่าย
  • แสดงค่าจากเซนเซอร์ (อุณหภูมิ ความชื้น ฯลฯ)
  • สร้างตัวแสดงสถานะแบบกำหนดเองสำหรับโปรเจกต์ขนาดใหญ่
  • พัฒนาเกมพื้นฐานพร้อมการแสดงผลบนหน้าจอ

ฮาร์ดแวร์/ส่วนประกอบ

โปรเจกต์นี้ใช้จอ LCD 1602 (16 ตัวอักษร x 2 บรรทัด) (ในวิดีโอที่ 00:21) ไมโครคอนโทรลเลอร์ Digispark (รุ่น USB หรือ micro USB – การเดินสายไฟส่วนใหญ่เหมือนกัน แต่การเชื่อมต่อกับคอมพิวเตอร์แตกต่างกัน (ในวิดีโอที่ 00:34)) และสายจัมเปอร์ จอ LCD มีโมดูลสื่อสาร I2C (ในวิดีโอที่ 00:56) แบ็คไลท์ และโพเทนชิโอมิเตอร์สำหรับปรับความสว่างของหน้าจอ (ในวิดีโอที่ 01:31)

คู่มือการเดินสายไฟ

การเชื่อมต่อสายไฟมีดังนี้ (ในวิดีโอที่ 02:09):

  • ขา Ground ของ LCD ไปยังขา Ground ของ Digispark
  • ขา VCC ของ LCD ไปยังขา 5V ของ Digispark
  • ขา SDA ของ LCD ไปยังขา Pin 0 ของ Digispark
  • ขา SCL ของ LCD ไปยังขา Pin 1 ของ Digispark
%%WIRING%%

คำอธิบายโค้ด

โค้ด Arduino ใช้ไลบรารี LiquidCrystal สิ่งสำคัญคือคุณต้องระบุที่อยู่ I2C ของจอ LCD โดยใช้ตัวสแกน I2C (ในวิดีโอที่ 03:36) ที่อยู่นี้ (โดยทั่วไปเป็นค่าเลขฐานสิบหก เช่น 0x3F, 0x27 หรือ 0x38) ต้องกรอกลงในโค้ด (ในวิดีโอที่ 03:29) โค้ดยังกำหนดจำนวนคอลัมน์ (16) และแถว (2) ของจอ LCD (ในวิดีโอที่ 05:57) ฟังก์ชัน setup() เริ่มต้นการทำงานของจอ LCD และพิมพ์ข้อความเริ่มต้น ฟังก์ชัน loop() จะล้างจอ LCD พิมพ์ "RoboJax" บนบรรทัดแรก และ "Hello World!" บนบรรทัดที่สอง (ในวิดีโอที่ 06:54) โดยมีการหน่วงเวลาครึ่งวินาทีระหว่างการอัปเดตแต่ละครั้ง (ในวิดีโอที่ 07:46)


// ... (โค้ดอื่นๆ ถูกตัดออก) ...
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// ... (โค้ดอื่นๆ ถูกตัดออก) ...
//บรรทัดนี้กำหนดที่อยู่ I2C ของจอ LCD
lcd.begin(16, 2); //บรรทัดนี้กำหนดขนาดของจอ LCD
// ... (โค้ดอื่นๆ ถูกตัดออก) ...

โปรเจกต์สาธิตสด

วิดีโอสาธิตการคอมไพล์และการอัปโหลดโค้ดไปยัง Digispark ที่ประสบความสำเร็จ (ในวิดีโอที่ 08:20) จอ LCD แสดงข้อความที่ตั้งโปรแกรมไว้ ยืนยันการทำงานของวงจร (ในวิดีโอที่ 08:48)

บทต่างๆ

  • [00:01] บทนำ
  • [00:21] ภาพรวม LCD 1602
  • [01:06] การเชื่อมต่อฮาร์ดแวร์
  • [02:09] รายละเอียดการเดินสายไฟ
  • [02:53] ภาพรวมโค้ด
  • [03:27] การหาที่อยู่ I2C
  • [05:04] การอัปโหลดโค้ด
  • [06:54] คำอธิบายโค้ด: ฟังก์ชัน Loop
  • [08:20] การสาธิตสด
64-LCD1602 display for Arduino: basic code
ภาษา: C++
// LCD1602 Display for Arduino

// January 21, 2018 14:25 this example will work with a 1602 LCD 
// Code used for YouTube video for RoboJax channel
// Watch the video https://youtu.be/S4ya3Q7uhJs
// Video and other Arduino Tutorials http://robojax.com/learn/library


// January 21, 2018 14:25
// original source https://www.arduino.cc/en/Tutorial/HelloWorld
// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // RoboJax LCD1602 Test 
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  // RoboJax LCD1602 Test 
}

void loop() {
  // RoboJax LCD1602 Test 
    lcd.setCursor(0, 0);
    lcd.print("RoboJax LCD Test");
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print("Hello World!");


  delay(500);
  // RoboJax LCD1602 Test 
}

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

แหล่งข้อมูลและเอกสารอ้างอิง

ไฟล์📁

ไฟล์อื่น ๆ

  • Digistump Drivers
    Driver package for Digistump boards, including the Digispark. Contains USB drivers required to program Digistump development boards from the Arduino IDE.
    Digistump.Drivers.zip