收到一台光纤光谱仪,找不到PC端软件。
通过对比管脚,符合ilx554b管脚定义。
在github上找到一篇用ESP32驱动ilx554b的arduino代码,将CCD信号通过串口传到上位机。
于是买来ESP32 wroom开发板,下载arduino,代码稍作修订。
修订包括:编译报错,曝光时间修改,ROG、CLK管脚输出取反等。
修改后代码如下:
串口命令解析如下:
if (n=='m'){ //m读数据
leitura();
}
if (n=='x'){
for (int j=0;j<10;j++) {//x 连读数据十次
leitura();
delay(tint);
}
}
if (n=='t') {
XXXXXXXXXintln(tint/1000);
}
if (n=='w') {//曝光时间增加10ms
integra += 10;
}
if (n=='s') {//曝光时间减少10ms
integra -= 10;
}
if (n=='d') {//曝光时间加1ms
integra += 1;
}
if (n=='a') {//曝光时间减少1ms
integra -= 1;
}
n=' ';
连接ESP32开发板,只需连接ROG、CLK、VOUT三根线。利用原板上的6反相器作3.3~5V电平转换。
unsigned int CLK = 15; //Verde
unsigned int ROG = 2; //Azul
接口可根据连线便利修改。
找到一个串口通讯+dialog作图的VC++工程,稍作修改
使用方法如下:
1.发送按键,串口发m使令,将esp32上数据在dialog上显示。
2.timer,启动和停止定时发送。
3.xmin,xmax:显示区域的X轴对应CCD的像素范围。
4.ymin,ymax: 显示区域的Y轴对应ADC转换的值范围。
XXXXltiline:搜索除主峰值之外多少个峰值。
XXXXartnm:像素0对应的光波波长。
7.endnm:像素2047对应的光波波长。
上传的release 文件,在WIN7 上运行没问题。WIN10上没试过。
XXXXXXXXXXXXXi文 件可以配置串口号和波特率,以及startnm,endnm初始值。
[config]
波特率=115200
com口=com3
nodeid=1234
startnm=980.1
endnm=246.2
更改startnm和endnm值以适配你的CCD,例如用绿光激光器作为校准源,在对话框editbox中修改startnm和endnm值,使显示的波长532nm和808nm.
将startnm和endnm值写入ini文件,下次打开应用就可以自动载入了。
com号根据设备管理器中查询值修改
实测如下:
测氩离子激光:
两支红激光
蓝光LED
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |