1. ฝึกต่อวงจรโดยใช้อุปกรณ์ 7-Segment Display บนเบรดบอร์ด และใช้งานร่วมกับบอร์ด Arduino
2. เขียนโปรแกรม Arduino เพื่อแสดงตัวเลข โดยใช้อุปกรณ์ 7-Segment Display
รายการอุปกรณ์
1. แผงต่อวงจร (เบรดบอร์ด) 1 อัน
2. บอร์ด Arduino (ใช้แรงดัน +5V) 1 บอร์ด
3. อุปกรณ์ 7-Segment Display 1 ตัว
4. ปุ่มกดแบบสี่ขา 1 ตัว
5. ตัวต้านทาน 330Ω หรือ 470Ω 7 ตัว
6. ตัวต้านทาน 1kΩ 1 ตัว
7. ตัวต้านทาน 10kΩ 1 ตัว
8. ทรานซิสเตอร์ NPN เบอร์ PN2222A 1 ตัว
9. สายไฟสําหรับต่อวงจร 1 ชุด
ขั้นตอนการทดลอง
2. ต่อตัวต้านทาน 330Ω หรือ 470Ω จํานวน 7 ตัว แบบอนุกรมกับขา a, b, c, d, e, f, g แต่ละขาของ อุปกรณ์ 7-Segment Display ตามผังวงจรในรูปที่ 3.2.1
3. ต่อขา CC (Common Cathode) ไปยัง Gnd ของวงจร
4. เชื่อมต่อขา D3, D4, D5, D6, D7, D8, D9 ของบอร์ด Arduino ไปยังขา a, b, c, d, e, f, g ของ อุปกรณ์ 7-Segment Display (ผ่านตัวต้านทาน 330Ω หรือ 470Ω ที่ต่ออนุกรมอยู่สําหรับแต่ละขา)
5. เขียนโค้ดตามตัวอย่างโดยใช้ Arduino IDE แล้วทําขั้นตอนคอมไพล์และอัพโหลดโปรแกรมไปยังบอร์ด Arduino
7. แก้ไขโค้ดสําหรับ Arduino ให้สามารถแสดงตัวเลขตั้งแต่ 0 ถึง 9 แล้ววนซ้ํา โดยเว้นระยะเวลาในการ เปลี่ยนเป็นตัวเลขถัดไปประมาณ 1 วินาที
โค้ด Arduino Sketch
const byte SEVEN_SEG[7] = {3,4, 5, 6, 7 ,8, 9};
void setup() {
// put your setup code here, to run once:
for (int i = 0; i < 7; i++) {
pinMode(SEVEN_SEG[i], OUTPUT);
digitalWrite(SEVEN_SEG[i], HIGH);
}
Serial.begin(9600);
}
int a=0;
byte N[10] = { B1111110, B0110000, B1101101, B1111001, B0110011, B1011011, B1011111, B1110000, B1111111, B1111011};
void loop() {
// put your main code here, to run repeatedly:
displayLED(a);
a++;
if(a>9){a=0;}
delay(1000);
Serial.println(a);
}
void displayLED(int j){
byte t=N[j];
for(int i=6;i>=0;i--){
digitalWrite(SEVEN_SEG[i], t & 1);
Serial.print(i);
Serial.print(" ");
Serial.println(t & 1,BIN);
t >>= 1;
}
}

โค้ด Arduino Sketch
const byte SEVEN_SEG[7] = {3,4, 5, 6, 7 ,8, 9};
void setup() {
// put your setup code here, to run once:
pinMode(10, INPUT);
for (int i = 0; i < 7; i++) {
pinMode(SEVEN_SEG[i], OUTPUT);
digitalWrite(SEVEN_SEG[i], HIGH);
}
}
int a=0;
byte N[10] = { B1111110, B0110000, B1101101, B1111001, B0110011, B1011011, B1011111, B1110000, B1111111, B1111011};
void loop() {
// put your main code here, to run repeatedly:
int SW = digitalRead(2);
if(SW == LOW){
digitalWrite(10, 1);
} else {
digitalWrite(10, 0);
}
displayLED(a);
a++;
if(a>9){a=0;}
delay(1000);
Serial.println(a);
}
void displayLED(int j){
byte t=N[j];
for(int i=6;i>=0;i--){
digitalWrite(SEVEN_SEG[i], t & 1);
Serial.print(i);
Serial.print(" ");
Serial.println(t & 1,BIN);
t >>= 1;
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น