มินิโปรเจค

มินิโปรเจค

มินิโปรเจค
 Mini Project 



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


                                    Code



#include <Keypad.h> //เรียกใช้ Library Keypad

const byte numRows= 4;  กำหนดตัวเเปร numRows เท่ากับ 4
const byte numCols= 4;
unsigned long 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}; //Rows 0 to 3 ตั้งค่าการต่อ Pin ของ Keypad
byte colPins[numCols]= {5,4,3,2}; //Columns 0 to 3

Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
#include <LiquidCrystal.h> เรียกใช้ Library lcd 
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); เรียกใช้ Library lcd


void setup()
{
Serial.begin(250000); เวลาที่กำหนด Serial.begin 250000
pinMode(12, OUTPUT); //ให้ Pin 12 ที่จะต่อกับออดไฟฟ้า เป็น Output
lcd.begin();
  lcd.backlight();
  Serial.begin(9600); เวลาในการรับส่งข้อมูล Serial.begin 9600
}

void loop()
{
unsigned long showTime = millis();
char key = myKeypad.getKey(); // ตัวแปร key เป็นตัวแปรแบบ char รับค่าการกดปุ่ม
if (key != NO_KEY && key != 'A' && key != 'B' && key != ' ') //เมื่อกดปุ่ม (เฉพาะเลข 0 - 9) ค่า setTime จะเท่ากับปุ่มที่กด
{
setTime = (key - 48); //นำค่า key ที่ได้มาลบกับ 48 เนื่องจากเป็นรหัส ascii48 ที่เลข 0 จะเริ่มที่ 48
Serial.print(key);
}

if(key == 'A') //เมื่อกดปุ่ม A ตัวแปร start จะเท่ากับ 1 และค่า previousTime สุดท้ายจะเท่ากับ showTime ณ ตอนนั้น
{
start = 1;
previousTime = showTime;
Serial.print("Start...");

}

if(key == 'B') //เมื่อกดปุ่ม B ทุกอย่างจะถูกหยุด
{
start = 0;
buzzer = 0;
previousTime = 0;
Serial.print("Stop!...");

}

if(start == 1) //เมื่อ start = 1 จะเป็นการวน loop จับเวลาไปเรื่อยๆ จนกว่าจะครบกำหนด
{


}

if(buzzer == 1) //เมื่อตัวแปร buzzer = 1 , pin12 ที่ต่อกับออด (Buzzer) จะ HIGH ออดจึงดัง
{
digitalWrite(12, LOW);
lcd.setCursor(0, 0); // ไปที่ตัวอักษรที่ 0 แถวที่ 1
lcd.print("   START   ");
lcd.setCursor(0, 1); // ไปที่ตัวอักษรที่ 0 แถวที่ 1


}
if(buzzer == 0) //เมื่อตัวแปร buzzer = 0 (กดปุ่ม B) ออดจะหยุดดัง
{
digitalWrite(12, HIGH);
lcd.setCursor(0, 0); // ไปที่ตัวอักษรที่ 0 แถวที่ 1
lcd.print("   STOP  ");
lcd.setCursor(0, 1); // ไปที่ตัวอักษรที่ 0 แถวที่ 1
}

}
                                   อุปกรณ์

1.Arduino UNO R3
2.4x4Matrix Membrane Keypad
3.LCD
4.LED
5.กล่อง
6.ไม่แผ่น

รูปงาน




ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Pic1

Arduino Real Time Clock Tutorial using DS1307

DHT11 Humidity Sensor on Arduino