Daftar Isi:

Sakelar Clap-on: 7 Langkah (dengan Gambar)
Sakelar Clap-on: 7 Langkah (dengan Gambar)

Video: Sakelar Clap-on: 7 Langkah (dengan Gambar)

Video: Sakelar Clap-on: 7 Langkah (dengan Gambar)
Video: Simple Science Project | How to Make Clap On Clap Off Switch Circuit | Science Projects For School 2024, Juli
Anonim
Image
Image

Seorang kerabat bertanya kepada saya suatu kali apakah saya bisa membuat sakelar yang bereaksi terhadap tepukan tangan Anda. Jadi saya telah memesan beberapa hal untuk membuat proyek dan memutuskan untuk membuat instruksi sehingga semua orang dapat memiliki sakelar yang luar biasa seperti itu.

Mikrokontroler adalah otak dari proyek ini. Sebuah sensor suara terhubung ke mikrokontroler, sensor mengirimkan data analog ketika suara terdeteksi. Mikrokontroler diprogram untuk mendeteksi perbedaan suara yang besar. Ketika perbedaan yang cukup tinggi terdeteksi, yang berarti tepukan, mikrokontroler mengirimkan sinyal ke relai. Relai beralih dan lampu menyala. Saat bertepuk tangan untuk kedua kalinya, lampu akan mati lagi.

Perlengkapan

Barang fisik:

  • 1x ATmega328P Xplained Mini dengan kabel untuk pemrograman
  • 1x modul relai 5v 1 saluran (KY-019 atau serupa)
  • 1x Modul sensor suara (KY-038 atau serupa)
  • 1x papan tempat memotong roti
  • 6x kabel jumper Pria-Pria
  • 1x soket lampu dengan kabel (atau perangkat lain yang ingin Anda nyalakan)
  • 1x bola lampu
  • 1x resistor* (saya menggunakan 220 Ohm)
  • 1x LED*

