当前位置: 测量装置 >> 测量装置介绍 >> 基于Arduino的温度湿度测量显示装
上面是劳动时的成效视频。
代码以下。
#includeMsTimer2.h#includeAdafruit_AHTX0.h#includeAdafruit_BMP.h#includeAdafruit_NeoPixel.h#includeBH.h#includeAdafruit_GFX.h#includeAdafruit_SSD.h#include"stdlib.h"#defineSCREEN_WIDTH//OLEDdisplaywidth,inpixels#defineSCREEN_HEIGHT32//OLEDdisplayheight,inpixels#defineOLED_RESET4//Resetpin#(or-1ifsharingArduinoresetpin)#defineSCREEN_ADDRESS0x3C///SeedatasheetforAddress;0x3Dforx64,0x3Cforx32#definePIN4#defineNUMPIXELS4#definemotor3#definered_pin2uint8_tr=,g=,b=50;Adafruit_AHTX0aht;Adafruit_BMPbmp;Adafruit_NeoPixelpixels(NUMPIXELS,PIN,NEO_GRB+NEO_KHZ);BHlightMeter;Adafruit_SSDdisplay(SCREEN_WIDTH,SCREEN_HEIGHT,Wire,OLED_RESET);sensors_event_thumidity,temp;floatpress_data=0;floatlux=0;boolsample=false;boolDevice_State[4]={false,false,false,false};uint8_tState=0;uint8_tvision_cnt=0;boolflash=false;uint32_tTime_Out=0;boolwithOut=false;uint32_tRGB_Color(uint8_tr,uint8_tg,uint8_tb){return((uint32_t)g16)
((uint32_t)r8)
b;}voidSample_State(void){switch(State){case0:State=1;if(Device_State[0]==true){aht.getEvent(humidity,temp);//populatetempandhumidityobjectswithfreshdata}break;case1:State=2;if(Device_State[1]==true){press_data=bmp.readPressure()/;}break;case2:State=0;if(Device_State[2]==true){lux=lightMeter.readLightLevel();if(lux){pixels.setBrightness(5);}else{pixels.setBrightness(30);}}break;default:;}r=random(0,);g=random(0,);b=random(0,);flash=!flash;if(vision_cnt60){vision_cnt++;}else{vision_cnt=0;}if(withOut==false){pixels.setPixelColor(0,RGB_Color(r,g,b));pixels.setPixelColor(1,RGB_Color(g,r,b));pixels.setPixelColor(2,RGB_Color(g,b,r));LED_CTRL(flash);pixels.show();if(vision_cnt30){updat_data();}else{vision_data();}}else{pixels.setPixelColor(0,RGB_Color(0,0,0));pixels.setPixelColor(1,RGB_Color(0,0,0));pixels.setPixelColor(2,RGB_Color(0,0,0));pixels.setPixelColor(3,RGB_Color(0,0,0));pixels.show();display.clearDisplay();display.display();}}voidTimer_ISR(void)//timer
转载请注明:http://www.aideyishus.com/lkyy/989.html