วันอาทิตย์ที่ 23 กันยายน พ.ศ. 2561

มินิโปรเจค

 Mini Project 

                             Mini Project
        การจับเวลาด้วย Arduino UNO R3,LCD



                   
                             Code

#include <Keypad.h>  //เรียกใช้ไรบรารี่ของคีย์แพต

const byte numRows= 4; //ชนิดตัวแปรแถวผลลัพธ์=4

const byte numCols= 4; //ชนิดตัวแปรคอลั่ม=4

unsigned long previousTime = 0; //ตัวแปรยาวpreviousTime=0

int setTime = 0; //ตัวแปร setTime =0

int start = 0; //ตัวแปร start =0

int buzzer = 0; //ตัวแปร buzzer =0


char keymap[numRows][numCols]=  //ชนิดตัวแปรอักขระ ของคีย์แมพ

{

{'1', '2', '3', 'A'},

{'4', '5', '6', 'B'},

{'7', '8', '9', ' '},

{' ', '0', ' ', ' '}

};



byte rowPins[numRows] = {9,8,7,6}; //9,8,7,6 เป้นแถวของผลลัพธ์

byte colPins[numCols]= {5,4,3,2}; //5,4,3,2 เป็นคอลั่มของผัลลัพธ์


Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);  //Keypad() เป็นฟังชั่นข้อมูลของKeypad myKeypad

#include <LiquidCrystal.h>

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); //เปิดใช้งานฟังชั่นของLCD





void setup()

{

pinMode(12, OUTPUT);  //ให้ขา12เป็นเอาต์พุต

lcd.begin();

  lcd.backlight();

  Serial.begin(9600); //ส่งและรับข้อมูลความเร็วที่9600

}



void loop()

{

unsigned long showTime = millis(); //millis เป็นข้อมูลใน showTime

char key = myKeypad.getKey();  //

if (key != NO_KEY && key != 'A' && key != 'B' && key != ' ')

{

setTime = (key - 48); ฟั่งก์ชั่น key -48

Serial.print(key);

}



if(key == 'A') //ถ้าฟังก์ชั่น key =A

{

start = 1; //1=start

previousTime = showTime;

Serial.print("Start..."); //ให้ปริ้นแสดงเป็น start



}



if(key == 'B') //ถ้าkey=B

{

start = 0; //ตัวแปร start =0

buzzer = 0; //ตัวแปร buzzer =0

previousTime = 0; //ตัวแปร previousTime =0

Serial.print("Stop!..."); //ให้ปริ้นแสดงค่าเป็น stop



}



if(start == 1)  //ถ้าstart=1

{

Serial.print("setTime: ");

Serial.print(setTime);

Serial.print("   showTime: ");

Serial.print(showTime); 

Serial.print("   previousTime: ");

Serial.print(previousTime); 

Serial.print("   Time: ");

Serial.println((showTime - previousTime) / 1000); 



if((showTime - previousTime) / 1000 >= setTime) 

{

start = 0; //start=0

buzzer = 1; //buzzer=0

Serial.print("Finish!");

}

}



if(buzzer == 1) 

{

digitalWrite(12, LOW); //ให้ขา12เป็นlow

lcd.setCursor(0, 0); 

lcd.print("   START   "); //lcdปริ้นแสดงค่าว่า START

lcd.setCursor(0, 1); 





}

if(buzzer == 0) //ถ้าbuzzer=0

{

digitalWrite(12, HIGH); //ให้ขา12เป็นhigh

lcd.setCursor(0, 0); 

lcd.print("   STOP  "); //lcdปริ้นแสดงค่าว่า STOP

lcd.setCursor(0, 1);

}



}

                            อุปกรณ์

1.Arduino UNO R3

2.4x4Matrix Membrane Keypad

3.LCD

4.LED

5.กล่อง

6.ไม่แผ่น

รูปงาน

รูปงาน





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

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