สารบัญ:

สวิตช์ Clap-on: 7 ขั้นตอน (พร้อมรูปภาพ)
สวิตช์ Clap-on: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สวิตช์ Clap-on: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สวิตช์ Clap-on: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: วิธีทำ clap switch ด้วย cd4013 IC #shorts #zaferyildiz #short 2024, พฤศจิกายน
Anonim
Image
Image

ญาติคนหนึ่งถามฉันครั้งหนึ่งว่าฉันสามารถสร้างสวิตช์ที่ตอบสนองต่อการปรบมือของคุณได้ไหม ดังนั้นฉันจึงสั่งบางอย่างเพื่อสร้างโปรเจ็กต์และตัดสินใจสร้างคำสั่งเพื่อให้ทุกคนสามารถมีสวิตช์ที่ยอดเยี่ยมแบบนั้นได้

ไมโครคอนโทรลเลอร์คือสมองของโครงการนี้ เซ็นเซอร์เสียงเชื่อมต่อกับไมโครคอนโทรลเลอร์ เซ็นเซอร์กำลังส่งข้อมูลแอนะล็อกเมื่อตรวจพบเสียง ไมโครคอนโทรลเลอร์ได้รับการตั้งโปรแกรมให้ตรวจจับความแตกต่างของเสียงอย่างมาก เมื่อตรวจพบความแตกต่างที่เพียงพอ ซึ่งหมายถึงการปรบมือ ไมโครคอนโทรลเลอร์จะส่งสัญญาณไปยังรีเลย์ สวิตช์รีเลย์และไฟเปิดขึ้น เมื่อปรบมือครั้งที่สองไฟจะดับลงอีกครั้ง

เสบียง

สิ่งทางกายภาพ:

  • 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: การสร้างโปรแกรม

การสร้างโปรแกรม
การสร้างโปรแกรม
การสร้างโปรแกรม
การสร้างโปรแกรม

ฉันชอบเขียนโค้ดในภาษาซี ดังนั้นโปรเจ็กต์นี้จึงเขียนด้วยภาษาซี

หากคุณยังไม่ได้ดาวน์โหลดและติดตั้งซอฟต์แวร์ที่จำเป็น ให้ดาวน์โหลดและติดตั้งทันที

ทำตามขั้นตอนต่อไปนี้:

  1. เปิด AtmelStudio
  2. คลิกที่ "ไฟล์" -> "ใหม่" -> "โครงการ"
  3. คลิกที่ "โครงการปฏิบัติการ GCC C" ตั้งชื่อโครงการและที่ตั้งที่จะจัดเก็บ คลิก "ตกลง"
  4. ค้นหา ATmega328P คลิก "ATmega328P" -> "ตกลง"
  5. คลิกใน 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

USART เป็นโปรโตคอลการสื่อสารแบบอนุกรมที่สามารถใช้กับไมโครคอนโทรลเลอร์ได้ ฉันใช้บนไมโครคอนโทรลเลอร์เพื่อดูข้อมูลแอนะล็อกจากเซ็นเซอร์

USART ได้รับการตั้งโปรแกรมอย่างถูกต้องแล้ว โดยมีไฟล์ส่วนหัว (.h) และไฟล์ต้นทาง (.c) ดาวน์โหลดไฟล์ 2 ไฟล์และเพิ่มลงในโปรแกรมของคุณใน AtmelStudio

คลิกขวาที่ชื่อโครงการใน Solution Explorer คลิก "เพิ่ม" -> "รายการที่มีอยู่…" และเลือกไฟล์ที่ดาวน์โหลด 2 ไฟล์

ขั้นตอนที่ 5: เรียกใช้โค้ด

การรันโค้ด
การรันโค้ด
การรันโค้ด
การรันโค้ด

เชื่อมต่อไมโครคอนโทรลเลอร์กับคอมพิวเตอร์ ค้นหา "ตัวจัดการอุปกรณ์" ในคอมพิวเตอร์ของคุณแล้วเปิดขึ้น มองหา "พอร์ต (COM & LPT)" และจำพอร์ต COM ที่ไมโครคอนโทรลเลอร์เปิดอยู่

เปิด PuTTY และคลิกที่ "ซีเรียล" พิมพ์พอร์ต COM ที่คุณพบของไมโครคอนโทรลเลอร์แล้วคลิก "เปิด" เทอร์มินัลปรากฏขึ้น ปล่อยไว้ตอนนี้

กลับไปที่ AtmelStudio เพื่อเลือกเครื่องมือที่เหมาะสมสำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์

  1. คลิกที่เครื่องมือค้อน
  2. เลือกดีบักเกอร์/โปรแกรมเมอร์ "mEDBG*ATML"
  3. เลือกอินเทอร์เฟซ "debugWIRE"
  4. คลิก "เริ่มโดยไม่มีการดีบัก"

โปรแกรมจะสร้างและเขียน

เมื่อโปรแกรมทำงานอย่างถูกต้อง คุณจะเห็นค่าจำนวนเต็มเป็น puTTY การใช้ไขควง ฉันสามารถเปลี่ยนค่าที่เห็นใน puTTY ได้โดยหมุนสกรูที่เซ็นเซอร์ เซ็นเซอร์ของฉันให้ค่าตั้งแต่ 0 ถึง 1,000 เมื่อหมุนสกรูจนสุด ฉันหมุนสกรูเป็น 100 (10%) ของมูลค่าทั้งหมด ฉันพบว่าสิ่งนี้ใช้ได้กับฉัน

ขั้นตอนที่ 6: เปลี่ยนความไว

ในการปรับความไวแสงเมื่อเปิดไฟ คุณสามารถใช้ 2 ตัวเลือกแต่เลือกอย่างใดอย่างหนึ่งไม่ใช่ทั้งสองอย่าง:

  1. เปลี่ยนสกรูเซ็นเซอร์
  2. เปลี่ยนค่ารหัส

ฉันใช้ตัวเลือกที่ 2 การเพิ่ม MINIMALVALUE จะทำให้มีความไวน้อยลง ลดลงทำให้มีความละเอียดอ่อนมากขึ้น

#define MINIMALVALUE 5

ขั้นตอนที่ 7: สลับสิ่งที่คุณต้องการ

เปลี่ยนสิ่งที่คุณชอบ!
เปลี่ยนสิ่งที่คุณชอบ!
เปลี่ยนสิ่งที่คุณชอบ!
เปลี่ยนสิ่งที่คุณชอบ!

คำเตือน: ระวังเมื่อเปลี่ยนแรงดันไฟฟ้าที่สูงขึ้น

เมื่อคุณพอใจกับความไวของเซ็นเซอร์แล้ว คุณสามารถเปลี่ยนวงจรได้ เปลี่ยนวงจรตามภาพด้านบน ตอนนี้คุณสามารถสลับสิ่งที่คุณต้องการ!

แนะนำ: