Usamljena svjetiljka je svjetiljka koja aludira na ljude u metropoli. Ljudi će se osjećati usamljeni ako nema buke oko njih ili nitko ne razgovara s njima. Samo tako, ovoj usamljenoj svjetiljki trebaju i ljudi. Ljudi moraju pokupiti telefonski prijemnik, a ova će se svjetiljka okrenuti licem prema ljudima. Ako ljudi preko te telefonske slušalice razgovaraju s ovom lampom, ova će se lampica uključiti i promijeniti svjetlinu ovisno o glasnoći. Ako nema buke tijekom 5 sekundi, ova žaruljica će se vratiti.
Pribor:
Korak 1: Materijali
Stvari koje trebate:
1. Arduino Nano
2. Polupansionska ploča
3. Adafruit 12-Key kapacitivni senzor osjetljivosti na dodir
4.Elektretno mikrofonsko pojačalo
5.USB žarulja
6. USB Type ženski bijeg
6.Standard servo motor
7.Poklopna folijska traka
8.Container
9.Glue pištolj
10. Kratkospojne žice
Korak 2: Krug
Korak 3: Kod
#include
#include
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;
nepotpisano dugo lastEvent = 0; boolean ledOn = false; nepotpisano dugo lastTalkTime = 0;
void setup () {// ovdje postavite vaš kod za postavljanje, za pokretanje: Serial.begin (9600); myservo.attach (9); pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT);
dok je (! Serial) {// potreban da bi se leonardo / micro počeo prebrzo pokretati! kašnjenje (10); }
ako (! cap.begin (0x5A)) {Serial.println ("MPR121 nije pronađen, provjerite ožičenje?"); dok (1); }}
void loop () {// ovdje stavite vaš glavni kôd da bi se više puta izvodio: currtouched = cap.touched (); // Serial.println (currtouched);
za (uint8_t i = 0; i <12; i ++) {// ako je * dotaknut i * nije * dotaknuo prije, uzbuna! if ((currtouched & _BV (i)) &&! (zadnje dotaknuto & _BV (i))) {Serial.print (i); Serial.println ("dodirnuo"); Serial.println (millis () - lastEvent); if (millis () - lastEvent> 50) {// uključi LED i postavi izlazni ledOn = true; lastTalkTime = millis (); digitalWrite (ledPin1, ledOn? HIGH: LOW); } lastEvent = millis (); } // ako je * bio * dotaknut i sada * nije *, uzbuna! if (! (currtouched & _BV (i)) && (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("izdano"); 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; } else if (millis () - lastTalkTime> 800) {greenOn = false; } // Serial.println (ledOn); } drugo {pos = 0; greenOn = false; myservo.write (pos); digitalWrite (ledPin1, LOW); } // Serial.print (greenOn); Serial.println (soundReading); if (greenOn) {int outputValue = karta (soundReading, 800, 1023, 0, 255); analogWrite (ledPin2, outputValue); } else {digitalWrite (ledPin2, greenOn); } kašnjenje (100); }
Korak 4: Zamotajte ga
Stavite Arduino na dno.
Napravite drugi čvrsti sloj da biste stabilizirali servo motor.
Napravio sam telefonsku slušalicu.
Stavio sam zvučni senzor i kratkospojnik koji se povezuju sa senzorom za dodir unutar slušalice. Zatim sam zalemio žice s kratkospojnikom s vodljivim vrpcama na slušalici.
Tada sam koristio vunenu pređu za ukrašavanje žica.