Devreler

Yalnız Bir Lamba: 5 Adım (Resimlerle)

Служебный роман 1 серия (комедия, реж. Эльдар Рязанов, 1977 г.)

Служебный роман 1 серия (комедия, реж. Эльдар Рязанов, 1977 г.)

İçindekiler:

Anonim

Yalnız bir Lamba, metropoldeki insanlara hitap eden bir lambadır. Etraflarında gürültü yoksa veya onlarla konuşmuyorsa insanlar kendilerini yalnız hissedeceklerdir. Aynen böyle, bu yalnız lamba da insanların dikkatine ihtiyaç duyuyor. İnsanlar telefon alıcısını almalı, bu lamba insanlara yüz yüze gelecektir. İnsanlar bu lambayla bu telefon alıcısı üzerinden konuşurlarsa, bu lamba yanar ve ses seviyesine göre parlaklığı değiştirir. 5 saniye boyunca gürültü yoksa, bu lamba geri dönecektir.

Gereçler:

1. Adım: Malzemeler

İhtiyacınız olan şeyler:

1. Arduino Nano

2. Yarım boy breadboard

3. Adafruit 12-Key Kapasitif Dokunmatik Sensör Breakout

4. Elektrik Mikrofon Yükselticisi

5.USB ampul

6. USB Tip A Dişi Koparma

6. standart servo motor

7. bakır folyo bant

8.Container

9. tutkal tabancası

10. Atlama telleri

Adım 2: Devre

Adım 3: Kod

#Dahil etmek
#Dahil etmek #include "Adafruit_MPR121.h"

Adafruit_MPR121 kap = Adafruit_MPR121 ();

int pos = 0; Servo myservo;

const int ledPin1 = 13; const int ledPin2 = 11; bool greenOn = false;

uint16_t son dokunulduğunda = 0; uint16_t düştü = 0;

int soundSensorPin = A0; int soundReading = 0;

işaretsiz uzun lastEvent = 0; boolean ledOn = yanlış; işaretsiz uzun lastTalkTime = 0;

void setup () {// bir kez çalıştırmak için kurulum kodunuzu buraya yerleştirin: Serial.begin (9600); myservo.attach (9); pinMode (ledPin1, OUTPUT); pinMode (ledPin2, ÇIKIŞ);

while (! Serial) {// leonardo / micro cihazının çok hızlı başlatılmasını önlemek için gerekli! gecikmesi (10); }

if (! cap.begin (0x5A)) {Serial.println ("MPR121 bulunamadı, kabloları kontrol et?"); iken (1); }}

void loop () {// tekrar tekrar çalıştırmak için ana kodunuzu buraya yerleştirin: currtouched = cap.touched (); // Seri.println (kısaltılmış);

(uint8_t i = 0; i <12; i ++) {// eğer * dokunulursa * dokunmazsa * dokunmazsa uyar! if ((currtouched & _BV (i)) &&! (son dokundu & _BV (i))) {Seri.print (i); Seri.println ("dokundu"); Serial.println (Millis () - lastEvent); if (millis () - lastEvent> 50) {// LED'i değiştirin ve ledOn çıkışını ayarlayın = true; lastTalkTime = millis (); digitalWrite (ledPin1, ledOn? HIGH: DÜŞÜK); } lastEvent = millis (); } // eğer * dokunulduysa ve şimdi * isnt * ise, uyarı! if (! (currtouched & _BV (i)) && (son dokunan & _BV (i))) {Seri.print (i); Serial.println ("yayımlandı"); lastEvent = 0; ledOn = yanlış; }} lasttouched = currtouched; if (ledOn) {pos = 180; myservo.write (poz); soundReading = analogRead (soundSensorPin); // Seri.println (soundReading);

if (pos = 180 && soundReading> 800) {lastTalkTime = millis (); greenOn = true; } if (millis () - lastTalkTime> 8000) {ledOn = yanlış; } else if (millis () - lastTalkTime> 800) {greenOn = false; } // Seri.println (ledOn); } else {pos = 0; greenOn = yanlış; myservo.write (poz); digitalWrite (ledPin1, DÜŞÜK); } // Seri.print (greenOn); Serial.println (soundReading); eğer (greenOn) {int outputValue = harita (soundReading, 800, 1023, 0, 255); analogWrite (ledPin2, outputValue); } else {digitalWrite (ledPin2, greenOn); } gecikme (100); }

Adım 4: Sarın

Arduino'yu en alta koyun.

Servo motoru sabit bir şekilde yapıştırmak için ikinci bir katı tabaka yapın.

Telefon ahizesi yaptım.

El cihazının içine dokunma sensörüyle bağlanan ses sensörünü ve atlama tellerini yerleştirdim. Daha sonra ahizede teller üzerinde iletken bantlar bulunan lehim telleri kullandım.

Sonra telleri süslemek için yün ipliği kullandım.

5. Adım: Demo