Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define trigPin 3
- #define echoPin 4
- #define vibrationPin 1
- #define potentiometrIn A1
- #define buttonPin 0
- #define minDist 2
- #define maxDist 100
- const int t = 200;
- long duration;
- long distance;
- long t1;
- long t2;
- long multiplier;
- long currentMax;
- bool isOn = false;
- int buttonState = LOW;
- int currentButtonState;
- void setup() {
- pinMode(trigPin, OUTPUT);
- pinMode(echoPin, INPUT);
- pinMode(vibrationPin, OUTPUT);
- pinMode(potentiometrIn, INPUT);
- }
- void loop() {
- currentButtonState = digitalRead(buttonPin);
- if (currentButtonState != buttonState) {
- buttonState = currentButtonState;
- if (buttonState == HIGH) {
- isOn = !isOn;
- }
- }
- if (isOn) {
- multiplier = analogRead(potentiometrIn);
- multiplier = constrain(multiplier, 0, 1023);
- currentMax = (maxDist * multiplier) / 1023 + 2*minDist;
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- duration = pulseIn(echoPin, HIGH);
- distance = duration / 58;
- distance = constrain(distance, minDist, currentMax);
- t2 = (long(t)*(distance-minDist))/(currentMax-minDist);
- t1 = t - t2;
- if (t1 >= 3) {
- digitalWrite(vibrationPin, HIGH);
- delay(t1);
- }
- if (t2 >= 3) {
- digitalWrite(vibrationPin, LOW);
- delay(t2);
- }
- } else {
- digitalWrite(vibrationPin, LOW);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement