Arduino - Ultrasonic Sensor med lysdioder och Summer (4 / 5 steg)
Steg 4: programmering
/*
* IRremote bibliotek - Copyright 2009 Ken Shirriff
* skapad av Rui Santos, http://randomnerdtutorials.wordpress.com
* Ultrasonic sensor med lysdioder och summern
* 2013
*/
int tonePin = 4; Tone - röd bygel
int trigPin = 9; Trig - violett bygel
int echoPin = 10; ECHO - gul bygel
int clockPin = 11; IC stift 11 - vit Jumper
int latchPin = 12; IC stift 12 - blå bygel
int dataPin = 13. IC stift 14 - grön tröja
byte possible_patterns [9] = {
B00000000,
B00000001,
B00000011,
B00000111,
B00001111,
B00011111,
B00111111,
B01111111,
B11111111,
};
int närhet = 0;
int varaktighet;
int avstånd;
void setup() {
Serial Port
Serial.BEGIN (9600);
pinMode (trigPin, produktionen);
pinMode (echoPin, ingång);
pinMode (clockPin, produktionen);
pinMode (latchPin, produktionen);
pinMode (dataPin, produktionen);
pinMode (tonePin, produktionen);
}
void loop() {
digitalWrite (latchPin, låg);
digitalWrite (trigPin, hög);
delayMicroseconds(1000);
digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög);
avståndet = (längd/2) / 29,1;
/ * om (avstånd > = 45 || avstånd < = 0) {
Serial.println ("out of range");
}
annat {
Serial.Print(Distance);
Serial.println ("cm");
}*/
närhet = karta (distanserar, 0, 45, 8, 0);
Serial.println(Proximity);
om (närhet < = 0) {
närhet = 0;
}
annars om (närhet > = 3 & & närhet < = 4) {
tonen (tonePin, 200000, 200);
}
annars om (närhet > = 5 & & närhet < = 6) {
tonen (tonePin, 5000, 200);
}
annars om (närhet > = 7 & & närhet < = 8) {
tonen (tonePin, 1000, 200);
}
shiftOut (dataPin, clockPin, MSBFIRST, possible_patterns[proximity]);
digitalWrite (latchPin, hög);
Delay(600);
noTone(tonePin);
}