สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: การเชื่อมต่อ
- ขั้นตอนที่ 2: การสร้างโปรแกรม
- ขั้นตอนที่ 3: การเพิ่มรหัส
- ขั้นตอนที่ 4: การเพิ่ม USART
- ขั้นตอนที่ 5: เรียกใช้โค้ด
- ขั้นตอนที่ 6: เปลี่ยนความไว
- ขั้นตอนที่ 7: สลับสิ่งที่คุณต้องการ
วีดีโอ: สวิตช์ Clap-on: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ญาติคนหนึ่งถามฉันครั้งหนึ่งว่าฉันสามารถสร้างสวิตช์ที่ตอบสนองต่อการปรบมือของคุณได้ไหม ดังนั้นฉันจึงสั่งบางอย่างเพื่อสร้างโปรเจ็กต์และตัดสินใจสร้างคำสั่งเพื่อให้ทุกคนสามารถมีสวิตช์ที่ยอดเยี่ยมแบบนั้นได้
ไมโครคอนโทรลเลอร์คือสมองของโครงการนี้ เซ็นเซอร์เสียงเชื่อมต่อกับไมโครคอนโทรลเลอร์ เซ็นเซอร์กำลังส่งข้อมูลแอนะล็อกเมื่อตรวจพบเสียง ไมโครคอนโทรลเลอร์ได้รับการตั้งโปรแกรมให้ตรวจจับความแตกต่างของเสียงอย่างมาก เมื่อตรวจพบความแตกต่างที่เพียงพอ ซึ่งหมายถึงการปรบมือ ไมโครคอนโทรลเลอร์จะส่งสัญญาณไปยังรีเลย์ สวิตช์รีเลย์และไฟเปิดขึ้น เมื่อปรบมือครั้งที่สองไฟจะดับลงอีกครั้ง
เสบียง
สิ่งทางกายภาพ:
- 1x ATmega328P Xplained Mini พร้อมสายเคเบิลสำหรับการเขียนโปรแกรม
- โมดูลรีเลย์ 1x 5v 1 ช่องสัญญาณ (KY-019 หรือใกล้เคียง)
- 1x โมดูลเซ็นเซอร์เสียง (KY-038 หรือใกล้เคียง)
- 1x เขียงหั่นขนม
- สายจัมเปอร์ชาย-ชาย 6x
- 1x ซ็อกเก็ตไฟพร้อมสายไฟ (หรืออุปกรณ์อื่น ๆ ที่คุณต้องการเปิด)
- หลอดไฟ 1x
- ตัวต้านทาน 1x* (ฉันใช้ 220 โอห์ม)
- 1x LED*
ซอฟต์แวร์ (ดาวน์โหลด):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- สีโป๊ว (www.putty.org)*
* เพื่อวัตถุประสงค์ในการทดสอบ
ขั้นตอนที่ 1: การเชื่อมต่อ
ต่อสายไฟทั้งหมดตามที่แสดงในภาพ
ขั้นตอนที่ 2: การสร้างโปรแกรม
ฉันชอบเขียนโค้ดในภาษาซี ดังนั้นโปรเจ็กต์นี้จึงเขียนด้วยภาษาซี
หากคุณยังไม่ได้ดาวน์โหลดและติดตั้งซอฟต์แวร์ที่จำเป็น ให้ดาวน์โหลดและติดตั้งทันที
ทำตามขั้นตอนต่อไปนี้:
- เปิด AtmelStudio
- คลิกที่ "ไฟล์" -> "ใหม่" -> "โครงการ"
- คลิกที่ "โครงการปฏิบัติการ GCC C" ตั้งชื่อโครงการและที่ตั้งที่จะจัดเก็บ คลิก "ตกลง"
- ค้นหา ATmega328P คลิก "ATmega328P" -> "ตกลง"
- คลิกใน Solution Explorer บน "main.c" เพื่อเปิดโปรแกรมหลัก
ขั้นตอนที่ 3: การเพิ่มรหัส
ลบรหัสที่มีอยู่แล้วใน main.c
คัดลอกและวางรหัสต่อไปนี้ใน main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define MINIMALVALUE 5 เป็นโมฆะ InitADC(); uint16_t ReadADC (uint8_t ADCchannel); คู่ val1, val2; int main (เป็นโมฆะ) { // เริ่มต้น USART USART_init (9600); USART_putstr("#USART เริ่มต้น\n"); // เริ่มต้น ADC InitADC(); USART_putstr("#ADC เริ่มต้น\n"); // PC1 พินของเอาต์พุต PORTC, อินพุตที่เหลือ DDRC = 0b00000010; // ตั้งค่าเริ่มต้นเป็น PORTC ต่ำ PORTC = 0b00000000; while(1) {// อ่านค่าโพเทนชิออมิเตอร์ // อ่านค่าและเก็บไว้ใน val1 val1=ReadADC(0); _delay_ms(1); // อ่านค่าถัดไป en เก็บใน val2 val2=ReadADC(0); ถ่าน str[10]; // ReadADC() ให้ค่ากลับเป็นจำนวนเต็ม หากเราต้องการดีบักหรือเห็นค่าของสีโป๊ว // ค่าจะต้องถูกแปลงเป็นอักขระเพื่อให้ USART สามารถพิมพ์ได้ itoa(val1, str, 10); USART_putstr(str); USART_putstr("\n"); // ถ้าค่า 2 ค่ามีความแตกต่างกัน ตรวจพบเสียงและเปลี่ยนพอร์ต // MINIMALVALUE สามารถเปลี่ยนแปลงได้ การเพิ่มขึ้นจะทำให้มีความไวน้อยลง การลดลงจะทำให้มีความละเอียดอ่อนมากขึ้นหาก (val1-val2 > MINIMALVALUE || val2-val1 > MINIMALVALUE) { PORTC ^= 0b00000010; // เปิดไฟ UC _delay_ms(200); } } } โมฆะ InitADC () { // เลือก Vref=AVcc ADMUX |= (1<<REFS0); //ตั้งค่า prescaller เป็น 128 และเปิดใช้งาน ADC ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADEN); } uint16_t ReadADC (uint8_t ADCchannel) { // เลือกช่อง ADC พร้อมหน้ากากนิรภัย ADMUX = (ADMUX & 0xF0) | (ช่อง ADC & 0x0F); // โหมดการแปลงเดี่ยว ADCSRA |= (1<<ADSC); // รอจนกว่าการแปลง ADC จะเสร็จสิ้นในขณะที่ (ADCSRA & (1<<ADSC)); ส่งคืน ADC; }
ขั้นตอนที่ 4: การเพิ่ม USART
USART เป็นโปรโตคอลการสื่อสารแบบอนุกรมที่สามารถใช้กับไมโครคอนโทรลเลอร์ได้ ฉันใช้บนไมโครคอนโทรลเลอร์เพื่อดูข้อมูลแอนะล็อกจากเซ็นเซอร์
USART ได้รับการตั้งโปรแกรมอย่างถูกต้องแล้ว โดยมีไฟล์ส่วนหัว (.h) และไฟล์ต้นทาง (.c) ดาวน์โหลดไฟล์ 2 ไฟล์และเพิ่มลงในโปรแกรมของคุณใน AtmelStudio
คลิกขวาที่ชื่อโครงการใน Solution Explorer คลิก "เพิ่ม" -> "รายการที่มีอยู่…" และเลือกไฟล์ที่ดาวน์โหลด 2 ไฟล์
ขั้นตอนที่ 5: เรียกใช้โค้ด
เชื่อมต่อไมโครคอนโทรลเลอร์กับคอมพิวเตอร์ ค้นหา "ตัวจัดการอุปกรณ์" ในคอมพิวเตอร์ของคุณแล้วเปิดขึ้น มองหา "พอร์ต (COM & LPT)" และจำพอร์ต COM ที่ไมโครคอนโทรลเลอร์เปิดอยู่
เปิด PuTTY และคลิกที่ "ซีเรียล" พิมพ์พอร์ต COM ที่คุณพบของไมโครคอนโทรลเลอร์แล้วคลิก "เปิด" เทอร์มินัลปรากฏขึ้น ปล่อยไว้ตอนนี้
กลับไปที่ AtmelStudio เพื่อเลือกเครื่องมือที่เหมาะสมสำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์
- คลิกที่เครื่องมือค้อน
- เลือกดีบักเกอร์/โปรแกรมเมอร์ "mEDBG*ATML"
- เลือกอินเทอร์เฟซ "debugWIRE"
- คลิก "เริ่มโดยไม่มีการดีบัก"
โปรแกรมจะสร้างและเขียน
เมื่อโปรแกรมทำงานอย่างถูกต้อง คุณจะเห็นค่าจำนวนเต็มเป็น puTTY การใช้ไขควง ฉันสามารถเปลี่ยนค่าที่เห็นใน puTTY ได้โดยหมุนสกรูที่เซ็นเซอร์ เซ็นเซอร์ของฉันให้ค่าตั้งแต่ 0 ถึง 1,000 เมื่อหมุนสกรูจนสุด ฉันหมุนสกรูเป็น 100 (10%) ของมูลค่าทั้งหมด ฉันพบว่าสิ่งนี้ใช้ได้กับฉัน
ขั้นตอนที่ 6: เปลี่ยนความไว
ในการปรับความไวแสงเมื่อเปิดไฟ คุณสามารถใช้ 2 ตัวเลือกแต่เลือกอย่างใดอย่างหนึ่งไม่ใช่ทั้งสองอย่าง:
- เปลี่ยนสกรูเซ็นเซอร์
- เปลี่ยนค่ารหัส
ฉันใช้ตัวเลือกที่ 2 การเพิ่ม MINIMALVALUE จะทำให้มีความไวน้อยลง ลดลงทำให้มีความละเอียดอ่อนมากขึ้น
#define MINIMALVALUE 5
ขั้นตอนที่ 7: สลับสิ่งที่คุณต้องการ
คำเตือน: ระวังเมื่อเปลี่ยนแรงดันไฟฟ้าที่สูงขึ้น
เมื่อคุณพอใจกับความไวของเซ็นเซอร์แล้ว คุณสามารถเปลี่ยนวงจรได้ เปลี่ยนวงจรตามภาพด้านบน ตอนนี้คุณสามารถสลับสิ่งที่คุณต้องการ!
แนะนำ:
สวิตช์ Rocker ที่พิมพ์ 3D ส่วนใหญ่: 4 ขั้นตอน (พร้อมรูปภาพ)
สวิตช์โยกที่พิมพ์ 3 มิติส่วนใหญ่: คำแนะนำคือการสำรวจเพิ่มเติมเกี่ยวกับสิ่งที่สามารถทำได้ด้วยสวิตช์กกแม่เหล็กที่ต่ำต้อยและแม่เหล็กนีโอไดเมียมสองสามตัว จนถึงตอนนี้โดยใช้สวิตช์กกและแม่เหล็ก ฉันได้ออกแบบสิ่งต่อไปนี้: Rotary Switch Slider Switch Push Bu
สวิตช์ LED Clap สองครั้ง: 3 ขั้นตอน
สวิตช์ LED แบบ Double Clap: ใช้งานอะไรได้บ้างโดยใช้สินทรัพย์จาก Abid ฉันสร้างสวิตช์ไฟ LED แบบตบมือสองครั้งโดยใช้ Arduino Leonardo, เขียงหั่นขนม, สายเคเบิลสองสามเส้น, ไมโครโฟนธรรมดาและ LED เมื่อคุณตบมือสองครั้ง ไฟ LED จะเปิดขึ้น ปรบมือสองครั้งอีกครั้ง และไฟ LED จะสว
สวิตช์ Hue ของคนจน: 5 ขั้นตอน (พร้อมรูปภาพ)
สวิตช์ Hue ของคนจน: ในคำแนะนำนี้ฉันจะแสดงวิธีสร้างสวิตช์ไร้สายราคาไม่แพงมากสำหรับ Phillips Hue Lights ปัญหา: ไฟเหล่านี้ต้องการแหล่งจ่ายไฟถาวร สวิตช์ติดผนังจะต้องเปิดอยู่เสมอ หากคุณเข้านอนและ ปิดสวิทซ์ฝาผนัง
สวิตช์ Bluetooth Clap.: 3 ขั้นตอน (พร้อมรูปภาพ)
สวิตช์ Bluetooth Clap: นี่เป็นวิธีที่ประหยัดในการนำลำโพงบลูทูธแบบเก่ามาใช้ซ้ำ นี่คืออุปกรณ์ DIY ที่สามารถเปิดหรือปิดไฟหรือสิ่งอื่น ๆ ของแรงดันไฟฟ้าในเมืองได้โดยการปรบมือในซอฟต์แวร์ที่ติดตั้งในมือถือสิ่งที่คุณต้องการ: บอร์ด Arduino 5v รีเลย์บลูทู ธ เก่า ๆ
TeaLED: ไฟ LED, สวิตช์, กล่องและแบตเตอรี่ (ไม่ใช่กาวหรือบัดกรี): 7 ขั้นตอน (พร้อมรูปภาพ)
TeaLED: ไฟ LED, สวิตช์, กล่องและแบตเตอรี่ (ไม่ใช่กาวหรือบัดกรี): โคมไฟ LED จิ๋วที่จะใช้ได้ทุกที่ที่คุณต้องการ ไม่จำเป็นต้องมีความรู้ด้านอิเล็กทรอนิกส์ในการประดิษฐ์ เพียงแค่ตัดแผ่นอะซิเตทที่มีเทมเพลตรวมอยู่ที่นี่… add แบตเตอรี่ CR2032 2 ก้อนและไฟ LED 1 ดวง (สีขาว, สีแดงกะพริบ, อัลตราไวโอเลต, RGB ช้าหรือเร็ว, 10 มม. หรือ 5 มม.)