Isang Lonely Lamp ay isang lampara na tumutukoy sa mga tao sa lunsod. Ang mga tao ay madama na malungkot kung walang ingay sa paligid nila o walang nakikipag-usap sa kanila. Katulad nito, ang malungkot na lampara na ito ay nangangailangan din ng pansin ng mga tao. Kinakailangan ng mga tao na kunin ang receiver ng telepono at pagkatapos ay ilalagay ito sa harap ng mga tao. Kung ang mga tao ay makipag-usap sa lampara na ito sa pamamagitan ng receiver ng telepono, ang lampara na ito ay bubuksan at palitan ang liwanag batay sa lakas ng tunog. Kung walang ingay sa loob ng 5 segundo, ibabalik ang lampara na ito.
Mga Kagamitan:
Hakbang 1: Materyales
Ang mga bagay na kailangan mo:
1. Arduino Nano
2. Half-size na breadboard
3. Adafruit 12-Key Capacitive Touch Sensor Breakout
4.Electret Microphone Amplifier
5.USB lightbulb
6. USB Uri Isang Babae Breakout
6.Standard servo motor
7.Copper Foil Tape
8.Container
9.Glue gun
10. Mga wire ng lumulukso
Hakbang 2: Circuit
Hakbang 3: Code
# isama
# isama
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;
walang bisa setup () {// ilagay ang iyong setup code dito, upang tumakbo nang isang beses: Serial.begin (9600); myservo.attach (9); pinMode (ledPin1, Output); pinMode (ledPin2, Output);
habang (! Serial) {// kailangan upang mapanatili ang leonardo / micro mula sa pagsisimula ng masyadong mabilis! pagkaantala (10); }
kung (! cap.begin (0x5A)) {Serial.println ("Hindi nakita ang MPR121, suriin ang mga kable?"); habang (1); }}
walang bisa loop () {// ilagay ang iyong pangunahing code dito, upang tumakbo nang paulit-ulit: currtouched = cap.touched (); // Serial.println (currtouched);
para sa (uint8_t i = 0; i <12; i ++) {/ kung ito ay * hinawakan at * ay hindi hinawakan bago, alerto! kung ((currtouched & _BV (i)) &&! (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("hinawakan"); Serial.println (millis () - lastEvent); kung (millis () - lastEvent> 50) {// toggle LED at i-set ang output ledOn = totoo; lastTalkTime = millis (); digitalWrite (ledPin1, ledOn? HIGH: LOW); } lastEvent = millis (); } // kung ito ay * hinawakan at ngayon * ay hindi *, alerto! kung (! (currtouched & _BV (i)) && (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("inilabas"); lastEvent = 0; ledOn = false; }} lasttouched = currtouched; kung (ledOn) {pos = 180; myservo.write (pos); soundReading = analogRead (soundSensorPin); // Serial.println (soundReading);
kung (pos = 180 && soundReading> 800) {lastTalkTime = millis (); greenOn = totoo; } kung (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); kung (greenOn) {int outputValue = mapa (soundReading, 800, 1023, 0, 255); analogWrite (ledPin2, outputValue); } else {digitalWrite (ledPin2, greenOn); } pagkaantala (100); }
Hakbang 4: I-wrap It Up
Ilagay ang Arduino sa ibaba.
Gumawa ng isang pangalawang solid na patong upang makapaghiwalay ng servo motor.
Gumawa ako ng handset ng telepono.
Inilalagay ko ang sound sensor at jumper wires na kumonekta sa touch sensor sa loob ng handset. Pagkatapos ay nilagyan ko ng wire jumper na may mga kondaktibo na teyp sa handset.
Pagkatapos ay ginamit ko ang yari sa lana na sinulid upang palamutihan ang mga wire.