วงจร

โคมไฟอันโดดเดี่ยว: 5 ขั้นตอน (พร้อมรูปภาพ)

เวก้าผับ ฉบับพิเศษ

เวก้าผับ ฉบับพิเศษ

สารบัญ:

Anonim

โคมไฟ Lonely เป็นโคมไฟที่บ่งบอกถึงผู้คนในเมือง ผู้คนจะรู้สึกเหงาหากไม่มีเสียงรบกวนรอบข้างหรือไม่มีใครพูดคุยกับพวกเขา เช่นเดียวกับที่โคมไฟอันโดดเดี่ยวนี้ต้องการความสนใจจากผู้คน ผู้คนต้องไปรับโทรศัพท์จากนั้นโคมไฟนี้จะหันไปหาคน หากผู้คนพูดคุยกับโคมไฟนี้ผ่านตัวรับสัญญาณโทรศัพท์หลอดไฟนี้จะเปิดและเปลี่ยนความสว่างตามระดับเสียง หากไม่มีสัญญาณรบกวนเป็นเวลา 5 วินาทีหลอดไฟนี้จะหันกลับ

วัสดุ:

ขั้นตอนที่ 1: วัสดุ

สิ่งที่คุณต้องการ:

1. Arduino Nano

2. เขียงหั่นขนมขนาดครึ่ง

3. ฝ่าวงล้อมเซ็นเซอร์เซนเซอร์แบบสัมผัส 12 คีย์ของ Adafruit

4. เครื่องขยายเสียงไมโครโฟนไฟฟ้า

หลอดไฟ 5.USB

6. USB Type A การฝ่าวงล้อมหญิง

6. เซอร์โวมอเตอร์มาตรฐาน

7. เทปฟอยล์ทองแดง

8.Container

9. ปืนกาว

10. สายจัมเปอร์

ขั้นตอนที่ 2: วงจร

ขั้นตอนที่ 3: รหัส

#include
#include #include "Adafruit_MPR121.h"

Adafruit_MPR121 cap = Adafruit_MPR121 ();

int pos = 0; Servo myservo;

const int ledPin1 = 13; const int ledPin2 = 11; บูล greenOn = false;

uint16_t lasttouched = 0; uint16_t currtouched = 0;

int soundSensorPin = A0; int soundReading = 0;

lastEvent ที่ไม่ได้ลงชื่อยาว = 0; บูลีน ledOn = false; lastTalkTime = 0 ที่ไม่ได้ลงชื่อ

การตั้งค่าเป็นโมฆะ () {// ใส่รหัสการตั้งค่าของคุณที่นี่เพื่อทำงานครั้งเดียว: Serial.begin (9600); myservo.attach (9); pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT);

ในขณะที่ (! อนุกรม) {// จำเป็นเพื่อป้องกันการเริ่มต้นเร็วเกินไป! ล่าช้า (10); }

ถ้า (! cap.begin (0x5A)) {Serial.println ("ไม่พบ MPR121 ตรวจสอบสายไฟหรือไม่"); ในขณะที่ (1); }}

void loop () {// ใส่รหัสหลักของคุณที่นี่เพื่อทำงานซ้ำ ๆ : currtouched = cap.touched (); // Serial.println (currtouched);

สำหรับ (uint8_t i = 0; i <12; i ++) {// ถ้าเป็น * * * * * * * * สัมผัสและ * ไม่ได้ * สัมผัสก่อนแจ้งเตือน! ถ้า ((ต่อคิว & _BV (i)) &&! (ล่าสุด & _BV (i)))) {Serial.print (i); Serial.println ("สัมผัส"); Serial.println (มิลลิวินาที () - lastEvent); if (millis () - lastEvent> 50) {// toggle LED และตั้งค่าเอาท์พุท ledOn = true; lastTalkTime = millis (); digitalWrite (ledPin1, ledOn? HIGH: LOW); } lastEvent = millis (); } // ถ้ามัน * ถูก * แตะแล้วตอนนี้ * ไม่ใช่ *, แจ้งเตือน! if (! (currtouched & _BV (i)) && (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("ปล่อยตัว"); 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; } ถ้า 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); if (greenOn) {int outputValue = map (soundReading, 800, 1023, 0, 255); analogWrite (ledPin2, outputValue); } else {digitalWrite (ledPin2, greenOn); } ล่าช้า (100); }

ขั้นตอนที่ 4: สรุป

ใส่ Arduino ที่ด้านล่าง

สร้างเลเยอร์ที่สองสำหรับกาวเซอร์โวมอเตอร์อย่างเสถียร

ฉันทำเครื่องโทรศัพท์

ฉันใส่เซ็นเซอร์เสียงและสายจัมเปอร์ที่เชื่อมต่อกับเซ็นเซอร์สัมผัสภายในโทรศัพท์ จากนั้นฉันก็บัดกรีสายจัมเปอร์พร้อมเทปนำไฟฟ้าบนโทรศัพท์มือถือ

จากนั้นฉันก็ใช้ไหมพรมเพื่อตกแต่งสายไฟ

ขั้นตอนที่ 5: การสาธิต