Ubuntu och arduino. (18 / 26 steg)
Steg 18: Ping sensor.
/ * Ping))) Sensor
Denna skiss läser en PING))) ultraljud avståndsmätare och returnerar den
avståndet till närmaste objektet i intervallet. Det gör skickar det en puls
till sensorn att inleda en behandling, då lyssnar efter en puls
för att återgå. Längden på den återkommande pulsen är proportionell mot
distansera av objektet från sensorn.
Krets:
* + V anslutning av PING))) kopplad till + 5V
* GND anslutning av PING))) kopplade till marken
* SIG anslutning av PING))) bifogas digital stift 7
http://www.Arduino.cc/en/tutorial/ping
skapad 3 Nov 2008
av David A. Mellis
modifierade 30 Aug 2011
av Tom Igoe
Denna exempelkod är offentlig.
*/
Denna konstant ändras inte. Det är den pin-kod
av sensorns utgång:
CONST int pingPin = 7.
void setup() {
initiera seriell kommunikation:
Serial.BEGIN(9600);
}
void loop()
{
fastställa variabler för varaktigheten av ping,
och avstånd resultatet i tum och centimeter:
lång varaktighet, tum, cm;
PING))) utlöses av en hög puls av 2 eller fler mikrosekunder.
Ge en kort låg puls förhand för att säkerställa en ren hög puls:
pinMode (pingPin, produktionen);
digitalWrite (pingPin, låg);
delayMicroseconds(2);
digitalWrite (pingPin, hög);
delayMicroseconds(5);
digitalWrite (pingPin, låg);
Samma PIN-koden används för att läsa signalen från PING))): en hög
puls vars längd är tid (i mikrosekunder) från den sändande
ping till mottagning av dess eko av ett objekt.
pinMode (pingPin, ingång);
längd = pulseIn (pingPin, hög);
konvertera tiden till ett avstånd
tum = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.Print(inches);
Serial.Print ("in");
Serial.Print(cm);
Serial.Print("cm");
Serial.println();
Delay(100);
}
lång microsecondsToInches(long microseconds)
{
Enligt Parallaxs datablad för PING))), det finns
73.746 mikrosekunder per tum (dvs. ljud resor på 1130 fot per
det andra). Detta ger vägsträcka som ping, utgående
och tillbaka, så vi delar med 2 att få distansera av hindret.
Se: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
återvända mikrosekunder / 74 / 2;
}
lång microsecondsToCentimeters(long microseconds)
{
Ljudets hastighet är 340 m/s eller 29 mikrosekunder per centimeter.
Ping reser ut och tillbaka, så för att hitta distansera av den
objekt vi tar hälften av den tillryggalagda.
återvända mikrosekunder / 29 / 2;
}