สารบัญ:
- ขั้นตอนที่ 1: คำแนะนำในการเชื่อมต่อ
- ขั้นตอนที่ 2:
- ขั้นตอนที่ 3:
- ขั้นตอนที่ 4:
- ขั้นตอนที่ 5:
- ขั้นตอนที่ 6:
- ขั้นตอนที่ 7:
- ขั้นตอนที่ 8:
- ขั้นตอนที่ 9: คำแนะนำในการเขียนโปรแกรม
- ขั้นตอนที่ 10:
- ขั้นตอนที่ 11:
- ขั้นตอนที่ 12:
- ขั้นตอนที่ 13:
- ขั้นตอนที่ 14:
วีดีโอ: โครงการนาฬิกาปลุก Arduino: 14 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ในโครงการนี้ เราจะใช้ Arduino Uno เพื่อควบคุมหน้าจอ LCD เพื่อแสดงเวลาปัจจุบันและเวลาที่นาฬิกาปลุกตั้งไว้ เราจะใช้ปุ่มต่างๆ ในการตั้งค่าแต่ละครั้ง
วัสดุ:
- Arduino Uno -
- เขียงหั่นขนม -
- สายจัมเปอร์ (x13+) -
- ตัวต้านทาน 10 kohm (x4) -
- หน้าจอ LCD -
- 7 ปุ่ม -
- ลำโพง Piezo -
ขั้นตอนที่ 1: คำแนะนำในการเชื่อมต่อ
1. เชื่อมต่อสายจัมเปอร์จากพิน 5V บน Arduino เข้ากับราง + บนเขียงหั่นขนม
ขั้นตอนที่ 2:
2. เชื่อมต่อสายจัมเปอร์จากพิน GND บน Arduino เข้ากับราง - ถัดจากราง + ที่คุณเลือกบนเขียงหั่นขนม
ขั้นตอนที่ 3:
3. เชื่อมต่อหน้าจอ LCD กับแหล่งจ่ายไฟ กราวด์ และพิน TX (พิน 1)
ขั้นตอนที่ 4:
4. วางปุ่ม 7 ปุ่มบนเขียงหั่นขนมโดยให้ขาข้ามช่องว่างในเขียงหั่นขนม
ขั้นตอนที่ 5:
5. วางตัวต้านทาน 10 kohm จากราง - โดยเชื่อมต่อพิน GND เข้ากับพินด้านซ้ายล่างของปุ่ม
ขั้นตอนที่ 6:
6. วางสายจัมเปอร์ระหว่างหมุดด้านล่างขวาของปุ่มและราง 5V บนเขียงหั่นขนมของคุณ
ขั้นตอนที่ 7:
7. วางสายจัมเปอร์ระหว่างพิน 6 จากนั้น 8-13 และพินบนปุ่มที่ต่อตัวต้านทาน
ขั้นตอนที่ 8:
8. ถัดไป วางลำโพง Piezo ของคุณบนเขียงหั่นขนมและเชื่อมต่อพิน 7 กับพินเพาเวอร์ จากนั้นตัวต้านทาน 100 โอห์มลงกราวด์
ขั้นตอนที่ 9: คำแนะนำในการเขียนโปรแกรม
1. ภาพรวม: โปรเจ็กต์นี้จะขอให้ผู้ใช้ตั้งเวลาปัจจุบันของพลังงานเริ่มต้นบนจอแสดงผลเวลาปัจจุบันและเวลาที่ตั้งค่าการเตือนไว้ ปุ่มที่เชื่อมต่อด้านบนจะใช้เพื่อตั้งค่าในแต่ละครั้ง จากซ้ายไปขวา ตั้งชั่วโมงปัจจุบัน ตั้งนาทีปัจจุบัน ตั้ง AM หรือ PM ปัจจุบัน ตั้งเวลาปลุก ตั้งนาทีปลุก ตั้งปลุก AM หรือ PM ปุ่มสุดท้ายใช้เพื่อปิดเสียงปลุกเมื่อมีการส่งเสียง
ขั้นตอนที่ 10:
2. สิ่งแรกที่เราต้องทำคือเริ่มต้นตัวแปรที่เราจะใช้
// เริ่มต้นตัวแปรที่จะใช้int ชั่วโมง = 0; // ชั่วโมงสำหรับเวลาปัจจุบัน int นาที = 0; //
นาทีสำหรับเวลาปัจจุบัน int วินาที = 0; // วินาทีสำหรับเวลาปัจจุบัน
int hour_a = 0; int // ชั่วโมงสำหรับเวลาปลุก
นาที_a = 0; // นาทีสำหรับเวลาปลุก
bool am_pm = เท็จ; // AM/PM สลับแฟล็ก เท็จคือ AM จริงคือ PM
bool am_pm_a = เท็จ; // AM/PM สลับแฟล็กสำหรับการเตือน เท็จคือ AM จริงคือ PM
int set_hr = 13; // ใช้พิน 13 เพื่อตั้งชั่วโมง
int set_min = 12; // ใช้พิน 12 เพื่อตั้งค่านาที int
set_am_pm = 11; // ใช้พิน 11 เพื่อตั้ง am/pm
int set_hr_a = 10; // ใช้พิน 10 เพื่อตั้งเวลาปลุก int set_min_a = 9; // ใช้พิน 9 เพื่อตั้งนาทีสำหรับการเตือน int set_am_pm_a = 8; // ใช้พิน 8 เพื่อตั้ง am/pm สำหรับนาฬิกาปลุก
ลำโพง int = 7; // ปักหมุดเพื่อใช้สำหรับ speakerint แบบเงียบ = 6; // ปักหมุดเพื่อหยุดลำโพง
บูลปลุก = เท็จ; // ตั้งค่าสถานะเพื่อสลับเพื่อให้ตื่นตระหนก
บูลเงียบ = เท็จ; // แฟล็กแสดงความเงียบยังไม่ได้ถูกกด
int cur_time = 0; // ตัวแปรสำหรับเวลาปัจจุบัน
int etime = 0; // ตัวแปรสำหรับเวลาที่ผ่านไป
ขั้นตอนที่ 11:
3. ต่อไป เราต้องตั้งค่าหน้าจอ LCD และบอกให้ผู้ใช้ตั้งเวลาปัจจุบัน เนื่องจากต้องทำเพียงครั้งเดียว เราจะทำในรูทีนการตั้งค่า
การตั้งค่าเป็นโมฆะ () {
// ตั้งค่าหน้าจอ LCD
Serial.begin(9600); // เริ่มต้น Serial ที่ 9600 บอด
Serial.write(17); // เปิดไฟหลัง
Serial.write(24); // เปิดจอแสดงผลโดยมีเคอร์เซอร์และไม่กะพริบตา
อนุกรม.เขียน(12); // ล้างหน้าจอ
Serial.write(128); // เลื่อนเคอร์เซอร์ไปที่มุมซ้ายบน // ตั้งค่า pinModes pinMode(set_hr, ป้อนข้อมูล); โหมดพิน (set_min, INPUT);
pinMode(set_am_pm, INPUT);
pinMode(set_hr_a, INPUT);
pinMode(set_min_a, INPUT);
pinMode(set_am_pm_a, INPUT);
โหมดพิน (ลำโพง, เอาต์พุต);
pinMode(เงียบ, INPUT);
// เมื่อเปิดเครื่องเริ่มต้น ให้ผู้ใช้ตั้งเวลาปัจจุบัน Serial.print("ตั้งเวลาปัจจุบัน"); ล่าช้า (2000);
อนุกรม.เขียน(12);
printTimes();
cur_time = มิลลิวินาที (); // เก็บเวลาปัจจุบัน}
ขั้นตอนที่ 12:
4. จากนั้น ในรูทีนลูป เราจะติดตามเวลาและอ่านสถานะของปุ่มเพื่อดูว่าผู้ใช้ตั้งค่าเวลาใดเวลาหนึ่งหรือไม่
วงเป็นโมฆะ () {
// รักษาเวลา
รักษาเวลา();
// เช็คดูว่าถึงเวลาปลุกหรือยัง!
if((hour == hour_a && minutes == minutes_a && !quieted) || alarm){tone(speaker, 2000, 500); // ส่งสัญญาณเสียง 2000 Hz ไปยังลำโพงเป็นเวลา 500 ms
ล่าช้า (500); // หน่วงเวลา 500 ms if(!alarm){ // ถ้านาฬิกาปลุกปิดอยู่ ให้เปิดขึ้น
}
}
// หากผู้ใช้ปิดเสียงสัญญาณเตือนด้วยการกดปุ่มเงียบ ให้หยุดการเตือนหาก (นาฬิกาปลุก && !quieted && digitalRead(เงียบ)){
ปลุก = เท็จ;
เงียบ = จริง; }
// รีเซ็ตการเตือน if(!alarm && quieted && minutes != minutes_a){ quieted = false;
}
// ตรวจสอบเพื่อดูว่าพินที่ตั้งไว้สูงหรือไม่ และถ้าเป็นเช่นนั้น ให้เพิ่มค่าที่สอดคล้องกันif(digitalRead(set_hr) && hour < 12){
ชั่วโมง++;
printTimes();
ดีบัก();
}
else if (digitalRead(set_hr) && hour == 12){ hour = 1;
printTimes();
ดีบัก();
}
อื่น{}
if(digitalRead(set_min) && นาที < 59){
นาที++;printTimes();
ดีบัก();
}
else if (digitalRead(set_min) && นาที == 59){ นาที = 0;
printTimes();
ดีบัก();
}
อื่น{}if(digitalRead(set_am_pm) && am_pm){
am_pm = เท็จ;
printTimes();
ดีบัก();
}
อื่น if (digitalRead(set_am_pm) && !am_pm){ am_pm = true;printTimes();
ดีบัก();
}
อื่น{}if(digitalRead(set_hr_a) && hour_a < 12){
ชั่วโมง_a++;
printTimes();
ดีบัก();
}
else if (digitalRead(set_hr_a) && hour_a == 12){hour_a = 1;
printTimes();
ดีบัก();
}
อื่น{}if(digitalRead(set_min_a) && minutes_a < 59){
นาที_a++;
printTimes();
ดีบัก();
}
else if (digitalRead(set_min) && minutes_a == 59){minute_a = 0;
printTimes();
ดีบัก();
}
อื่น{}if(digitalRead(set_am_pm_a) && am_pm_a){
am_pm_a = เท็จ;
printTimes();
ดีบัก();
}
อื่น if (digitalRead(set_am_pm_a) && !am_pm_a){am_pm_a = true;
printTimes();
ดีบัก();
}
อื่น{}
}
ขั้นตอนที่ 13:
5. ที่นี่ คุณจะสังเกตเห็นรูทีนย่อยสองสามรายการที่ฉันสร้างขึ้น - debounce() และ printTimes() Debounce() ใช้เพื่อให้แน่ใจว่าเราอ่านปุ่มเพียงครั้งเดียว เนื่องจาก Arduino สแกนหลายพันครั้งต่อวินาที จึงอาจคิดว่ามีการกดปุ่มหลายครั้งเมื่อคุณตั้งใจให้อ่านเพียงครั้งเดียว Debounce() จะหยุดโปรแกรมจนกว่าปุ่มจะถูกปล่อย printTimes() อัปเดตหน้าจอ LCD แต่เนื่องจากเป็นคำสั่งหลายคำสั่ง ฉันจึงพิมพ์เพียงครั้งเดียว จากนั้นจึงเรียกใช้รูทีนย่อยได้ทุกเมื่อที่ค่าของเวลาเปลี่ยนแปลง
// ในขณะที่กำลังกดปุ่มใดๆ อยู่ ให้อยู่ในฟังก์ชันนี้แล้วหน่วงเวลา 250 ms
โมฆะ debounce(){
ในขณะที่(digitalRead(set_hr) || digitalRead(set_min) ||
digitalRead(set_am_pm) || digitalRead(set_hr_a) ||
digitalRead(set_min_a) || digitalRead(set_am_pm_a)){} ล่าช้า (250);
}
// พิมพ์เวลาที่อัปเดตหากมีการเปลี่ยนแปลงใด ๆ
เป็นโมฆะ printTimes(){
อนุกรม.เขียน(12);
Serial.print("เวลาปัจจุบัน:");
Serial.write(148);
ถ้า (ชั่วโมง < 10){
Serial.print("0");
}
Serial.print(ชั่วโมง);
Serial.print(":");
ถ้า (นาที < 10){
Serial.print("0");
}
Serial.print(นาที);Serial.print(":");
ถ้า (วินาที < 10){
Serial.print("0");
}
Serial.print(วินาที);
ถ้า (am_pm){
Serial.print("PM");
}
อื่น{
Serial.print("น");
}
Serial.write(168);
Serial.print("ตั้งปลุกสำหรับ:");
Serial.write(188);
ถ้า(hour_a < 10){
Serial.print("0");
}
Serial.print(hour_a);
Serial.print(":");
ถ้า(นาที_a < 10){
Serial.print("0");
}
Serial.print(นาที_a);
ถ้า (am_pm_a){
Serial.print("PM");
}
อื่น{
Serial.print("น");
}
}
// เพิ่มพารามิเตอร์เวลาเป็นโมฆะ
รักษาเวลา(){
etime = millis() - cur_time;
if(etime >= 1,000 && วินาที <59){
วินาที++;
cur_time = มิลลิวินาที ();
printTimes();
}
อื่น if(etime >= 1000 && วินาที == 59 && นาที <59){ วินาที = 0;
นาที++;
cur_time = มิลลิวินาที ();
printTimes();
}
อื่น if(etime >= 1,000 && วินาที == 59 && นาที == 59 && ชั่วโมง <12){
วินาที = 0; นาที =
0; ชั่วโมง++; cur_time =
มิลลิวินาที(); printTimes();
}
อื่น if(etime >= 1,000 && วินาที == 59 && นาที == 59 && ชั่วโมง == 12){
วินาที = 0; นาที =
0; ชั่วโมง = 1; am_pm =
!am_pm;
cur_time = มิลลิวินาที ();
printTimes();
}
อื่น{}
}
ขั้นตอนที่ 14:
6. แค่นั้นแหละ!
รวบรวมและอัปโหลดและคุณทำเสร็จแล้ว!
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino