Arduino งานโปรแกรมควบคุม Buzzer ร่วมกับ Keypad ครั้ง 8
Code
#include "LedControl.h" // การอ่านไฟล์จากไดเร็กทอรี หรือโฟลเดอร์ที่กำหนดไว้
#include "Keypad.h"
#define C4 262 // ใช้เพื่อตั้งชื่อค่าคงที่
#define D4 294
#define E4 330
#define F4 349
#define G4 392
#define A4 440
#define B4 494
#define C5 523
char keys[4][4]={ //ข้อมูลชนิดอักขระ ใช้เนื้อที่ 1 byte
{7,8,9,0},
{4,5,6,0},
{1,2,3,0},
{0,0,0,0}};
byte rowPins[] = {7,6,5,4};
byte colPins[] = {3,2,1,0};
Keypad keypad = Keypad(makeKeymap(keys),rowPins,colPins,4,4);
int melody[] = {C4,D4,E4,F4,G4,A4,B4,C5}; // ตัวแปรพื้นฐานที่เก็บตัวเลขโดยไม่มีจุดทศนิยม
int dl = 300;
int buzzerpin = 11;
LedControl lc=LedControl(8,10,9,1);
void setup() // ฟังก์ชั่นใช้ในการประกาศค่าเริ่มต้น
{
lc.shutdown(0,false);
lc.setIntensity(0,5);
lc.clearDisplay(0);
pinMode(buzzerpin,OUTPUT); //การกำหนดหน้าที่ของขาว่าเป็นอินพุตหรือเอาต์พุต
digitalWrite(buzzerpin,HIGH); // ทำหน้าที่เขียนค่า HIGH หรือ LOW ไปยังขาดิจิตอล
}
void loop() // ฟังก์ชั่นใช้ในการเขียนโค้ดโปรแกรมการทำงานของArduinoเป็นฟังก์ชั่นการวนลูปไปเรื่อยๆ
{
char key = keypad.getKey();
if ((key != NO_KEY) && (key < 9)) // คำสั่งในการตัดสินใจ แบบตัวเลือกเดียว โดยใช้งานร่วมกับ
==, !=, <, >เพื่อใช้ใน การ ตัดสินใจในการหาคำ
{
lc.setDigit(0,0,key,false);
tone(buzzerpin, melody[key-1],dl);
delay(dl); // หน่วงเวลา
digitalWrite(buzzerpin,HIGH); // ทำหน้าที่เขียนค่า HIGH หรือ LOW ไปยังขาดิจิตอล
}
}
#include "LedControl.h" // การอ่านไฟล์จากไดเร็กทอรี หรือโฟลเดอร์ที่กำหนดไว้
#include "Keypad.h"
#define C4 262 // ใช้เพื่อตั้งชื่อค่าคงที่
#define D4 294
#define E4 330
#define F4 349
#define G4 392
#define A4 440
#define B4 494
#define C5 523
char keys[4][4]={ //ข้อมูลชนิดอักขระ ใช้เนื้อที่ 1 byte
{7,8,9,0},
{4,5,6,0},
{1,2,3,0},
{0,0,0,0}};
byte rowPins[] = {7,6,5,4};
byte colPins[] = {3,2,1,0};
Keypad keypad = Keypad(makeKeymap(keys),rowPins,colPins,4,4);
int melody[] = {C4,D4,E4,F4,G4,A4,B4,C5}; // ตัวแปรพื้นฐานที่เก็บตัวเลขโดยไม่มีจุดทศนิยม
int dl = 300;
int buzzerpin = 11;
LedControl lc=LedControl(8,10,9,1);
void setup() // ฟังก์ชั่นใช้ในการประกาศค่าเริ่มต้น
{
lc.shutdown(0,false);
lc.setIntensity(0,5);
lc.clearDisplay(0);
pinMode(buzzerpin,OUTPUT); //การกำหนดหน้าที่ของขาว่าเป็นอินพุตหรือเอาต์พุต
digitalWrite(buzzerpin,HIGH); // ทำหน้าที่เขียนค่า HIGH หรือ LOW ไปยังขาดิจิตอล
}
void loop() // ฟังก์ชั่นใช้ในการเขียนโค้ดโปรแกรมการทำงานของArduinoเป็นฟังก์ชั่นการวนลูปไปเรื่อยๆ
{
char key = keypad.getKey();
if ((key != NO_KEY) && (key < 9)) // คำสั่งในการตัดสินใจ แบบตัวเลือกเดียว โดยใช้งานร่วมกับ
==, !=, <, >เพื่อใช้ใน การ ตัดสินใจในการหาคำ
{
lc.setDigit(0,0,key,false);
tone(buzzerpin, melody[key-1],dl);
delay(dl); // หน่วงเวลา
digitalWrite(buzzerpin,HIGH); // ทำหน้าที่เขียนค่า HIGH หรือ LOW ไปยังขาดิจิตอล
}
}
ภาพจำลองการทำงานด้วยโปรแกรม Proteus
อธิบายการทำงานของโปรแกรม
มีเสียงตอนกด keypad เเละขึ้น ตัวอักษรบน 7segment
ความคิดเห็น
แสดงความคิดเห็น