Sirkuit

A Lonely Lamp: 5 Steps (with Pictures)

A lonely lamp

A lonely lamp

Daftar Isi:

Anonim

A Lonely Lamp adalah lampu yang menyinggung orang-orang di kota metropolitan. Orang akan merasa kesepian jika tidak ada kebisingan di sekitar mereka atau tidak ada yang berbicara dengan mereka. Sama seperti itu, lampu kesepian ini juga membutuhkan perhatian orang. Orang harus mengangkat gagang telepon maka lampu ini akan menghadap ke orang. Jika orang berbicara dengan lampu ini melalui penerima telepon itu, lampu ini akan menyala dan mengubah kecerahan berdasarkan volume. Jika tidak ada suara selama 5 detik, lampu ini akan kembali.

Persediaan:

Langkah 1: Bahan

Hal-hal yang Anda butuhkan:

1. Arduino Nano

2. Papan tempat memotong roti ukuran setengah

3. Adafruit 12-Key Capacitive Touch Sensor Breakout

4.Electret Mikrofon Amplifier

5.USB bola lampu

6. USB Type A Female Breakout

6. motor servo standar

7.Copper Foil Tape

8. wadah

9.Glue gun

10. Kabel pelompat

Langkah 2: Sirkuit

Langkah 3: Kode

#termasuk
#termasuk #include "Adafruit_MPR121.h"

Adafruit_MPR121 cap = Adafruit_MPR121 ();

int pos = 0; Servo myservo;

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

uint16_t lasttouched = 0; uint16_t currtouched = 0;

int soundSensorPin = A0; int soundReading = 0;

unsigned long lastEvent = 0; boolean ledOn = false; unsigned long lastTalkTime = 0;

void setup () {// masukkan kode pengaturan Anda di sini, untuk dijalankan sekali: Serial.begin (9600); myservo.attach (9); pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT);

while (! Serial) {// diperlukan untuk menjaga leonardo / micro agar tidak memulai terlalu cepat! keterlambatan (10); }

if (! cap.begin (0x5A)) {Serial.println ("MPR121 tidak ditemukan, periksa perkabelan?"); sementara (1); }}

void loop () {// masukkan kode utama Anda di sini, untuk dijalankan berulang kali: currtouched = cap.touched (); // Serial.println (currtouched);

for (uint8_t i = 0; i <12; i ++) {// jika * disentuh dan * tidak * disentuh sebelumnya, waspada! if ((currtouched & _BV (i)) &&! (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("disentuh"); Serial.println (millis () - lastEvent); if (millis () - lastEvent> 50) {// beralih LED dan atur output ledOn = true; lastTalkTime = millis (); digitalWrite (ledPin1, ledOn? HIGH: LOW); } lastEvent = millis (); } // jika * disentuh * dan sekarang * tidak *, waspada! if (! (currtouched & _BV (i)) && (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("dirilis"); lastEvent = 0; ledOn = false; }} lasttouched = currtouched; if (ledOn) {pos = 180; myservo.write (pos); soundReading = analogRead (soundSensorPin); // Serial.println (soundReading);

if (pos = 180 && soundReading> 800) {lastTalkTime = millis (); greenOn = true; } if (millis () - lastTalkTime> 8000) {ledOn = false; } lain jika (millis () - lastTalkTime> 800) {greenOn = false; } // Serial.println (ledOn); } else {pos = 0; greenOn = false; myservo.write (pos); digitalWrite (ledPin1, LOW); } // Serial.print (greenOn); Serial.println (soundReading); if (greenOn) {int outputValue = map (soundReading, 800, 1023, 0, 255); analogWrite (ledPin2, outputValue); } else {digitalWrite (ledPin2, greenOn); } delay (100); }

Langkah 4: Bungkus Ini

Letakkan Arduino di bagian bawah.

Buat lapisan solid kedua untuk merekatkan motor servo secara stabil.

Saya membuat handset telepon.

Saya meletakkan sensor suara dan kabel jumper yang terhubung dengan sensor sentuh di dalam handset. Kemudian saya menyolder kabel jumper dengan kaset konduktif pada handset.

Lalu saya menggunakan benang wol untuk menghias kabel.

Langkah 5: Demo