|
|

楼主 |
发表于 2013-7-26 14:30:51
|
显示全部楼层
奇点
谢谢你的帮忙,终于完成我的程序
读取超音波信息,范围从 4cm 到 300cm
我稍微修改一下你教我的程序代码
使得输出统整为4位数
int num;
const int pingPin = 11;
unsigned int duration, cm;
char str[5]="0000";
void setup()
{
Serial.begin(9600);
}
void loop()
{
pinMode(pingPin, OUTPUT); // Set pin to OUTPUT
digitalWrite(pingPin, LOW); // Ensure pin is low
delayMicroseconds(2);
digitalWrite(pingPin, HIGH); // Start ranging
delayMicroseconds(5); // with 5 microsecond burst
digitalWrite(pingPin, LOW); // End ranging
pinMode(pingPin, INPUT); // Set pin to INPUT
duration = pulseIn(pingPin, HIGH); // Read echo pulse
cm = duration / 74 / 2*2.54; // Convert to inches
Convert(cm);
delay(200); // Short delay
}
void Convert(int num)
{
int numIndex = 0;
int numCount = 3;
for (numIndex = 0; numIndex < numCount; numIndex++)
{
str[numCount - numIndex] = num%10 + '0';
num /= 10;
}
for (numIndex = 0; numIndex <5; numIndex++)
{
Serial.print(str[numIndex]);
}
}
|
|