Circuite

O lampă singuratică: 5 pași (cu imagini)

Dhola Maru Full Movie | Naresh Kanodia Gujarati Movie

Dhola Maru Full Movie | Naresh Kanodia Gujarati Movie

Cuprins:

Anonim

O lampă singuratică este o lampă care face aluzie la oamenii din metropola. Oamenii se vor simți singurați dacă nu există zgomot în jurul lor sau nimeni nu vorbește cu ei. Doar așa, această lampă singuratică are nevoie și de atenția oamenilor. Oamenii trebuie să ridice receptorul telefonic, atunci această lampă se va întoarce să se confrunte cu oamenii. Dacă oamenii vorbesc cu această lampă prin receptorul telefonic, această lampă va porni și va schimba luminozitatea în funcție de volum. Dacă nu există zgomot timp de 5 secunde, această lampă se va întoarce.

Furnituri:

Pasul 1: Materiale

Lucrurile de care aveți nevoie:

1. Arduino Nano

2. Pâlnie de mărime

3. Breakout-ul senzor tactic Adafruit cu 12 taste

4. Amplificator microfon pentru microfoane

5.Lampa de lumină USB

6. USB Breakout de tip A pentru femei

6. Servomotor standard

7.Copper Foil Tape

8.Container

9. Arma cu clei

10. Sârmă de jontare

Pasul 2: Circuit

Pasul 3: Cod

#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 = fals;

uint16_t lasttouched = 0; uint16_t currtouched = 0;

int soundSensorPin = A0; int soundReading = 0;

nesemnate long lastvent = 0; boolean ledOn = fals; nesemnate long lastTalkTime = 0;

void setup () {// pune codul de instalare aici, pentru a rula o singură dată: Serial.begin (9600); myservo.attach (9); pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT);

în timp ce (! Serial) {// trebuie să țină leonardo / micro de la pornire prea repede! întârziere (10); }

dacă (! cap.begin (0x5A)) {Serial.println ("MPR121 nu a fost găsit, verificați cablurile?"); în timp ce (1); }}

void loop () {// pune codul principal aici, pentru a rula în mod repetat: currtouched = cap.touched (); // Serial.println (curtouched);

pentru (uint8_t i = 0; i <12; i ++) {// dacă * este * atinsă și * wasnt * atins înainte, alertă! dacă ((curtouched & _BV (i)) &&! (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("atins"); Serial.println (Millis () - lastEvent); dacă (millis () - lastEvent> 50) {// comutați LED-ul și setați ledOn = true; lastTalkTime = milis (); digitalWrite (ledPin1, ledOn? HIGH: LOW); } lastEvent = milis (); } // dacă * a fost * atins și acum * isnt *, alertă! dacă (! (curtouched & _BV (i)) && (lasttouched & _BV (i))) {Serial.print (i); Serial.println ("eliberat"); lastEvent = 0; ledOn = false; }} lasttouched = curtouched; dacă (ledOn) {pos = 180; myservo.write (poz); soundReading = analogRead (soundSensorPin); // Serial.println (soundReading);

dacă (pos = 180 && soundReading> 800) {lastTalkTime = millis (); greenOn = true; } dacă (millis () - lastTalkTime> 8000) {ledOn = false; } altfel dacă (millis () - lastTalkTime> 800) {greenOn = false; } // Serial.println (ledOn); } altceva {pos = 0; greenOn = false; myservo.write (poz); digitalWrite (ledPin1, LOW); } // Serial.print (greenOn); Serial.println (soundReading); dacă (greenOn) {int outputValue = hartă (soundReading, 800, 1023, 0, 255); analogWrite (ledPin2, outputValue); } altceva {digitalWrite (ledPin2, greenOn); } întârziere (100); }

Pasul 4: Înfășurați-l

Pune Arduino în partea de jos.

Faceți un al doilea strat solid pentru a lipi stabil servomotorul.

Am făcut un telefon.

Am pus senzorul de sunet și firele de legătură care se conectează cu senzorul de atingere din interiorul receptorului. Apoi am legat fire de jumper cu benzi conductive pe receptor.

Apoi am folosit fire de lână pentru a decora firele.

Pasul 5: Demonstrație