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

วันที่6 ที่Fibo

-งานวันนี้คือการกด button 4ตัว ให้ segment ทำงาน 
-ศึกษาหาข้อมูลคิดและปรึกษาว่าจะทำโปรเจ็คเกี่ยวกับอะไร ผมจึงคิดหา ดูแขนกลโรงงานและหุ่นยนต์เตะฟุตบอล
-วันนี้เป็นวันที่ดีที่fibo และวันพรุ่งนี้อาจารย์จะมานิเทศ4ท่านด้วยกัน และต้องทำการเตรียมตัว พีเซ็นการทำงานที่fibo 
-เป็นวันที่ได้ทำโค้ดโปรแกรมขึ้นเองทำให้ได้ศึกษาโค้ดที่ทำเองทำให้งานวันนี้ไม่ค่อย  ราบเรื่อนเพราะงง กับ PIC ที่เคยเรียน

int A = 6;
int B = 7;
int C = 8;
int D = 9;
int E = 10;
int F = 11;
int G = 12;
int CO1 = 5;
int CO2 = 4;
int CO3 = A2;
const int segs[7] = { A, B, C, D, E, F, G };
const byte numbers[10] = { 0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110, 0b1101101,0b1111101, 0b0000111, 0b1111111, 0b1101111 };

int digit1 = 0;
int digit2 = 0;
int digit3 = 0;
int counter= 0;

void setup() {
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(CO1, OUTPUT);
  pinMode(CO2, OUTPUT);
  pinMode(CO3, OUTPUT);
  
  pinMode(2,INPUT_PULLUP);
  pinMode(3,INPUT_PULLUP);
  pinMode(14,INPUT_PULLUP);
    }
    
void loop() {
    lightDigit3(numbers[digit3]);
    delay(5);
    lightDigit2(numbers[digit2]);
    delay(5);
   lightDigit1(numbers[digit1]);
    delay(5);

  if (digitalRead(2) == LOW) {
    counter++;
    digit3 = counter%10;    
    digit2 = (counter%100)/10;
    digit1 = (counter%1000)/100;
  }
  while(digitalRead(2)==LOW);
  
  if(digitalRead(3)==LOW){
    counter--;
    digit3 = counter%10;    
    digit2 = (counter%100)/10;
    digit1 = (counter%1000)/100;
     if(digit3<0){
     digit3=0;
     counter=0;
     }
   }
    
      while(digitalRead(3)==LOW);

  }



  
  void lightDigit1(byte number) {
  digitalWrite(CO1, HIGH);
  digitalWrite(CO2, HIGH);
  digitalWrite(CO3,LOW);
  Segments(number);
}

void lightDigit2(byte number) {
  digitalWrite(CO1, HIGH);
  digitalWrite(CO2, LOW);
  digitalWrite(CO3, HIGH);
  Segments(number);
}

void lightDigit3(byte number) {
  digitalWrite(CO1, LOW);
  digitalWrite(CO2, HIGH);
  digitalWrite(CO3,HIGH);
  Segments(number);
}

void Segments(byte number) {
  for (int i = 0; i < 7; i++) {
    int bit = bitRead(number, i);
    digitalWrite(segs[i], bit);
  }
}


http://www.arduino.cc/en/Reference/pinMode
การใช้ INPUT , OUTPUT ใน pinMode และPULLUP ของ ARDUINO

http://ucexperiment.com/31
การใช้ฟังก์ชันท์ Millis() 
ฟังชันท์ Millis() จะรีเทิร์นเวลาออกมาในหน่วย Millisecond ทำให้เราอ้างอิงเวลาได้ เช่นสร้างลูปที่ทำงานทุกๆ 1วิฯ 5วิฯ 10วิฯ โดยที่ไม่ต้องเหนื่อยอะไรมากมาย
http://www.tinkerhobby.com/arduino-2-digit-7-segment-display-with-buttons/
// Dual seven-segment LED Display with buttons
// Common Anode digit 6 pin 12
//       CA1 G  F  A  B
//        |  |  |  |  |      -> pins and segments they control
//   ---------    ---------
//   |   A   |    |   A   |
//  F|       |B  F|       |B
//   |---G---|    |---G---|
//  E|       |C  E|       |C
//   |   D   |    |   D   |
//   ---------    ---------
//        |  |  |  |  |      -> pins and segments they control
//        D  DP E  C CA2         
// Segments that make each number when lit:
// 0 => -FEDCBA
// 1 => ----BC-
// 2 => G-ED-BA
// 3 => G--DCBA
// 4 => GF--CB-
// 5 => GF-DC-A
// 6 => GFEDC-A
// 7 => ----CBA
// 8 => GFEDCBA
// 9 => GF-DCBA
// Arduino digital pins used to light up
// corresponding segments on the LED display

https://www.youtube.com/watch?v=GCdl6KRbiWU
แขนกลโรงงาน 10แกนใช้งานจริง

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

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