İçindekiler:

Alkış Anahtarı: 7 Adım (Resimli)
Alkış Anahtarı: 7 Adım (Resimli)

Video: Alkış Anahtarı: 7 Adım (Resimli)

Video: Alkış Anahtarı: 7 Adım (Resimli)
Video: EVLAT AYRIMI YAPAN BABANIN PİŞMANLIĞI abone ol bildirimleri açın 2024, Temmuz
Anonim
Image
Image

Bir keresinde bir akrabam, el çırpmaya tepki veren bir anahtar yapıp yapamayacağımı sordu. Bu yüzden bir proje oluşturmak için bazı şeyler sipariş ettim ve herkesin böyle harika bir geçişe sahip olabilmesi için bir talimat vermeye karar verdim.

Mikrodenetleyici bu projenin beynidir. Mikrodenetleyiciye bir ses sensörü bağlanır, ses algılandığında sensör analog veri gönderir. Mikrodenetleyici, sesteki büyük farklılıkları algılamak üzere programlanmıştır. Yeterince yüksek bir fark algılandığında, yani bir alkış, mikrodenetleyici röleye bir sinyal gönderir. Röle değişir ve ışık yanar. İkinci kez alkışlarken, ışık tekrar kapanacaktır.

Gereçler

Fiziksel şeyler:

  • Programlama için kablolu 1x ATmega328P Xplained Mini
  • 1x 5v röle modülü 1 kanallı (KY-019 veya benzeri)
  • 1x Ses sensörü modülü (KY-038 veya benzeri)
  • 1x Ekmek Tahtası
  • 6x Erkek-Erkek atlama teli
  • Kablolu 1x ışık soketi (veya açmak istediğiniz başka bir cihaz)
  • 1x ampul
  • 1x direnç* (220 Ohm kullanıyorum)
  • 1x LED*

Yazılım indir):

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

* Test amaçlı

Adım 1: Bağlantılar

Programın Oluşturulması
Programın Oluşturulması

Tüm kabloları resimde gösterildiği gibi bağlayın.

Adım 2: Programı Oluşturma

Programın Oluşturulması
Programın Oluşturulması
Programın Oluşturulması
Programın Oluşturulması

C ile kodlamayı seviyorum, bu yüzden bu proje C ile yazılmış.

Gerekli yazılımı henüz indirip kurmadıysanız, şimdi indirin ve kurun.

Şimdi aşağıdaki adımları izleyin:

  1. AtmelStudio'yu açın.
  2. "Dosya" -> "Yeni" -> "Proje" üzerine tıklayın.
  3. "GCC C Yürütülebilir Projesi" üzerine tıklayın. Projenize depolamak için bir ad ve konum verin. "Tamam" ı tıklayın.
  4. ATmega328P'yi arayın. "ATmega328P" -> "Tamam" ı tıklayın.
  5. Ana programı açmak için "main.c" üzerindeki Çözüm Gezgini'ne tıklayın.

Adım 3: Kod Ekleme

Main.c'de zaten mevcut olan kodu silin

Aşağıdaki kodu main.c'ye kopyalayıp yapıştırın

#define F_CPU 16000000

#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC(); uint16_t ReadADC(uint8_t ADCchannel); çift val1, val2; int main(void) { // USART USART_init(9600); USART_putstr("#USART başlat\n"); // ADC'yi başlat InitADC(); USART_putstr("#ADC başlat\n"); // PORTC çıkışının PC1 pini, kalan giriş. DDRC = 0b00000010; // başlangıç değerlerini PORTC düşük olarak ayarla. PORTC = 0b00000000; while(1) { //potansiyometre değerini oku // değeri oku ve val1'e kaydet val1=ReadADC(0); _delay_ms(1); // sonraki değeri oku val2'de sakla val2=ReadADC(0); karakter dizisi[10]; // ReadADC(), değeri tamsayı olarak geri verir. Putty'de hata ayıklamak veya değeri görmek istiyorsak, // USART'ın yazdırabilmesi için değerin karakterlere dönüştürülmesi gerekir. itoa(val1, str, 10); USART_putstr(str); USART_putstr("\n"); // 2 değer arasında belirli bir fark varsa. Bir ses algılanır ve bir bağlantı noktasını değiştirir. // MINIMALVALUE değiştirilebilir, artırmak onu daha az hassas hale getirecektir. Azaltma, onu daha hassas hale getirecek if(val1-val2 > MINIMALVALUE || val2-val1 > MINIMALVALUE) { PORTC ^= 0b00000010; // IŞIK AÇIK UC _delay_ms(200); } } } void InitADC() { // Vref=AVcc ADMUX seçin |= (1<<REFS0); //önceden çağırıcıyı 128'e ayarlayın ve ADC ADCSRA'yı etkinleştirin |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADEN); } uint16_t ReadADC(uint8_t ADCchannel) { //güvenlik maskeli ADC kanalını seçin ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); //tek çevrim modu ADCSRA |= (1<<ADSC); // ADC dönüşümü tamamlanana kadar bekleyin while(ADCSRA & (1<<ADSC)); ADC'yi iade edin; }

