超声波测距-Arduino
来源:互联网 发布:2016电影 知乎 编辑:程序博客网 时间:2024/04/28 18:06
const int echopin = 3; // echo接3端口const int trigpin = 2; // trig接2端口const int led = 13;//const int led = A1;const int DIG1 = 4;const int DIG2 = 12;//A = 5;B = 6;C = 7;D = 8;E = 9;F = 10;G = 11;byte SEG7[10][7] = { { 0, 0, 0, 0, 0, 0, 1}, // = 0 { 1, 0, 0, 1, 1, 1, 1}, // = 1 { 0, 0, 1, 0, 0, 1, 0}, // = 2 { 0, 0, 0, 0, 1, 1, 0}, // = 3 { 1, 0, 0, 1, 1, 0, 0}, // = 4 { 0, 1, 0, 0, 1, 0, 0}, // = 5 { 0, 1, 0, 0, 0, 0, 0}, // = 6 { 0, 0, 0, 1, 1, 1, 1}, // = 7 { 0, 0, 0, 0, 0, 0, 0}, // = 8 { 0, 0, 0, 0, 1, 0, 0} // = 9};void setup(){ Serial.begin(9600); pinMode(echopin, INPUT); //设定echo为输入模式 pinMode(trigpin, OUTPUT); //设定trig为输出模式 for (int i = 4; i < 13; i++) pinMode(i, OUTPUT); pinMode(led, OUTPUT);}void loop(){ digitalWrite(trigpin, LOW); delayMicroseconds(2); digitalWrite(trigpin, HIGH); delayMicroseconds(10); digitalWrite(trigpin, LOW); //发一个10ms的高脉冲去触发TrigPin int pin=5; int distance = pulseIn(echopin, HIGH); //接收高电平时间 distance = distance / 58.0; //计算距离 Serial.print(distance); //输出距离 Serial.println("cm"); //输出单位 if (distance < 100) { int shi = distance / 10; int ge = distance % 10; //ge digitalWrite(DIG2, LOW); digitalWrite(DIG1, HIGH); if (ge == 0) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[0][s]); pin++; } } else if (ge == 1) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[1][s]); pin++; } } else if (ge == 2) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[2][s]); pin++; } } else if (ge == 3) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[3][s]); pin++; } } else if (ge == 4) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[4][s]); pin++; } } else if (ge == 5) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[5][s]); pin++; } } else if (ge == 6) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[6][s]); pin++; } } else if (ge == 7) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[7][s]); pin++; } } else if (ge == 8) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[8][s]); pin++; } } else if (ge == 9) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[9][s]); pin++; } } delay(10); //shi digitalWrite(DIG1, LOW); digitalWrite(DIG2, HIGH); if (shi == 0) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[0][s]); pin++; } } else if (shi == 1) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[1][s]); pin++; } } else if (shi == 2) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[2][s]); pin++; } } else if (shi == 3) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[3][s]); pin++; } } else if (shi == 4) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[4][s]); pin++; } } else if (shi == 5) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[5][s]); pin++; } } else if (shi == 6) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[6][s]); pin++; } } else if (shi == 7) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[7][s]); pin++; } } else if (shi == 8) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[8][s]); pin++; } } else if (shi == 9) { pin = 5; for (int s = 0; s < 7; s++) { digitalWrite(pin, SEG7[9][s]); pin++; } } } else { digitalWrite(DIG1, HIGH); digitalWrite(DIG2, HIGH); for (int s = 0; s < 6; s++) { digitalWrite(pin, HIGH); pin++; } digitalWrite(pin, LOW); } //距离小于10cm时,led写入高电平 if (distance <= 20) { //digitalWrite(led, HIGH); analogWrite(A1, 255); //tone(led,1000,1000); //delay(15); tone(led,2000,100); //delay(15); //noTone(led); } else { analogWrite(A1, 0); //digitalWrite(led, LOW); } delay(15); //循环间隔60uS}
阅读全文
0 0
- Arduino - 超声波测距
- arduino 超声波测距
- arduino-超声波测距
- 超声波测距-Arduino
- Arduino+HC-SR04 实现超声波测距
- 基于Arduino超声波测距/盲区检测
- Arduino 小玩意之 HC-SR04 超声波测距模块
- arduino的超声波测距和pulseIn()函数的使用说明
- 超声波测距
- 超声波测距
- 超声波测距
- 【Arduino官方教程第一辑】示例程序 6-4 超声波测距传感器
- MC9S12XS128实现超声波测距
- 超声波测距程序
- 超声波测距传感器
- C51超声波测距试验
- 超声波测距程序
- 树莓派超声波测距实验
- pat 甲级 1023-1026
- LintCode之22 平面列表
- Linux(七)
- 算法-爬楼梯
- linux指令
- 超声波测距-Arduino
- 解决Pycharm无法导入包问题 Unresolved reference
- caffe学习系列:网络融合
- 1008电梯问题
- ASM磁盘个数会影响ASM磁盘组的mount时间
- Python装饰器与面向切面编程
- Sublime安装配置以及scala代码测试编译
- pat 甲级 1027-1030
- nodejs 模版引擎-ejs