本帖最后由 littleshrimp 于 2015-1-5 19:03 编辑
利用MSP430FR5969开发平台快速搭建无线照度测量系统
关于什么是MSP430FR5969开发平台的贴子
一些做照明器具的公司在产品下线前需要对灯管做一些测试,比如功率测试,照度测试等。
现在市面上很多照度测量都使用有线方式,有些时候其实挺不方面的,为了解决这个问题,准备做一个无线照度测量系统。
利用MSP430FR5969这个平台开发应用真的是非常方面,使用MSP430FR5969开发平台的核心板+CC1101模块+OPT101模块+CR2032模块快速完成硬件连接。然后使用上一次测试ADXL362的程序:
稍做修改,去掉ADXL362增加ADC0的测量,然后通过CC1101发送。
分分钟搞定一个无线照度测量系统。
- void adc0(void)
- {
- // Configure GPIO
- P1SEL1 |= BIT0; // Enable A/D channel A0
- P1SEL0 |= BIT0;
-
- // Disable the GPIO power-on default high-impedance mode to activate
- // previously configured port settings
- PM5CTL0 &= ~LOCKLPM5;
-
- // Configure ADC12
- ADC12CTL0 = ADC12ON | ADC12SHT0_2; // Turn on ADC12, set sampling time
- ADC12CTL1 = ADC12SHP; // Use sampling timer
- ADC12MCTL0 = ADC12INCH_0 | ADC12VRSEL_1;
- ADC12CTL0 |= ADC12ENC; // Enable conversions
-
- // ADC12MCTL0 = ADC12INCH_1 | ADC12VRSEL_1 | ADC12WINC;
- // Configure internal reference
- while(REFCTL0 & REFGENBUSY); // If ref generator busy, WAIT
- REFCTL0 |= REFVSEL_2|REFON; // Select internal ref = 2.5V
- // Internal Reference ON
- while(!(REFCTL0 & REFGENRDY)); // Wait for reference generator
- // to settle
- while(1)
- {
- ADC12CTL0 |= ADC12SC; // Start conversion-software trigger
- while (!(ADC12IFGR0 & BIT0));
- ADCvar = ADC12MEM0; // Read conversion result
-
-
- memset(str_buffer,0,sizeof(str_buffer));
- sprintf(str_buffer,"OPT101:%d\r\n",ADCvar);
- send_packet_string(str_buffer);
- LED1_TOG();
- delay_ms(200);
- }
- }
复制代码
在设计OPT101模块的时候不小心把原理图画错了,因为Output和Feedback没有短接,每次测量的结果都是4095,发现后把原理图改过来了。
下边是演示视频: