labview与arduino的RGB检测的问题?

2019-07-18 09:27发布

LZ近期想做一个TCS230颜 {MOD}传感器的测试,因为代码基础薄弱,所以想利用labview做自动检测系统。时间较为紧迫,学习2周赶鸭子上架,目前遇到问题了。就是visa read buffer与数组、簇之间的传输吧。如图

我想知道中间部分该怎么连线啊?用了很多图标测试,都连不对。我的arduino程序是打开串口后,先进行白平衡再不断输出RGB值的。

附上RGB检测例程:
#include <timerOne.h>
#define S0     6  
#define S1     5
#define S2     4
#define S3     3
#define OUT    2
int   g_count = 0;   
int   g_array[3];   
int   g_flag = 0;     
float g_SF[3];      
void TSC_Init()
{  pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);  
pinMode(S3, OUTPUT);
pinMode(OUT, INPUT);  
digitalWrite(S0, LOW);  
digitalWrite(S1, HIGH);
} // Select the filter color
void TSC_FilterColor(int Level01, int Level02)
{  if(Level01 != 0)    Level01 = HIGH;  
if(Level02 != 0)    Level02 = HIGH;  
digitalWrite(S2, Level01);  
digitalWrite(S3, Level02); }
void TSC_Count(){  
g_count ++ ;
}
void TSC_Callback()
{
  switch(g_flag)  
{    case 0:         
Serial.println("->WB Start");      
TSC_WB(LOW, LOW);        
break;   
case 1:      
Serial.print("->Frequency R=");   
Serial.println(g_count);     
g_array[0] = g_count;      
TSC_WB(HIGH, HIGH);        
break;   
case 2:      
Serial.print("->Frequency G=");   
Serial.println(g_count);   
g_array[1] = g_count;      
TSC_WB(LOW, HIGH);           
break;   
case 3:   
Serial.print("->Frequency B=");   
Serial.println(g_count);      
Serial.println("->WB End");     
g_array[2] = g_count;     
TSC_WB(HIGH, LOW);      
break;  
default:     
g_count = 0;      
break;  }}
void TSC_WB(int Level0, int Level1)   
{
  g_count = 0;  
g_flag ++;  
TSC_FilterColor(Level0, Level1);
Timer1.setPeriod(1000000);           
}
void setup()
{
  TSC_Init();
  Serial.begin(9600);
  Timer1.initialize();            
  Timer1.attachInterrupt(TSC_Callback);  
  attachInterrupt(0, TSC_Count, RISING);  
  delay(4000);  
  for(int i=0; i<3; i++)  
  Serial.println(g_array[i]);
  g_SF[0] = 255.0/ g_array[0];     //R Scale factor
  g_SF[1] = 255.0/ g_array[1] ;    //G Scale factor
  g_SF[2] = 255.0/ g_array[2] ;    //B Scale factor
  Serial.println(g_SF[0]);
  Serial.println(g_SF[1]);  
Serial.println(g_SF[2]);
}
void loop()
{   
g_flag = 0;  
for(int i=0; i<3; i++)   
Serial.println(int(g_array[i] * g_SF[i]));  
delay(4000);
}
这一段是例程,打开串口后先进行白平衡。

而这一段例程该怎么配合我的labview改呢?求各位高手不吝赐教。
问题总结:
1:labview的串口通信编程,用什么框图连接?
2:arduino程序的优化




大体框架 大体框架
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
Mr.Dante
1楼-- · 2019-07-18 10:09
自己顶一下,不要沉了
Mr.Dante
2楼-- · 2019-07-18 13:35
已经找到突破口 完成后再上传上来
ycunh
3楼-- · 2019-07-18 16:42
虽然我不懂还是支持一下
加油哦

一周热门 更多>