วันศุกร์ที่ 19 กันยายน พ.ศ. 2557

การทดลองที่ 4.4 สัญญาณอินพุต-แอนะล็อกและการใช้งานร่วมกับบอร์ด Arduino


การทดลองที่ 4.4 สัญญาณอินพุต-แอนะล็อกและการใช้งานร่วมกับบอร์ด Arduino

วัตถุประสงค์

1. ฝึกต่อวงจรเพื่อสร้างสัญญาณแอนะล็อก และป้อนให้บอร์ด Arduino เพื่อใช้เป็นสัญญาณอินพุต
2. เขียนโปรแกรมสําหรับ Arduino เพื่อเปิด/ปิด LED ตามสภาวะแสง

รายการอุปกรณ์

1. แผงต่อวงจร (เบรดบอร์ด)    1 อัน
2. บอร์ด Arduino (ใช้แรงดัน +5V)   1 บอร์ด
3. ตัวต้านทานปรับค่าได้ 10kΩ หรือ 20kΩ  1 ตัว
4. ตัวต้านทานไวแสง LDR    1 ตัว
5. ไดโอดเปล่งแสงขนาด 5 มม.   1 ตัว
6. ตัวต้านทาน 330Ω หรือ 470Ω   1 ตัว
7. ตัวต้านทาน 10kΩ    1 ตัว
8. สายไฟสําหรับต่อวงจร    1 ชุด
9. มัลติมิเตอร์     1 เครื่อง



ขั้นตอนการทดลอง


1. ต่อวงจรตามผังวงจรในรูปที่ 4.4.1 บนเบรดบอร์ด ร่วมกับบอร์ด Arduino โดยใช้แรงดันไฟเลี้ยง VCC=+5V และ Gnd จากบอร์ด Arduino เท่านั้น (ต่อวงจรบนเบรดบอร์ดก่อน จากนั้นจึงเชื่อมต่อ สัญญาณอนิพุตและเอาต์พุตของบอร์ด Arduino เมื่อตรวจสอบความถูกต้อง แล้วจึงป้อนแรงดันไฟ เลี้ยงและ Gnd ตามลําดับ) 


2. เขียนโปรแกรมตามตัวอย่างโค้ดที่กําหนดให้ และทําขั้นตอน Upload จากนั้นให้ทดลองหมุนปรับค่าที่ ตัวต้านทานปรับค่าได้ หรือปิดบริเวณส่วนรบัแสงของ LDR เปิดหน้าต่าง Serial Monitor ของ Arduino IDE แล้วสังเกตข้อความที่ถูกส่งมาจากบอร์ด Arduino 



const byte LDR_PIN = A1; //from LDR
const byte VREF_PIN = A2 ; // from Trimpot
const byte LED1_PIN = 5; //to LED1

void setup () {
  pinMode ( LED1_PIN, OUTPUT ) ;
  digitalWrite (LED1_PIN, LOW );
  analogReference (DEFAULT) ;
  Serial.begin (9600 ) ; // open serial port
}
void loop () {
  //read analog values
  int value1 = analogRead (LDR_PIN ) ;
  int value2 = analogRead (VREF_PIN) ;
  // send message to serial port
  Serial.print ("Read " ) ;
  Serial.print (value1, DEC );
  Serial.print ( ", ") ;
  Serial.println (value2, DEC ) ;
  
  if(value1<value2){
      digitalWrite (LED1_PIN, HIGH );
  }else{
      digitalWrite (LED1_PIN, LOW );
  }
  delay (200);
  
  
   
}





3. ปรับแก้โค้ดตัวอย่าง เพื่อให้วงจรและบอร์ด Arduino แสดงพฤติกรรมดังนี้ ถ้าปิดส่วนรับแสงของตัว ต้านทานไวแสง LDR หรือมปีริมาณแสงนอ้ยลง จะทําให้ LED1 “สว่าง” แต่ถ้า LDR ได้รับแสงตาม สภาวะแสงปรกติ หรือได้รับปริมาณแสงมาก จะทําให้ LED1 “ไม่ติด” 

4. เขียนรายงานการทดลอง ซงึ่ประกอบด้วยคําอธบิายการทดลองตามขั้นตอน ผงัวงจรที่ถูกต้อง ครบถ้วนตามหลักไฟฟา้ (ให้วาดด้วยโปรแกรม Cadsoft Eagle) รูปถ่ายของการตอ่วงจรบน เบรดบอร์ด โค้ด Arduino ที่ได้ทดลองจรงิพร้อมคาํอธิบายโค้ด/การทํางานของโปรแกรมโดย ละเอียด และตอบคําถามทา้ยการทดลอง



