// MetroPhones
// vgmlr
#include "SPI.h"
// Chip Select Pin
int csp = 10;
// Sensor Values
long dur, dis;
// Echo Pin
int echo = 4;
// Trigger Pin
int trig = 5;
// Position
int pos = 0;
// Centimeters
// Minimum Distance
int mindis = 0;
// Maximum Distance
int maxdis = 90; // 2.6FT
void setup() {
// Pot Com
SPI.begin();
pinMode(csp, OUTPUT);
// Set Chip Select LOW
digitalWrite(csp, LOW);
// Testing
Serial.begin (9600);
// Sensor Pins
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
}
void loop() {
// Poll Sensor
digitalWrite(trig, HIGH);
delay(10);
digitalWrite(trig, LOW);
dur = pulseIn(echo, HIGH);
// Convert to Centimeters
dis = dur / 58.2;
if (dis < maxdis) {
// Convert Distance to Pot (256 Steps)
pos = map(dis, mindis, maxdis, 0, 255);
// Alert Chip
SPI.transfer(0);
// Adjust Volume
SPI.transfer(pos);
} else if (dis > maxdis) {
pos = 255;
SPI.transfer(0);
SPI.transfer(pos);
}
// Testing
Serial.print(dis);
Serial.print(" ");
Serial.println(pos);
delay(100);
}