การใช้ 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
คำอธิบายโค้ด
โค้ด 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] การสาธิตสด
// 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
}
สิ่งที่คุณอาจต้องการ
-
อีเบย์
-
อาลีเอ็กซ์เพรสPurchase Digispark Attiny85 from AliExpresss.click.aliexpress.com
แหล่งข้อมูลและเอกสารอ้างอิง
-
ภายนอกATtiny88 datasheet (PDF)ww1.microchip.com
ไฟล์📁
ไฟล์อื่น ๆ
-
Digistump DriversDriver package for Digistump boards, including the Digispark. Contains USB drivers required to program Digistump development boards from the Arduino IDE.
Digistump.Drivers.zip