Mini Project
การจับเวลาด้วย Arduino UNO R3,LCD
Code
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.ไม่แผ่น
รูปงาน
รูปงาน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น