Advertisement
KRITSADA

IPST-SE STEM Festival 2016 EP1 Barcode read

Sep 6th, 2016
6,123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.22 KB | None | 0 0
  1. #include <ipst.h>   // IPST-SE Board
  2. word A,B,C,BAR;         // save BarCode
  3. word whiteBrown = 665;
  4. word blackBrown = 265;
  5. void setup() {
  6.   OK();
  7. }
  8.  
  9. void loop() {
  10.   barCode();
  11. }
  12. void barCode() {
  13.   setTextSize(2);
  14.   setTextColor(GLCD_BLACK);
  15.   setTextBackgroundColor(GLCD_WHITE);
  16.   while (analog(1) < blackBrown) {          // เดินไปจนเจอสีน้ำตาล
  17.     fd(40); delay(12);
  18.   }
  19.   ao(); delay(100);
  20.   /*******************************/
  21.   //          แถบสีที่ 1             //
  22.   /*******************************/
  23.  
  24.   while (analog(1) > blackBrown && analog(1) < whiteBrown) {  // เดินไปจนกระทั่งเจอสีขาวหรือดำ
  25.     fd(40);delay(12);
  26.   }
  27.   ao(); delay(100);
  28.  
  29.   if (analog(1) < blackBrown) {        // ตรวจสอบว่าเป็นสีดำหรือไม่
  30.     glcd(2, 0, "BLACK"); A = 1;        // ให้ค่าบิตแรกเป็น 1
  31.     while (analog(1) < blackBrown) {   // เดินต่อไปจนเจอสีน้ำตาล
  32.       fd(40); delay(12);
  33.     }
  34.     ao(); delay(100);
  35.   }
  36.   else if (analog(1) > whiteBrown) {   // ตรวจสอบว่าเป็นสีขาวหรือไม่
  37.     glcd(2, 0, "WHITE"); A = 0;        // ให้ค่าบิตแรกเป็น 0
  38.     while (analog(1) > whiteBrown) {   // เดินต่อไปจนเจอสีน้ำตาล
  39.       fd(40);
  40.       delay(12);
  41.     }
  42.     ao(); delay(100);
  43.   }
  44.   /*******************************/
  45.   //          แถบสีที่ 2             //
  46.   /*******************************/
  47.   while (analog(1) > blackBrown && analog(1) < whiteBrown) { // เดินไปจนกระทั่งเจอสีขาวหรือดำ
  48.     fd(40);  delay(12);
  49.   }
  50.   ao(); delay(100);
  51.   if (analog(1) < blackBrown) {        // ตรวจสอบว่าเป็นสีดำหรือไม่
  52.     glcd(3, 0, "BLACK"); B = 2;        // ให้ค่าบิตที่ 2 เป็น 2
  53.     while (analog(1) < blackBrown) {   // เดินต่อไปจนเจอสีน้ำตาล
  54.       fd(40);
  55.       delay(12);
  56.     }  
  57.     ao(); delay(100);
  58.   }
  59.   else if (analog(1) > whiteBrown) {   // ตรวจสอบว่าเป็นสีดำหรือไม่
  60.     glcd(3, 0, "WHITE"); B = 0;        // ให้ค่าบิตที่ 2 เป็น 0
  61.     while (analog(1) > whiteBrown) {   // เดินต่อไปจนเจอสีน้ำตาล
  62.       fd(40);
  63.       delay(12);
  64.     }  
  65.     ao(); delay(100);
  66.   }
  67.  
  68. /*******************************/
  69. //          แถบสีที่ 3             //
  70. /*******************************/
  71.  
  72.   while (analog(1) > blackBrown && analog(1) < whiteBrown) {  // เดินไปจนกระทั่งเจอสีขาวหรือดำ
  73.     fd(40);
  74.     delay(12);
  75.   }
  76.   ao(); delay(100);
  77.     if (analog(1) < blackBrown) {          // ตรวจสอบว่าเป็นสีดำหรือไม่
  78.     glcd(4, 0, "BLACK"); C = 4;            // ให้ค่าบิตที่ 3 เป็น 4
  79.     while (analog(1) < blackBrown) {       // เดินต่อไปจนเจอสีน้ำตาล
  80.       fd(40);
  81.       delay(12);
  82.     } ao(); delay(100);
  83.   }
  84.   else if (analog(1) > whiteBrown) {      // ตรวจสอบว่าเป็นสีขาวหรือไม่
  85.     glcd(4, 0, "WHITE"); C = 0;           // ให้ค่าบิตที่ 3 เป็น 0
  86.     while (analog(1) > whiteBrown) {      // เดินต่อไปจนเจอสีน้ำตาล
  87.       fd(40);
  88.       delay(12);
  89.     } ao(); delay(100);
  90.   }
  91.  
  92. /*******************************/
  93. //          แสดงผล              //
  94. /*******************************/
  95.  
  96.   BAR = A + B + C;                        // นำค่ากำลังของบิตที่ 1-3 มาบวกกัน
  97.   glcdFillScreen(GLCD_BLUE);
  98.   setTextSize(10);
  99.   setTextBackgroundColor(GLCD_BLUE);
  100.   setTextColor(GLCD_YELLOW);
  101.   glcd(0, 1, "%d ", A + B + C);          // แสดงผลที่หน้าจอ GLCD
  102.  
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement