北航Arduino超声波测距仪

#include"TimerOne.h"
#include"TempHumdTable.h"
#include"DHT.h"
#define DHTPIN 11 //DATA接数字引脚11
#define DHTTYPE DHT11 // DHT11
DHT dht(DHTPIN, DHTTYPE);
const int trig=13;
const int echo=12;
const int led=10;
const int sega=2;
const int segb=3;
const int segc=4;
const int segd=5;
const int sege=6;
const int segf=7;
const int segg=8;
const int segdp=9;
#define FILTER_N 9
boolean blinkLED=false;
int ledState=LOW;
float distance_cm;
void timerIsr();
float Filter_Md();
void setup() {// put your setup code here, to run once:Serial.begin(9600);pinMode(trig,OUTPUT);pinMode(echo,INPUT);pinMode(led,OUTPUT);pinMode(sega,OUTPUT);pinMode(segb,OUTPUT);pinMode(segc,OUTPUT);pinMode(segd,OUTPUT);pinMode(sege,OUTPUT);pinMode(segf,OUTPUT);pinMode(segg,OUTPUT);pinMode(segdp,OUTPUT);Serial.println(F("DHT11 test!"));dht.begin();Timer1.initialize(50000);Timer1.attachInterrupt(timerIsr);
}void loop() {int n[11][8]={ {0,0,1,1,1,1,1,1},{0,0,0,0,0,1,1,0},{0,1,0,1,1,0,1,1},{0,1,0,0,1,1,1,1},{0,1,1,0,0,1,1,0},{0,1,1,0,1,1,0,1},{0,1,1,1,1,1,0,1},{0,0,0,0,0,1,1,1},{0,1,1,1,1,1,1,1},{0,1,1,0,1,1,1,1},{1,0,0,0,0,0,0,0} };int a,b,c,d;int distance=int((Filter_Md()+0.05)*10);a=distance%10;b=distance/10%10;c=distance/100%10;d=distance/1000%10;if(distance_cm<10.00){blinkLED=true;}else{blinkLED=false;digitalWrite(led,LOW);}for(int pin=2;pin<=9;pin++){digitalWrite(pin,n[0][9-pin]);}delay(400);for(int pin=2;pin<=9;pin++){digitalWrite(pin,n[d][9-pin]);}delay(400);for(int pin=2;pin<=9;pin++){digitalWrite(pin,n[c][9-pin]);}delay(400);for(int pin=2;pin<=9;pin++){digitalWrite(pin,n[b][9-pin]);}delay(400);for(int pin=2;pin<=9;pin++){digitalWrite(pin,n[10][9-pin]);}delay(400);for(int pin=2;pin<=9;pin++){digitalWrite(pin,n[a][9-pin]);}delay(500);Serial.print("Distance:");Serial.print(distance_cm);Serial.println("cm");delay(100);float h = dht.readHumidity(); float t = dht.readTemperature(); int h1=int((h-10)/5);int t1=int(t/5.0);float v;v=TempHumdTable[h1][t1];Serial.print(F("速度是:"));Serial.print(v); Serial.println(F("m/s"));Serial.print(F("Humidity: ")); Serial.print(h); Serial.print(F("% Temperature: ")); Serial.print(t); Serial.println(F("°C "));
}void timerIsr(){if(blinkLED){ledState=!ledState;digitalWrite(led,ledState);}}float Filter_Md(){float filter_buf[FILTER_N];int i,j;float filter_temp;for(i=0;ifilter_buf[j+1]){filter_temp=filter_buf[j+1];filter_buf[j+1]=filter_buf[j];filter_buf[j]=filter_temp;}}}return filter_buf[(FILTER_N-1)/2];}float pj(){float filter_buf[FILTER_N];int i,j;float filter_temp;for(i=0;i

没有key1,key2(主要是懒),但均值和中位数函数都写了,在代码里切换即可

也很欢迎同学们小改一下key1,key2版的来完善


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部