Perangkat Lunak (unduh):

  • AtmelStudio 7.0(https://www.microchip.com/mplab/avr-support/atmel-studio-7)
  • Putty (www.putty.org)*

* Untuk tujuan pengujian

Langkah 1: Koneksi

Membuat Program
Membuat Program

Hubungkan semua kabel seperti yang ditunjukkan pada gambar.

Langkah 2: Membuat Program

Membuat Program
Membuat Program
Membuat Program
Membuat Program

Saya suka kode dalam C sehingga proyek ini ditulis dalam C.

Jika Anda belum mengunduh dan menginstal perangkat lunak yang diperlukan, unduh dan instal sekarang.

Sekarang ikuti langkah-langkah berikut:

  1. Buka AtmelStudio.
  2. Klik "File" -> "Baru" -> "Proyek".
  3. Klik pada "Proyek Eksekusi GCC C". Beri nama dan lokasi proyek Anda untuk disimpan. Klik "Oke".
  4. Cari ATmega328P. Klik "ATmega328P" -> "Oke".
  5. Klik Solution Explorer pada "main.c" untuk membuka program utama.

Langkah 3: Menambahkan Kode

Hapus kode yang sudah ada di main.c

Salin dan tempel kode berikut di main.c

#menentukan F_CPU 16000000

#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC(); uint16_t ReadADC(uint8_t ADCchannel); ganda val1, val2; int main(void) { // Inisialisasi USART USART_init(9600); USART_putstr("#USART init\n"); // Inisialisasi ADC InitADC(); USART_putstr("#ADC init\n"); // pin PC1 keluaran PORTC, sisanya masukan. DDRC = 0b00000010; // set nilai awal ke PORTC rendah. PORTC = 0b00000000; while(1) { //membaca nilai potensiometer // membaca nilai dan menyimpannya di val1 val1=ReadADC(0); _delay_ms(1); // baca nilai berikutnya dan simpan di val2 val2=ReadADC(0); karakter str[10]; // ReadADC() mengembalikan nilai dalam bilangan bulat. Jika kita ingin men-debug atau melihat nilai pada dempul, // nilai perlu diubah menjadi karakter agar USART dapat mencetaknya. itoa(val1, str, 10); USART_putstr(str); USART_putstr("\n"); // jika 2 nilai memiliki perbedaan tertentu. Suara terdeteksi dan mengganti port. // MINIMALVALUE dapat diubah, peningkatan akan membuatnya kurang sensitif. Penurunan akan membuatnya lebih sensitif if(val1-val2 > MINIMALVALUE || val2-val1 > MINIMALVALUE) { PORTC ^= 0b00000010; // CAHAYA DI UC _delay_ms(200); } } } void InitADC() { // Pilih Vref=AVcc ADMUX |= (1<<REFS0); //set prescaller ke 128 dan aktifkan ADC ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADEN); } uint16_t ReadADC(uint8_t ADCchannel) { //pilih channel ADC dengan safety mask ADMUX = (ADMUX & 0xF0) | (saluran ADC & 0x0F); //modus konversi tunggal ADCSRA |= (1<<ADSC); // tunggu sampai konversi ADC selesai while(ADCSRA & (1<<ADSC)); mengembalikan ADC; }

Langkah 4: Menambahkan USART

Menambahkan USART
Menambahkan USART

USART adalah protokol komunikasi serial yang dapat digunakan pada mikrokontroler. Saya menggunakannya pada mikrokontroler untuk melihat data analog dari sensor.

USART sudah diprogram dengan benar, berisi file header(.h) dan source(.c). Unduh 2 file dan tambahkan ke program Anda di AtmelStudio.

Klik kanan pada nama proyek di Solution Explorer. Klik "Tambah" -> "Item yang Ada…" dan pilih 2 file yang diunduh.

Langkah 5: Menjalankan Kode

Menjalankan Kode
Menjalankan Kode
Menjalankan Kode
Menjalankan Kode

Hubungkan mikrokontroler ke komputer. Cari di komputer Anda untuk "manajer perangkat" dan buka. Cari "Port (COM & LPT)" dan ingat port COM mikrokontroler aktif.

Buka Putty dan klik "Serial" ketik port COM yang Anda temukan dari mikrokontroler dan klik "Buka". Sebuah terminal muncul, biarkan untuk saat ini.

Kembali ke AtmelStudio untuk memilih alat yang tepat untuk memprogram mikrokontroler.

  1. Klik pada alat palu.
  2. Pilih debugger/programmer "mEDBG*ATML".
  3. Pilih antarmuka "debugWIRE".
  4. Klik "mulai tanpa debugging".

Program akan membangun dan menulis.

Ketika program berjalan dengan benar, Anda akan melihat nilai integer dalam putTY. Menggunakan obeng saya dapat mengubah nilai yang terlihat pada dempul dengan memutar sekrup pada sensor. Sensor saya memberikan nilai dari 0 hingga 1000 saat memutar sekrup sepenuhnya. Saya memutar sekrup ke 100 (10%) dari nilai total. Saya telah menemukan bahwa ini bekerja untuk saya.

Langkah 6: Ubah Sensitivitas

Untuk mengatur sensitivitas saat lampu menyala, Anda dapat menggunakan 2 opsi, tetapi pilih salah satu bukan keduanya:

  1. Ganti sekrup sensor;
  2. Ubah nilai kode.

Saya menggunakan opsi 2. Meningkatkan MINIMALVALUE akan membuatnya kurang sensitif, penurunan membuatnya lebih sensitif.

#tentukan NILAI MINIMAL 5

Langkah 7: Ganti Apapun yang Anda Suka

Beralih Apa Pun yang Anda Suka!
Beralih Apa Pun yang Anda Suka!
Beralih Apa Pun yang Anda Suka!
Beralih Apa Pun yang Anda Suka!

PERINGATAN: Hati-hati saat mengganti voltase yang lebih tinggi

Saat Anda puas dengan sensitivitas sensor, Anda dapat mengubah sirkuitnya. Ubah rangkaian seperti gambar di atas. Anda sekarang dapat beralih apa pun yang Anda suka!

Direkomendasikan: