Osamljena svetilka je svetilka, ki omenja ljudi v metropoli. Ljudje se bodo počutili osamljeni, če okoli njih ni hrupa ali se nihče ne pogovarja z njimi. Samo tako, ta osamljena svetilka potrebuje tudi pozornost ljudi. Ljudje morajo dvigniti telefonski sprejemnik, potem pa se bo ta svetilka obrnila na ljudi. Če ljudje prek te telefonske sprejemnike govorijo s to žarnico, se bo ta lučka vklopila in spremenila svetlost glede na glasnost. Če 5 sekund ne bo šuma, se bo ta žarnica obrnila nazaj.
Dobave:
1. korak: Materiali
Stvari, ki jih potrebujete:
1. Arduino Nano
2. Polovična miza
3. Adafruit 12-Key Capacitive Touch Sensor Breakout
4.Electret mikrofonski ojačevalnik
5.USB žarnica
6. USB tip ženski preboj
6.Standardni servo motor
7.Copper folija trak
8.Container
9.Glu puško
10. Premostite žice
2. korak: Krog
3. korak: Koda
#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;
nepodpisano dolgo zadnjeEvent = 0; boolean ledOn = false; nepodpisano dolgo lastTalkTime = 0;
void setup () {// tukaj namestite kodo za nastavitev, da se zažene enkrat: Serial.begin (9600); myservo.attach (9); pinMode (ledPin1, IZHOD); pinMode (ledPin2, IZHOD);
medtem ko (! Serial) {// je potrebno, da leonardo / micro začne preveč hitro! zamuda (10); }
if (! cap.begin (0x5A)) {Serial.println ("MPR121 ni mogoče najti, preverite ožičenje?"); medtem ko (1); }}
void loop () {// tukaj je postavil vašo glavno kodo za večkratno izvajanje: currtouched = cap.touched (); // Serial.println (currtouched);
za (uint8_t i = 0; i <12; i ++) {// če se je * dotaknil in * ni bil dotaknjen prej, opozorilo! if ((currtouched & _BV (i)) &&! (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("dotaknil"); Serial.println (millis () - lastEvent); if (millis () - lastEvent> 50) {// preklopite LED in nastavite izhodni ledOn = true; lastTalkTime = millis (); digitalWrite (ledPin1, ledOn? HIGH: LOW); } lastEvent = millis (); } // če se je * dotaknil in zdaj * ni *, opozorilo! if (! (currtouched & _BV (i)) && (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("sprosti"); 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 = mapa (soundReading, 800, 1023, 0, 255); analogWrite (ledPin2, outputValue); } else {digitalWrite (ledPin2, greenOn); } zamuda (100); }
4. korak: zavijte ga
Postavite Arduino na dno.
Naredite drugo trdno plast za stabilno lepljenje servo motorja.
Naredil sem telefonsko slušalko.
Postavil sem zvočni senzor in žično povezavo, ki sta povezana s senzorjem na dotik v slušalki. Potem sem na liniji spajkal žičnice s prevodnimi trakovi.
Potem sem uporabil volneno prejo za dekoriranje žic.