ผลการทดลอง



ภาพวงจรที่ต่อตามผังวงจรที่ออกแบบ







คำถามท้ายการทดลอง



1. ค่าที่ได้ (เลขจํานวนเต็ม) จากบอร์ด Arduino สําหรับสญัญาณอินพุตที่ขา A1 มีค่าอยู่ในช่วงใด (ต่ําสุด-สูงสุด) 

2. จะต้องปรับแก้โค้ดอย่างไรสําหรับบอร์ด Arduino ถ้าจะทําให้ LED1 มีความสว่างมากน้อยได้ตาม ปริมาณแสงที่ได้รับ เช่น ถ้า LDR ได้แสงสวา่งน้อย จะทําให้ LED1 สว่างมาก แต่ถ้า LDR ได้แสง สว่างมาก จะทําให้ LED1สว่างน้อย หรือไม่ติดเลย

วันพฤหัสบดีที่ 11 กันยายน พ.ศ. 2557

การทดลองที่ 4.1 การต่อวงจรไอซีเปรียบเทียบแรงดัน

การทดลองที่ 4.1 การต่อวงจรไอซีเปรียบเทียบแรงดัน

วัตถุประสงค์
1. ฝึกต่อวงจรเพื่อสร้างแรงดันอ้างอิง โดยใช้ตัวต้านทานปรับค่าได้ (Trimpot / Potentiometer)  แบบ 3 ขา
2. ฝึกต่อวงจรโดยใช้ไอซีที่มีตัวเปรียบเทียบแรงดัน (Voltage Comparator) อยู่ภายใน เช่น เบอร์ LM393N (ตัวถังแบบ PDIP-8)

รายการอุปกรณ์
1. แผงต่อวงจร (เบรดบอร์ด)     1 อัน
2. ไอซีเปรียบเทียบแรงดัน เบอร์ LM393N   1 ตัว (สามารถศึกษา Data Sheet ได้ที่นี่)
3. ตัวต้านทานปรับค่าได้แบบสามขา ขนาด 10kΩ หรือ 20kΩ 1 ตัว (สามารถศึกษา Data Sheet ได้ที่นี่)
4. ตัวต้านทาน 4.7kΩ หรือ 10kΩ (สําหรับ Pull-Up)  1 ตัว
5. ตัวต้านทาน 330Ω หรือ 470Ω    1 ตัว
6. ไดโอดเปล่งแสง (LED) ขนาด 5 มม.   1 ตัว
7. สายไฟสําหรับต่อวงจร     1 ชุด
8. มัลติมิเตอร์      1 เครื่อง
9.แหล่งจ่ายแรงดันควบคุม     1 เครื่อง
10. เครื่องกําเนิดสัญญาณแบบดิจิทัล    1 เครื่อง
11.ออสซิลโลสโคปแบบดิจิทัล    1


ขั้นตอนการทดลอง
1. ต่อวงจรโดยใช้ตัวต้านทานปรับค่าได้ ตามผังวงจรในรูปที่ 4.1.1 แล้วป้อนแรงดันไฟเลี้ยง VCC=+5V และ Gnd จากแหล่งจ่ายแรงดันควบคุม ไปยังวงจรบนเบรดบอร์ด



2. ใช้มัลติมิเตอร์วัดแรงดันระหว่างจุด Vx กับ Gnd และทดลองหมุนปรับค่าที่ตัวต้านทาน สังเกตและจด บันทึกค่าแรงดันต่ำสุดและแรงดันสูงสุดที่วัดได้

3. ต่อวงจรบนเบรดบอร์ด โดยใช้ไอซี LM393N ตามผังวงจรในรูปที่ 4.1.2 (เลือกใช้ตัวเปรียบเทียบ แรงดันที่อยู่ภายในตัวใดตัวหนึ่งจากที่มีอยู่สองตัว)




4. สร้างสัญญาณแบบสามเหลี่ยม (Triangular Wave) ให้อยู่ในช่วงแรงดัน 0V ถึง 5V โดยใช้เครื่อง กําเนิดสัญญาณ (Function Generator) โดยกําหนดให้ Vpp = 5V (Peak-to-Peak Voltage) และ แรงดัน Offset = 2.5V และความถี่ f = 1kHz เพื่อใช้เป็นสัญญาณอินพุต Vin แล้วนําไปป้อนให้ขา V- ของตัวเปรียบเทียบแรงดันที่ได้เลือกใช้

5. ใช้ออสซิลโลสโคปวัดสัญญาณ โดยใช้ช่อง A สําหรับวัดสัญญาณที่มาจากเครื่องกําเนิดสัญญาณ (Vin) และช่อง B สําหรับวัดสัญญาณเอาต์พุต (Vout) ที่ขาของตัวเปรียบเทียบแรงดันที่ได้เลือกใช้ (บันทึกภาพที่ได้จากออสซิลโลสโคป เพื่อใช้ประกอบการเขียนรายงานการทดลอง)

6. ทดลองหมุนปรับค่าที่ตัวต้านทานปรับค่าได้ วัดแรงดัน Vref และสังเกตการเปลี่ยนแปลงค่า Duty Cycle ของรูปคลื่นสญัญาณเอาต์พุต

7. สลับขาสญัญาณอินพุตที่ขา V+ และ V- (ตามผังวงจรในรูปที่ 4.1.3) แลว้ทําขั้นตอนที่ 6 ถึง 7 ซ้ํา


8. เขียนรายงานการทดลอง ซึ่งประกอบด้วย คําอธิบายการทดลองตามขั้นตอน ผังวงจรที่ถูกต้อง ครบถ้วนตามหลักไฟฟ้า (ให้วาดด้วยโปรแกรม Cadsoft Eagle) รูปถ่ายของการตอ่วงจรบน เบรดบอร์ด รูปคลื่นสัญญาณที่วัดได้จากออสซิลโลสโคปตามโจทย์การทดลอง และตอบคําถาม ท้ายการทดลอง



รูปการทดลอง




รูป 4.1.1ผังวงจรสำหรับต่อวงจรที่ใช้ตัวต้านทานปรับค่าได้













รูป 4.1.2 ผังวงจรสำหรับต่อวงจรเปรียบเทียบแรงดัน(Vin ต่อที่ขา V-)





กราฟ















ผลการทดลอง


คำถามท้ายการทดลอง
1. ระดับของแรงดันอ้างอิง (Vref) ที่ได้จากตัวต้านทานปรับค่าได้ เพื่อใช้ในการเปรียบเทียบแรงดัน  มีความสัมพันธอ์ย่างไรกับระดับของแรงดันเอาต์พุต (Vout) ที่ได้จากตัวเปรียบเทียบแรงดัน และ ค่า Duty Cycle ของสัญญาณเอาต์พุตที่วัดได้ จงอธิบาย

Vref เป็นตัวเปรียบเทียบกับ Vin ถ้า Vref > Vin Vout จะได้ Logic High

2. ถ้าจะให้สญัญาณเอาต์พุต Vout มีค่า Duty Cycle ประมาณ 50% จะต้องหมุนปรับค่าที่ตัว ต้านทานปรับค่าได้ ให้มีแรงดัน Vref ประมาณเท่าใด

3. เมื่อหมุนปรับค่าที่ตัวต้านทานปรับค่าได้ จากซ้ายสุดไปขวาสุด จะได้ค่า Vref อยู่ในช่วง 0 ถึง 5.1 โวลต์ และได้ค่า Duty Cycle ของสัญญาณเอาต์พุตอยู่ในช่วง 0 ถึง 83.3 เปอร์เซ็นต์

วันพฤหัสบดีที่ 4 กันยายน พ.ศ. 2557

การทดลองที่ 3.2 การใช้อุปกรณ์ 7-Segment Display เพื่อแสดงตัวเลข

การทดลองที่ 3.2 การใช้อุปกรณ์ 7-Segment Display เพื่อแสดงตัวเลข

วัตถุประสงค์

- ฝึกต่อวงจรโดยใช้อุปกรณ์ 7-Segment Display บนเบรดบอร์ด และใช้งานร่วมกับบอร์ด Arduino
- เขียนโปรแกรม Arduino เพื่อแสดงตัวเลข โดยใช้อุปกรณ์ 7-Segment Display

รายการอุปกรณ์

- แผงต่อวงจร (เบรดบอร์ด)    1 อัน
- บอร์ด Arduino (ใช้แรงดัน +5V)   1 บอร์ด
- อุปกรณ์ 7-Segment Display   1 ตัว
- ปุ่มกดแบบสี่ขา     1 ตัว
- ตัวต้านทาน 330? หรือ 470?   7 ตัว
- ตัวต้านทาน 1k?      1 ตัว
- ตัวต้านทาน 10k?     1 ตัว
- ทรานซิสเตอร์ NPN เบอร์ PN2222A  1 ตัว
- สายไฟสําหรับต่อวงจร    1

ขั้นตอนการทดลอง

1. ศึกษาการใช้งาน และตําแหนง่ของขาต่างๆ ของอุปกรณ์ 7-Segment Display (แบบ Common-                  Cathode) จากเอกสาร (ดาต้าชีทของผู้ผลิต) วาดรูปอุปกรณ์ ระบุขาต่างๆ และการกําหนดสถานะ              LOW หรือ HIGH ที่ขาเหล่านั้น เพื่อให้สามารถแสดงตัวเลขในแต่ละกรณีได้ระหว่าง 0 ถึง 9
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? ที่ต่ออนุกรมอยู่)
5. เขียนโค้ดตามตัวอย่างโดยใช้ Arduino IDE แล้วทําขั้นตอนคอมไพล์และอัพโหลดโปรแกรมไปยัง           บอร์ด Arduino 8. ตรวจสอบความถูกต้องของวงจรบนเบรดบอร์ดก่อน เมื่อถูกต้องแล้ว จึงเชื่อมต่อ           +5V และ Gnd  จากบอร์ด Arduino ไปยังเบรดบอร์ด เพื่อใช้เป็นแรงดันไฟเลี้ยง (VCC และ GND)           และไม่ต้องใช้ แหล่งจ่ายควบคุมแรงดันจากภายนอก ให้ระวังการต่อสลับขั้วสายไฟ และระวังการต่อ       ถึงกันทางไฟฟ้า ของสายไฟทั้งสองเส้น



6. แก้ไขโค้ดสําหรับ Arduino ให้สามารถแสดงตัวเลขตั้งแต่ 0 ถึง 9 แล้ววนซ้ํา โดยเว้นระยะเวลาในการ       เปลี่ยนเป็นตัวเลขถัดไปประมาณ 1 วินาที




7. แก้ไขวงจร โดยต่อวงจรตามผังวงจรในรูปท่ี 3.2.3 ให้สังเกตว่า มีการต่อวงจรปุ่มกดแบบ Pull-up เพื่อ     ใช้เป็นอินพุต-ดิจิทัลให้บอร์ด Arduino และมีการต่อวงจรทรานซิสเตอร์แบบ NPN เพื่อใช้ควบคุม การ     ไหลของกระแสจากขา CC ของ 7-Segment Display ผ่านตัวทรานซิสเตอร์ NPN จากขา Collector (C)     ไปยังขา Emitter (E) และ GND ของวงจรตามลําดับ
 8. แก้ไขโค้ดสําหรับ Arduino เพื่อให้แสดงตัวเลขตั้งแต่ 0 ถงึ 9 แล้ววนซ้ํา โดยเว้นระยะเวลาในการ            เปลี่ยนเป็นตัวเลขถัดไปประมาณ 1 วินาที แต่จะแสดงผลกต็่อเมื่อกดปุ่ม PB1 ค้างไว้ แต่ถ้าไม่กด จะ        ต้องไม่แสดงผลตัวเลขใดๆ (ไม่ติด)







รูปที่ 3.2.1: ผังวงจรสําหรับเชื่อมต่อบอร์ด Arduino  (ตัวอย่างนี้ใช้ 7-Segment Display แบบ Common-Cathode)



รูปที่ 3.2.2: อุปกรณ์ 7-Segment Display แบบหนึ่งหลัก (ซ้าย) และแบบสองหลัก (ขวา)

รูปที่ 3.2.3: ผังวงจรสําหรับเชื่อมต่อบอร์ด Arduino  (ควบคุมการทํางาน 7-Segment Display ได้ด้วยทรานซิสเตอร์ NPN)








คำถามท้ายการทดลอง

    1. วงจรทรานซิสเตอร์ NPN ในวงจรนี้ใช้เพื่อวัตถุประสงค์ใด จงอธิบายหลักการทำงาน
        

          -  วงจรทรานซิสเตอร์ ทำหน้าที่ในการควบคุมการทำงานของ 7-Segment Display โดยเมื่อต้องการให้ 7-Segment Display ทำงานต้องกดปุ่มเพื่อทำให้กระแสไหลผ่านขา E และ C จาก 7-Segment ไปยัง GND  ของ 7-Segment และครบวงจรทำให้ไฟติด ในถ้าตรวกันข้ามหากเราไม่กดปุ่มจะไม่ทำให้ไม่เกิดแรงดันไปยังขา B ของทราน ก็จะไม่มีกระแสไหล






    2. ถ้าใช้ 7-Segment Display สองหลักพร้อมกัน เช่น เพื่อแสดงผลเป็นตัวเลข 00 ถึง 99 โดยเพิ่มขึ้นทีละหนึ่ง ทุกๆ 1 วินาที (1000 มิลลิวินาที) แล้ววนกลับไปที่ 00 ใหม่ได้ จะต้องออกแบบวงจรและเขียนโค้ด Arduino ควบคุมอย่างไร

โค้ดที่ใช้ในการเขียน

const byte SEVEN_SEG_I[7] = {1, 2, 3, 4, 5, 6, 7};
const byte SEVEN_SEG_II[7] = {8, 9, 10, 11, 12, 13, 14};
byte nCount = 0;
const byte DIGIT_7SEG[] = {
  B00111111, //0
  B00000110, //1
  B01011011, //2
  B01001111, //3
  B01100110, //4
  B01101101, //5
  B01111100, //6
  B00000111, //7
  B01111111, //8
  B01101111  //9
};

void setup() {
  for (int i = 0; i < 7; i++) {
    pinMode( SEVEN_SEG_I[i], OUTPUT );
    digitalWrite( SEVEN_SEG_I[i], HIGH );
  }
  for (int i = 0; i < 7; i++) {
    pinMode( SEVEN_SEG_II[i], OUTPUT );
    digitalWrite( SEVEN_SEG_II[i], HIGH );
  }
}

void loop() {
  delay(1000);
  displayNumber(0, nCount%10); 
  displayNumber(1, (nCount-(nCount%10))/10); 
  nCount = (nCount+1) % 100; 
}

void displayNumber(int num, byte value ) {
  if ( 0 <= value && value < 10 ) {
    byte value = DIGIT_7SEG[ value];
    if (num == 0) {
      for (int i = 0; i <  8; i++) {
        digitalWrite( SEVEN_SEG_I[i], (value & 1) );
        value >>= 1;
      }
    } else {
      for (int i = 0; i <  8; i++) {
        digitalWrite( SEVEN_SEG_II[i], (value & 1) );
        value >>= 1;
      }
    }
  }

}












การทดลองที่ 3.1 การต่อวงจรปุ่มกดและไดโอดเปล่งแสงสําหรับ Arduino



การทดลองที่ 3.1 การต่อวงจรปุ่มกดและไดโอดเปล่งแสงสําหรับ Arduino


วัตถุประสงค์
1. ฝึกต่อวงจรปุ่มกดและไดโอดเปล่งแสง (LED) และเชื่อมต่อกับขาอินพุต/เอาต์พุต-ดิจิทัลของบอร์ด Arduino
2. ฝึกเขียนโปรแกรมภาษา C/C++ เพื่อกําหนดพฤติกรรมการทํางานของบอร์ด Arduino ตามโจทย์ที่กำหนดให้

รายการอุปกรณ์
1.แผงต่อวงจร (เบรดบอร์ด)                         1 อัน
2. บอร์ด Arduino (ใช้แรงดันลอจิก +5V)    1 บอร์ด
3. ปุ่มกดแบบสี่ขา                                        2 ตัว
4. ไดโอดเปล่งแสงขนาด 5 มม.                   4 ตัว
5. ตัวต้านทาน 10kΩ                                  2 ตัว
6. ตัวต้านทาน 330Ω หรือ 470Ω               4 ตัว
7. สายไฟสําหรับต่อวงจร                             1 ชุด 


ขั้นตอนการทดลอง
1. ยังไม่ต้องเชื่อมต่อ +5V และ Gnd จากบอร์ด Arduino ไปยังเบรดบอร์ดเพื่อจ่ายเป็นแรงดันไฟเลี้ยง VCC และ GND  

