// MPU6050 example
// https://wokwi.com/arduino/projects/305937248748044864
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
#define NOTE_A4 440
#define NOTE_B3 247
#define NOTE_F1 44
const float GAMMA = 0.7;
const float RL10 = 50;
float distance;
const int TrigPin = 7;
const int EchoPin = 6;
#define BUTTON_PIN 4
#define SPEAKER_PIN 11
Adafruit_MPU6050 mpu;
int speak;
void setup(void) {
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(SPEAKER_PIN, OUTPUT);
pinMode(A0, INPUT);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
Serial.println("Ultrasonic sensor:");
while (!mpu.begin()) {
Serial.println("MPU6050 not connected!");
delay(1000);
}
Serial.println("MPU6050 ready!");
}
sensors_event_t event;
void loop() {
mpu.getAccelerometerSensor()->getEvent(&event);
int analogValue = analogRead(A0);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
distance = pulseIn(EchoPin, HIGH) / 58.0; //
Serial.print(distance);
Serial.print("cm");
Serial.println();
delay(1000);
Serial.println();
tone(SPEAKER_PIN,NOTE_A4, digitalRead(BUTTON_PIN));
if (lux < 50) {
digitalWrite(13,HIGH);
}else {
digitalWrite(13,LOW);
}
if(distance<150)
{tone(12,NOTE_A4, 50);}
else if(distance>150&&distance<300)
{tone(12,NOTE_B3, 50);}
else{tone(12,NOTE_F1,HIGH);}
if(event.acceleration.z > 15)
{for(int x=0;x<10;x++){
tone(12,NOTE_B3,50);
delay(1000);}}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
mpu1:INT
mpu1:AD0
mpu1:XCL
mpu1:XDA
mpu1:SDA
mpu1:SCL
mpu1:GND
mpu1:VCC
bz1:1
bz1:2
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND
ldr1:VCC
ldr1:GND
ldr1:DO
ldr1:AO
led1:A
led1:C
bz3:1
bz3:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r