Arduino งานโปรแกรมควบคุม Buzzer ครั้ง 7
Code
#include "LedControl.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
int melody[] = {C4,D4,E4,F4,G4,A4,B4,C5}; // ตัวแปรพื้นฐานที่เก็บตัวเลขโดยไม่มีจุดทศนิยม
float beats[] ={1,1,1,1,1,1,1,1}; // ตัวแปรชนิด floating-point หรือตัวแปรที่มีจุดทศนิยม
int buzzerpin = 11;
int timestop = 70;
LedControl lc=LedControl(8,10,9,1);
void setup() // ฟังก์ชั่นใช้ในการประกาศค่าเริ่มต้น
{
lc.shutdown(0,false);
lc.setIntensity(0,5);
lc.clearDisplay(0); // ล้างหน้าจอ lcd
int dl = 500;
pinMode(buzzerpin,OUTPUT); //การกำหนดหน้าที่ของขาว่าเป็นอินพุตหรือเอาต์พุต
int numnote;
numnote = sizeof(melody)/2;
for (int i=0;i<numnote;i++) //คำสั่ง FOR เป็นคำสั่งกำหนดเงื่อนไขเป็นจำนวนครั้งที่จะทำตามชุดคำสั่งต่าง ๆ ภายใน loop เหมาะที่จะใช้กับงานประเภทที่ไม่มีการเปลี่ยนแปลง
{
lc.setChar(0,7-i,'-',false);
tone(buzzerpin, melody[i],dl*beats[i]);
delay(dl*beats[i]);
digitalWrite(buzzerpin,HIGH); //ทำหน้าที่เขียนค่า HIGH หรือ LOW ไปยังขาดิจิตอล
delay(timestop); // หน่วงเวลา
}
}
void loop() // ฟังก์ชั่นใช้ในการเขียนโค้ดโปรแกรมการทำงานของArduinoเป็นฟังก์ชั่นการวนลูปไปเรื่อยๆ
{
}
ภาพจำลองการทำงานด้วยโปรแกรม Proteus
#include "LedControl.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
int melody[] = {C4,D4,E4,F4,G4,A4,B4,C5}; // ตัวแปรพื้นฐานที่เก็บตัวเลขโดยไม่มีจุดทศนิยม
float beats[] ={1,1,1,1,1,1,1,1}; // ตัวแปรชนิด floating-point หรือตัวแปรที่มีจุดทศนิยม
int buzzerpin = 11;
int timestop = 70;
LedControl lc=LedControl(8,10,9,1);
void setup() // ฟังก์ชั่นใช้ในการประกาศค่าเริ่มต้น
{
lc.shutdown(0,false);
lc.setIntensity(0,5);
lc.clearDisplay(0); // ล้างหน้าจอ lcd
int dl = 500;
pinMode(buzzerpin,OUTPUT); //การกำหนดหน้าที่ของขาว่าเป็นอินพุตหรือเอาต์พุต
int numnote;
numnote = sizeof(melody)/2;
for (int i=0;i<numnote;i++) //คำสั่ง FOR เป็นคำสั่งกำหนดเงื่อนไขเป็นจำนวนครั้งที่จะทำตามชุดคำสั่งต่าง ๆ ภายใน loop เหมาะที่จะใช้กับงานประเภทที่ไม่มีการเปลี่ยนแปลง
{
lc.setChar(0,7-i,'-',false);
tone(buzzerpin, melody[i],dl*beats[i]);
delay(dl*beats[i]);
digitalWrite(buzzerpin,HIGH); //ทำหน้าที่เขียนค่า HIGH หรือ LOW ไปยังขาดิจิตอล
delay(timestop); // หน่วงเวลา
}
}
void loop() // ฟังก์ชั่นใช้ในการเขียนโค้ดโปรแกรมการทำงานของArduinoเป็นฟังก์ชั่นการวนลูปไปเรื่อยๆ
{
}
ภาพจำลองการทำงานด้วยโปรแกรม Proteus
อธิบายการทำงานของโปรแกรม
มีเสียงเพลง โด เร มี ฟา ซอล ลา ที โด เเล้ว เเสดงตัวอักษรบน 7segment
ความคิดเห็น
แสดงความคิดเห็น