Litar

Lampu Lonely: 5 Langkah (dengan Gambar)

Lonely😔

Lonely😔

Isi kandungan:

Anonim

Lampu Lonely adalah lampu yang merujuk kepada orang-orang di metropolis. Orang akan berasa kesunyian jika tidak ada bunyi di sekeliling mereka atau tidak ada yang bercakap dengan mereka. Sama seperti itu, lampu kesepian ini juga memerlukan perhatian orang ramai. Orang perlu mengambil penerima telefon maka lampu ini akan beralih kepada orang ramai. Jika orang bercakap dengan lampu ini melalui penerima telefon itu, lampu ini akan menyala dan menukar kecerahan berdasarkan kelantangan. Jika tiada bunyi selama 5 saat, lampu ini akan kembali.

Bekalan:

Langkah 1: Bahan

Perkara yang anda perlukan:

1. Arduino Nano

2. papan roti separuh saiz

3. Adafruit Breakout Sensor Sentuhan Capacitive 12-Key

4.Electret Amplifier Mikrofon

5.USB lightbulb

6. USB Type A Breakout Perempuan

6.Standard servo motor

7.Popper Foil Tape

8. Penampung

9.Glue gun

10. wayar pelompat

Langkah 2: Litar

Langkah 3: Kod

#include
#include #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 () {// put your setup code here, to run once: Serial.begin (9600); myservo.attach (9); pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT);

sementara (! Serial) {// diperlukan untuk menjaga leonardo / mikro dari bermula terlalu cepat! kelewatan (10); }

jika (! cap.begin (0x5A)) {Serial.println ("MPR121 tidak dijumpai, periksa pendawaian?"); sementara (1); }}

kekosongan gelung () {// masukkan kod utama anda di sini, untuk berjalan berulang kali: currtouched = cap.touched (); // Serial.println (currtouched);

untuk (uint8_t i = 0; i <12; i ++) {/ / jika ia * disentuh dan * tidak * disentuh sebelum ini, amaran! jika ((currtouched & _BV (i)) &&! (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("disentuh"); Serial.println (millis () - lastEvent); jika (millis () - lastEvent> 50) {// toggle LED dan tetapkan output ledOn = true; lastTalkTime = millis (); digitalWrite (ledPin1, ledOn? TINGGI: RENDAH); } lastEvent = millis (); } // jika ia * disentuh dan kini * tidak *, amaran! jika (! (currtouched & _BV (i)) && (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("dilepaskan"); lastEvent = 0; ledOn = false; }} lasttouched = currtouched; jika (ledOn) {pos = 180; myservo.write (pos); soundReading = analogRead (soundSensorPin); // Serial.println (soundReading);

jika (pos = 180 && soundReading> 800) {lastTalkTime = millis (); greenOn = true; } jika (millis () - lastTalkTime> 8000) {ledOn = false; } else if (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); jika (greenOn) {int outputValue = map (soundReading, 800, 1023, 0, 255); analogWrite (ledPin2, outputValue); } else {digitalWrite (ledPin2, greenOn); } kelewatan (100); }

Langkah 4: Bungkus It Up

Letakkan Arduino di bahagian bawah.

Buat lapisan pepejal kedua untuk gam servo motor stably.

Saya membuat telefon bimbit telefon.

Saya meletakkan sensor bunyi dan wayar jumper yang menghubungkan dengan sensor sentuh di dalam telefon bimbit. Kemudian saya menyalurkan wayar jumper dengan pita konduktif pada telefon bimbit.

Kemudian saya menggunakan benang bulu untuk menghias wayar.

Langkah 5: Demo