说明书提供了基于5V Arduino的分压器的近似值。现在可能有更多的3.3V设备,并且数值不同。我发现在每个可能的方向(N、NNW、NW、WNW、W……)采样后,最好简单地处理模拟值。这需要一些时间,但简单的表格可以提供更可靠的读数。我已经包括了我的(使用10k电阻器。读取的值必须小于表中的值以表示方向。希望这对某人有用。结构wind_Dir_Def{字符目录_ASC[4];uint16_t目录Val;
uint16_t目录_Cnt;
};//VD使用10K电阻器wind_Dir_Def windDirTable3V[16]={{“ESE”,84,0},{“ENE”,92,0},{“E”,126,0},{“SSE”,185,0},{“东南”,245,0},{“SSW”,287,0},{“S”,408,0},{“NNE”,463,0},{“东北”,599,0},{“WSW”,629,0},{“西南”,702,0},{“NNW”,784,0},{“N”,824,0},{“西北偏西”,883,0},{“西北”,939,0},{“W”,1024,0}};//检查所有可能的值以确定最接近我们的值for(int ix=0;ix<numDirs;ix++){if(rawWindDir<windDirTable3V[ix].dir_Val){//我们统计特定方向的点击次数,然后使用最多的一个进行报告windDirTable3V[ix].dir_Cnt++;prevWindIdx=ix;断裂;}}