Adım 4: USART Ekleme

USART ekleme
USART ekleme

USART, mikrodenetleyici üzerinde kullanılabilen bir seri iletişim protokolüdür. Sensörden gelen analog verileri görmek için mikrodenetleyicide kullanıyorum.

USART, bir başlık(.h) ve kaynak(.c) dosyası içeren, zaten doğru şekilde programlanmıştır. 2 dosyayı indirin ve AtmelStudio'daki programınıza ekleyin.

Solution Explorer'da proje adına sağ tıklayın. "Ekle" -> "Mevcut Öğe…" ye tıklayın ve indirilen 2 dosyayı seçin.

Adım 5: Kodu Çalıştırma

Kodu Çalıştırmak
Kodu Çalıştırmak
Kodu Çalıştırmak
Kodu Çalıştırmak

Mikrodenetleyiciyi bilgisayara bağlayın. Bilgisayarınızda "aygıt yöneticisi" arayın ve açın. "Bağlantı Noktaları (COM & LPT)" öğesini arayın ve mikro denetleyicinin açık olduğu COM bağlantı noktasını unutmayın.

PuTTY'yi açın ve "Seri" üzerine tıklayın, mikrodenetleyicide bulduğunuz COM portunu yazın ve "Aç" ı tıklayın. Bir terminal açılır, şimdilik bırakın.

Mikrodenetleyiciyi programlamak için doğru aracı seçmek için AtmelStudio'ya geri dönün.

  1. Çekiç aracına tıklayın.
  2. "mEDBG*ATML" hata ayıklayıcısını/programlayıcısını seçin.
  3. "debugWIRE" arayüzünü seçin.
  4. "Hata ayıklamadan başla"yı tıklayın.

Program oluşturacak ve yazacaktır.

Program doğru çalıştığında, puTTY'de tamsayı değerleri görürsünüz. Tornavida kullanarak sensör üzerindeki vidayı çevirerek puTTY'de görülen değeri değiştirebilirim. Sensörüm vidayı sonuna kadar çevirirken 0 ile 1000 arası değerler veriyor. Vidayı toplam değerin 100'üne (%10) çeviriyorum. Bunun benim için işe yaradığını öğrendim.

6. Adım: Hassasiyeti Değiştirin

Işık açıldığında hassasiyeti ayarlamak için 2 seçeneği kullanabilirsiniz, ancak ikisini birden değil birini seçin:

  1. Sensör vidasını değiştirin;
  2. Kod değerini değiştirin.

Seçenek 2'yi kullanıyorum. MINIMALVALUE değerini artırmak onu daha az duyarlı hale getirecek, azaltmak onu daha hassas hale getirecek.

#define MİNİMALDEĞER 5

7. Adım: İstediğiniz Her Şeyi Değiştirin

İstediğiniz Her Şeyi Değiştirin!
İstediğiniz Her Şeyi Değiştirin!
İstediğiniz Her Şeyi Değiştirin!
İstediğiniz Her Şeyi Değiştirin!

UYARI: Daha yüksek voltajları değiştirirken dikkat edin

Sensörün hassasiyetinden memnun kaldığınızda devreyi değiştirebilirsiniz. Devreyi yukarıdaki resimdeki gibi değiştirin. Artık istediğiniz her şeyi değiştirebilirsiniz!

Önerilen: