วันจันทร์ที่ 25 พฤษภาคม พ.ศ. 2558

วันที่ 6 ของการฝึกงานที่ FIBO

1.วันี้ผมทำโปรแกรมอดูโนทังวันเลยครับพี่ไนท์ให้งานมาคือมีโจทย์ว่ากดสวิทช์ S1 ให้ไปแสดงผลที่ 7-segment จะให้นับขึ้นที่ละ 1 กดสวิทช์ S2 จะนับขึ้นที่ละ 10 กดสวิทช์ S3 จะนับขึ้นที่ละ 100 กดสวิทช์ S4 เคลียร์หน้าจอให้กับมาเป็น 000 เหมือนเดิมผมใช้เวลาทำอยู่สองวันครับแต่พี่ไนท์สอนดีมากครับคือพี่แกจะให้รองทำก่อนแล้วทำไม่ได้จะสอนที่หลังครับซึงหน้าตาของผลลับจะเป็นแบบนี้ครับ




                                      หน้าตาของผมลัพธ์ครับ                                      







หน้าตาของโปรแกรมครับผม




const byte SEVEN_SEG[7] = {6, 7, 8, 9, 10, 11, 12};
const byte ZeroToNine[10][7] = 
 {1,1,1,1,1,1,0},
 {0,1,1,0,0,0,0},
 {1,1,0,1,1,0,1},
 {1,1,1,1,0,0,1},
 {0,1,1,0,0,1,1},
 {1,0,1,1,0,1,1},
 {1,0,1,1,1,1,1},
 {1,1,1,0,0,0,0},
 {1,1,1,1,1,1,1},
 {1,1,1,1,0,1,1}};;
  int counter = 0;
  
    int p = 0;
    int q = 0;
    int r = 0;
  void setup() 
   {
     pinMode(A2,OUTPUT);
     pinMode(4,OUTPUT);
     pinMode(5,OUTPUT);
     for (int i = 0; i < 11; i++) 
   {
     pinMode(SEVEN_SEG[i], OUTPUT);
     digitalWrite(SEVEN_SEG[i], HIGH );
   }
     
     pinMode(2,INPUT_PULLUP);
     pinMode(3,INPUT_PULLUP);
     pinMode(14,INPUT_PULLUP);
      pinMode(15,INPUT_PULLUP);
    } 
  void loop()
  {
     if (digitalRead(14) == LOW) 
  {
    counter++;
    r =  counter % 10;    
    q = (counter % 100)/10;
    p = (counter % 1000)/100;
    delay(5);
    while (digitalRead(14) == LOW);
  }
   
   if (digitalRead(3) == LOW) 
  {
//    counter=counter+10;
    counter+=10;
    r =  counter % 10;
    q = (counter % 100)/10;
    p = (counter % 1000)/100;
    delay(5);
    while (digitalRead(3) == LOW);
  }
   if (digitalRead(2) == LOW) 
  {
//    counter=counter+10;
    counter+=100;
    r =  counter % 10;
    q = (counter % 100)/10;
    p = (counter % 1000)/100;
    delay(5);
    while (digitalRead(2) == LOW);
  }
   if (digitalRead(15) == LOW) 
  {
    counter=0;
    r = 0;   
    q = 0;
    p = 0;
    delay(5);
    while (digitalRead(15) == LOW);
  }
   
        Bass1(p);
        delay(6);    
        Bass2(q);
        delay(6);   
        Bass3(r);  
        delay(6); 
  }  
   
 void Bass1(int x)
  {           
    int i = 0;
  for (int k = 0; k < 7; k++) 
     {
       digitalWrite(A2,LOW);
       digitalWrite(4,HIGH);
       digitalWrite(5,HIGH);
       digitalWrite(SEVEN_SEG[k], ZeroToNine[i+x][k] );
     }
  }
     void Bass2(int y)
  {           
    int i = 0;
  for (int k = 0; k < 7; k++) 
     {
       digitalWrite(A2,HIGH);
       digitalWrite(4,LOW);
       digitalWrite(5,HIGH);
       digitalWrite(SEVEN_SEG[k], ZeroToNine[i+y][k] );
     }
  }
   void Bass3(int z)
  {           
    int i = 0;
  for (int k = 0; k < 7; k++) 
     {
       digitalWrite(A2,HIGH);
       digitalWrite(4,HIGH);
       digitalWrite(5,LOW);
       digitalWrite(SEVEN_SEG[k], ZeroToNine[i+z][k] );
     }
     
  }

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

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