![](images/metrophones_1.jpg)
- // MetroPhones
- // pkvi
- #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);
- }