วันอาทิตย์ที่ 24 กุมภาพันธ์ พ.ศ. 2562

การใช้งาน 7 Segment กับ Arduino ตอนที่ 1 7 Segment หลักเดียว


void setup() {
  DDRD = 0xFF; // เซ็ตให้ขา 0 - 7 เป็นเอาต์พุต
  PORTD = 0xF9; // เซ็ตให้แสดงค่า 0xF9 ออกไป (แสดงเลข 1 ใน 7 Segment Comon Anode)
}

void loop() { }
หรือ
void setup() {
  DDRD = 0xFF; // เซ็ตให้ขา 0 - 7 เป็นเอาต์พุต
  PORTD = 0x06; // เซ็ตให้แสดงค่า 0xF9 ออกไป (แสดงเลข 1 ใน 7 Segment Comon Cathode)
}

void loop() { }
เมื่ออัพโหลดโค้ดลงไป ก็จะแสดงเลข 1 ออกทาง 7 Segment
หากต้องการแสดงเลขอื่นๆก็จะต้องทำแบบเดียวกัน คือ การพิจาณาแถบที่ต้องติด นำมาวางเป็นตาราง คิดเป็นเลขฐาน 2 แลัวแปลงเป็นเลขฐาน 16
แต่เพื่อความง่าย ผมได้คิดมาให้แล้ว และเอาลงอาร์เรย์ดังนี้
int num[] = { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F };
เวลาจะใช้งานก็ใช้คำสั่งเพียง PORTD = num[1]; ก็จะแสดงเลข 1 ออกมา และหากใช้เป็น PORTD = num[9]; ก็จะแสดงเลข 9 ออกมา ซึ่งโค้ดเต็มๆ คือ
int num[] = { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F };
void setup() {
  DDRD = 0xFF;
  PORTD = num[9];
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

มินิโปรเจค Arduino Calculator (แก้ไข)

 https://www.electronicshub.org/arduino-calculator/ #include <LiquidCrystal.h> ...