ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

LabVIEW Interface for Arduino Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Labview connection to Arduino Nano

Hello! I'm having trouble connecting the arduino Nano to Labview. I work through the Labview 2014 interface to receive a signal from a fluid flow sensor transmitting a discrete signal through an arduino nano. I loaded the Labview interface for Arduino library through VI Package Manager. Then, in the Arduino 1.0.1 program, I launched the sketch of Lifa Base, which, as I understand it, allows the signal to be transmitted through the ports to the COM port. I wrote a script that, in theory, should transmit units with a certain frequency, while I blow through a sensor connected to port D2. A separate script for arduino for calculating the flow rate works and produces normal values ​​(available in the attachment). But Labview passes zeros, as if I did not blow and gives an error 5002.

 

Maybe the problem is that Labview doesn't see the board like Nano? Help solve this problem!

 

const uint8_t pinSensor = 2; // Определяем № вывода Arduino, к которому подключён датчик расхода воды
uint8_t intSensor; // Объявляем переменную для хранения № прерывания для вывода pinSensor
volatile uint16_t varCount = 0; // Определяем переменную для подсчёта количества импульсов поступивших от датчика
uint32_t varTime = 0; // Определяем переменную для хранения времени последнего расчёта
uint8_t varResult = 0; // Определяем переменную для хранения рассчитанной скорости потока воды
//
void funCountInt(){varCount++;} // Определяем функцию, которая будет приращать значение счётчика импульсов
//
void setup(){ //
Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта
pinMode(pinSensor, INPUT); // Конфигурируем вывод к которому подключён датчик, как вход
intSensor = digitalPinToInterrupt(pinSensor); // Определяем № прерывания который использует вывод pinSensor
attachInterrupt(intSensor, funCountInt, RISING); // Назначаем функцию funCountInt как обработчик прерываний intSensor при каждом выполнении условия RISING - переход от 0 к 1
if(intSensor<0){Serial.print("CEHCOP HE HA TOM HOMEPE");} // Выводим сообщение о том, что датчик подключён к выводу не поддерживающему внешнее прерывание
} //
//
void loop(){ //
if((varTime+1000)<millis() || varTime>millis()){ // Если c момента последнего расчёта прошла 1 секунда, или произошло переполнение millis то ...
varResult=varCount/7.5; // Рассчитываем скорость потока воды: Q = F/7,5 л/мин
varCount=0; varTime=millis(); // Сбрасываем счётчик и сохраняем время расчёта
} // (количество импульсов от датчика varCount равно частоте в Гц, так как расчёт происходит 1 раз в секунду)
Serial.println((String) "CKOPOCTb = "+varResult+" L/MIN"); // Выводим скорость потока воды, показания которой будут меняться 1 раз в секунду
}

0 Kudos
Message 1 of 1
(3,199 Views)