2. ต่อวงจรปุ่มกดพร้อมตัวต้านทานแบบ Pull-up 10kΩ จํานวนสองชุด (PB1 และ PB2) บนเบรดบอร์ด แล้วนําไปต่อกับขา D2 และ D3 ของบอร์ด Arduino ตามลําดับ โดยใช้ลวดสายไฟสําหรับต่อวงจร  (ดูตามผังวงจรในรูปที่ 3.1.1) 

รูป 3.1.1
3. ต่อวงจรโดยใช้ไดโอดเปล่งแสง (LED) พร้อมตัวต้านทานแบบอนุกรม 330Ω หรือ 470Ω จํานวน  4 ชุด (LED1, LED2, LED3, LED4) บนเบรดบอร์ด แล้วนําไปต่อกับขา D4, D5, D6, D7, D8 ของ บอร์ด Arduino ตามลําดับ โดยใช้ลวดสายไฟสําหรับต่อวงจร (ดูตามผังวงจรในรูปที่ 3.1.1) 


4. เขียนโค้ดตามตัวอย่างโดยใช้ Arduino IDE แล้วทําขั้นตอนคอมไพล์และอัพโหลดโปรแกรมไปยังบอร์ด Arduino 


5. ตรวจสอบความถูกต้องของวงจรบนเบรดบอร์ดอีกครั้ง จากนั้นจึงเชื่อมต่อ +5V และ Gnd จากบอร์ด Arduino ไปยังเบรดบอร์ดเพื่อใช้เป็นแรงดันไฟเลี้ยง (VCC และ GND) ให้ระวังการต่อสลับขั้วสายไฟ และ ระวังการต่อถึงกันทางไฟฟ้าของสายไฟทั้งสองเส้น 

6. แก้ไขโค้ดใหแ้สดงพฤติกรรมการทํางานตามข้อกําหนดต่อไปนี้ ตรวจสอบและสาธิตความถูกต้องใน การทํางาน โดยใช้ฮาร์ดแวรจ์ริง 
  • 6.1 เมื่อเริ่มต้นทํางาน จะมี LED เพียงตัวเดียวที่อยู่ในสถานะ “ติด” (LED1) และที่เหลืออีก 3 ตัว (LED2, LED3, LED4) อยู่ในสถานะ “ดับ”   
  • 6.2 ถ้ากดปุ่ม PB1 แล้วปล่อยในแต่ละครั้ง จะทําให้ตําแหน่งของ LED ที่ “ติดเลื่อนไปทางขวาทีละ หนึ่งตําแหน่ง หรือวนกลับมาเริ่มต้นใหม่ทางซ้ายสุด 
( LED1 -> LED2 -> LED3 -> LED4 -> … ) 
  • 6.3 ถ้ากดปุ่ม PB2 แล้วปล่อยในแต่ละครั้ง จะทําให้ตําแหน่งของ LED ที่ “ติด” เลื่อนไปทางซ้ายทีละ หนึ่งตําแหน่ง หรือวนกลับมาเริ่มต้นใหม่ทางขวาสุด
 ( LED1 -> LED4 -> LED3 -> LED2 -> … ) 








7. แก้ไขโค้ดใหแ้สดงพฤติกรรมการทํางานตามข้อกําหนดต่อไปนี้ ตรวจสอบและสาธิตความถูกต้องใน การทํางาน 

  • 7.1 ใช้ LED ทั้ง 4 ตัว แสดงเลขในฐานสอง จํานวน 4 หลัก (4-bit binary number) ซึ่งรับสัญญาณ เอาต์พุตมาจากบอร์ด Arduino และกําหนดให้บิตที่มีค่า 0 หมายถึง LED “ดับ” และ บิตที่มีค่า เป็น 1 หมายถึง LED “ติด”และเมื่อเริ่มต้นทํางาน ให้แสดงค่าเป็น 0  
  • 7.2 เมื่อกดปุ่ม PB1 แล้วปล่อยแต่ละครั้ง จะทําให้ค่าเพิ่มขึ้นทีละหนึ่ง จาก 0000, 0001, 0010, …, 1111 ตามลําดับ แล้ววนกลับไปเริ่มต้นที่ 0000 ใหม่ได้ 
  • 7.3 แต่ถ้ากดปุ่ม PB2 จะทําให้ได้ค่าเป็น 0000 ทันที (หมายถงึ การรีเซตค่าเป็นศูนย์)