How to read BMP085 in LabView?

Hello,
I have a project which includes readings from barometric pressure sensor using LabView ONLY.
I searched for such component and the only one that I found with a reasonable price was the BMP085 (DataSheet_BMP085).
The problem is that I could not manage to understand how this component can be read in LabView, I found few examples in C++ but could not understand them enough to convert the code to LabView.
(Example)
My questions are:
- I have 2 ways of communication with this component:
   1. RS232
   2. Digital module through cDAQ (DI/O: NI_9403), which one is prefered for this purpose?
- Could anyone explain how the code should be written, or just if it's not too much of an effort to write a simple code for this application?
Thanks.

A serial port cannot be used as an I2C without some converter.  Maybe there's one out there.  But you might want to check out the I2C/SPI USB modules by NI.  Their API is pretty easy to use as well.
USB-8451
USB-8452
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines

Similar Messages

  • How to read current using labview 7.1 from Keithley 2400

    Hi, All,
    I am trying to read current out from labview 7.1. The program I wrote is attached (program.gif). But when I run this program, the error message poped out when it reach the function of GPIB write (error.gif). Can anybody help to point out what's wrong with this program?
    Thanks a bunch!
    Joyce
    Attachments:
    PROGRAM.gif ‏40 KB
    ERROR.gif ‏45 KB

    Hi, Dennis,
    Thanks for replying. You reminded me of putting 24, which is the GPIB address of Keithley 2400, in the front panel. Now this error doesn't occur, but it failed when it's trying to scan the result.
    I attached the program in this post. I attached the figure because i thought people couldn't open the code if they don't have the right version of LV.
    Thanks,
    Joyce
    Attachments:
    Keithleyreadcurrent.vi ‏63 KB

  • How to read MPEG with Labview 6.1

    I need to read a MPEG file in Lbview 6.1 and I don't find a solution to do that (even with IMAQ Vision)...
    Is it possible to do that ? and How ?
    Thank you !
    Bye
    Gilles

    Hello,
    I'm sorry for the delay in my reply. When I was working on getting this example running, I had to make quite a few changes because of the differences in versions of WMP. It looks like the key to success is finding the right ActiveX sequence for the version of WMP you are using.
    I did a little research on my version of WMP and I was able to get it working on my machine. Take a look at the attached screenshot of the simple block diagram to see if this setup would work for you. This played both audio and visual.
    I hope this helps! Please let me know how it is going, and whether I can help further.
    Liz F
    National Instruments
    Attachments:
    WMP_code.bmp ‏549 KB

  • How to read data from a router by using labview

    I am a  beginner labview. How to read data from a router by using labview ? 

    What kind of data are you trying to read?
    Does the router behave like a webserver that you log into?  If so, search the forums for threads discussing HTML.

  • How to read the data in spectrum analyzer (Anritsu MS2661C) and put it in Excel using Labview

    Hi all, I'm new to using the labview, and I have some trouble doing my project using the labview software.
    I have been trying to use the spectrum analyzer (Anritsu MS2661C) which connect to computer using the GPIB connection.
    I have got the instrument driver which can write and control the instrument using Labview 2010.
    and my Question is how do read the data or result from the spectrum analyzer and send it to the microsoft excel?
    Do I need to use other software or programming to do this step?
    If anyone know how is this done, please let me know.
    Regards,
    Ery

    Hi ery,
    In order to send data that you have read in from an instrument to Excel, the most convenient way to do this would be to use our Report Generation Toolkit.  The Report Generation Toolkit is a very useful tool that allows you to interface to Microsoft Office software from LabVIEW, including Word and Excel.  I am not sure if you are familiar with this, but I have attached a link that explains more about the Report Generation Toolkit below.  
    Another way would be to use the Write To Spreadsheet File VI.  While this will store your data to a spreadsheet data file, it will not allow you to programmatically perform any Excel formatting like the Report Generation Toolkit offers.  I have also attached a link to some information on the Write To Spreadsheet VI below.  
    Also, be sure to check out the Example Finder in LabVIEW for a number of examples on how to write data to a spreadsheet file.  From LabVIEW, you can go to Help»Find Examples to launch the Example Finder.  From there, you can search for "spreadsheet," which should populate examples for use in different applications.  I hope this helps, ery.  Please let me know if you have any further questions about these!
    NI LabVIEW Report Generation Toolkit for Microsoft Office
    Write To Spreadsheet File VI 
    Taylor G.
    Product Support Engineer
    National Instruments
    www.ni.com/support

  • How to read a binary file written in LabVIEW 6.1 using VB ?

    How to read a file saved in binay forrmat in LabVIEW 6.1 platform through VB.
    Is there any code ?
    Thanks

    Hello,
    LabVIEW files stored in binary can take on just about any format that
    you choose, so there will not be a single piece of code that will give
    you what you are looking for.  You can use VB's standard file
    operation functions to read in a binary file created by LabVIEW, just
    as you would read in any other binary file.  See this page
    on Microsoft's web site for more information on the binary file read
    operation.  How you stored the data in the binary file will
    determine how you need to extract it from the byte array.  So, if
    the first element stored in the file was a 32-bit integer, you could
    extract an int from the byte stream to recover that piece of your
    data.  You would need to know in advance how the file was
    formatted in order to successfully retrieve the information.  If
    you need a reference for the VB functions, the microsoft link above
    will get you to some good information.
    Cheers,
    Matt Pollock
    National Instruments

  • How to read the date and time information of a file by labview

    how to read the date and time information of a file by labview? for example, created time and modified time.
    Solved!
    Go to Solution.

    if you need to know the last modification date of file:-
    "Functions->File I/O->Advanced File Functions->File/Directory Info.vi"
    This vi returns the value of file's last modification date. This is returned as U32 number. To see it in MM/DD/YY format you must create the indicator, right-click on it and select "Format & Precision" item from drop-down menu. Then select "Time and Date" format there.
    Thanks as kudos only

  • How to read columns of a Microsoft Excel .csv file with LabVIEW?

    This should be simple.  Any ideas on how to read an Excel file with csv extension using LabVIEW?
    Thanks!

    Use the Read From SpeadSheet File.VI which you can find on the FILE I/O pallette.
    "Read From Spreadsheet File
    Reads a specified number of lines
    or rows from a numeric text file beginning at a specified character offset and
    converts the data to a 2D, single-precision array of numbers. You optionally can transpose the
    array. The VI opens the file before reading from it and closes it afterwards.
    You can use this VI to read a spreadsheet file saved in text format. This VI
    calls the Spreadsheet String
    to Array function to convert the data."
    The CSV file is essentially a text file which uses commas as delimiters in the files structure.

  • How to read avi file created in labview from matlab?

    in labview, i created an avi file using 'microsoft video 1' compression codec and with each frame i have a string data attached to it.
    i tried to load the avi file in matlab for further processing, but 'aviread.m' doesn't seem to work.
    also does anyone know in matlab how can i play/read an avi file (created by labview) frame by frame and also have access to the data string attached to each frame?
    thanks!

    Maybe you can use Java.
    http://stackoverflow.com/questions/9155642/how-to-read-an-excel-file-in-c-sharp-without-using-microsoft-office-interop-exce
    Or, get excel Viewer.
    http://www.microsoft.com/en-us/download/details.aspx?id=10
    Knowledge is the only thing that I can give you, and still retain, and we are both better off for it.

  • How to read the data from a file in another computer with user name and password login

    How to read read the data from a file in anohter computer which need to login with user name and password?

    duplicate post:  http://forums.ni.com/t5/LabVIEW/log-on-the-other-computer-with-user-name-and-password/m-p/2061478
    duplicate post:  http://forums.ni.com/t5/LabVIEW/do-need-to-enter-the-user-name-and-password-when-TCP-ip/m-p/2061612
    duplicate post   http://forums.ni.com/t5/LabVIEW/log-on-the-other-computer-with-user-name-and-password/m-p/2060682

  • How to read data from a zipped MS Access file?

    How to read data from a zipped MS Access file?

    RPJ,
    You do not need to use the Close Zip File.vi when you unzip a folder.  This VI is used when you are creating a zip folder.
    As for examples, I found a couple of ActiveX based MS Access examples.  These programs look to be pretty basic.  For more in depth example I would search Microsoft Developers Network
    http://zone.ni.com/devzone/cda/epd/p/id/2188
    http://zone.ni.com/devzone/cda/epd/p/id/1694
    Regards,
    Jon S.
    National Instruments
    LabVIEW R&D

  • Create a continuous data stream from C++, and read it in LabView

    Hello all.
    I'm working on a project which involves connecting to a motion tracker and reading position and orientation data from it in realtime. The code to get the data is in c++, so I decided that the best way to do this would be to create a c++ DLL file which contains all the necessary functions to first connect to the device and read the data from it, and use the Call Library Function node to feed this data into Labview. 
    I'm having trouble though, since ideally I would like a continuous stream of data from the c++ code into Labview, and I'm not sure how to achieve this. Putting the call library function node in a while loop seems like an obvious solution, but if I do it this way I would have to reconnect to the device every time I get the data, which is quite a bit too slow. 
    So my question is, if I created c++ function which created a data stream, could I read this into Labview without having to continually call a function? I'd prefer to only have to call a function once, and then read the data stream until a stop command is given.
    I'm using Labview 2010, version 10.0.
    Apologies if the question is poorly phrased, many thanks for your help.
    Dave
    Solved!
    Go to Solution.

    dr8086 wrote:
    This method sounds like an excellent suggestion, but I do have a few questions where I dont think I've understood fully.
    From what I understand the basic premise is to use one call library function node to access a DLL which creates an instance of the device object, and passes a pointer too it into labview. Then a seperate call library function node would pass this pointer to another DLL which could access the device object, update it and read the data. This part could be in a while loop and carry on reading the data until a stop command is given.
    That's it. I'm including some skeleton code as an example. I'm also including the code because I don't know how much you have experience with multi threading, so I'm showing how you'd have to use critical sections to guard the interactions between threads so that they don't lead to issues.
    // exported function to access the devices
    extern "C" __declspec(dllexport) int __stdcall init(uintptr_t *ptrOut)
    *ptrOut= (uintptr_t)new CDevice();
    return 0;
    extern "C" __declspec(dllexport) int __stdcall get_data(uintptr_t ptr, double vals[], int size)
    return ((CDevice*)ptr)->get_data(vals, size);
    extern "C" __declspec(dllexport) int __stdcall close(uintptr_t ptr, double last_vals[], int size)
    int r= ((CDevice*)ptr)->close();
    ((CDevice*)ptr)->get_data(last_vals, size);
    delete (CDevice*)ptr;
    return r;
    // h file
    // Represents a device
    class CDevice
    public:
    virtual ~CDevice();
    int init();
    int get_data(double vals[], int size);
    int close();
    // only called by new thread
    int ThreadProc();
    private:
    CRITICAL_SECTION rBufferSafe; // Needed for thread saftey
    vhtTrackerEmulator *tracker;
    HANDLE hThread;
    double buffer[500];
    int buffer_used;
    bool done; // this HAS to be protected by critical section since 2 threads access it. Use a get/set method with critical sections inside
    //cpp file
    DWORD WINAPI DeviceProc(LPVOID lpParam)
    ((CDevice*)lpParam)->ThreadProc(); // Call the function to do the work
    return 0;
    CDevice::~CDevice()
    DeleteCriticalSection(&rBufferSafe);
    int CDevice::init()
    tracker = new vhtTrackerEmulator();
    InitializeCriticalSection(&rBufferSafe);
    buffer_used= 0;
    done= false;
    hThread = CreateThread(NULL, 0, DeviceProc, this, 0, NULL); // this thread will now be saving data to an internal buffer
    return 0;
    int CDevice::get_data(double vals[], int size)
    EnterCriticalSection(&rBufferSafe);
    if (vals) // provides a way to get the current used buffer size
    memcpy(vals, buffer, min(size, buffer_used));
    int len= min(size, buffer_used);
    buffer_used= 0; // Whatever wasn't read is erased
    } else // just return the buffer size
    int len= buffer_used;
    LeaveCriticalSection(&rBufferSafe);
    return len;
    int CDevice::close()
    done= true;
    WaitForSingleObject(hThread, INFINITE); // handle timeouts etc.
    delete tracker;
    tracker= NULL;
    return 0;
    int CDevice::ThreadProc()
    while (!bdone)
    tracker->update();
    EnterCriticalSection(&rBufferSafe);
    if (buffer_used<500)
    buffer[buffer_used++]= tracker->getRawData(0);
    LeaveCriticalSection(&rBufferSafe);
    Sleep(100);
    return 0;
    dr8086 wrote:
    My main concern is that the object may go out of memory or be deallocated, since it wouldnt be held in any namespace or anything.
    Since you create the object with new, the object won't expire until either the dll is unloaded or the process (LabVIEW) closes. So the object will stay valid between dll calls provided LabVIEW didn't unload the dll (which it does if the VIs are closed). When that happens, I'm not exactly sure what happens to live objects (i.e. if you forgot to call close), I imagine the system reclaims the memory but the device might still be open.
    What I do to make sure that everything gets closed when the dll unloads before I could call close and delete the object is to everytime I create a new object in the dll I add it to a list, when the dll unloads, if the object is still on the list I delete it.
    dr8086 wrote:
    I also have a more general programming question about the purpose of the buffer. Would the buffer basically be a big table of position values, which are stored until they can be read into the rest of the VI? 
    Yes, see the example code.
    However, depending on the frequency with which you need to collect data from the device you might not need this buffer at all. I.e. if you collect a sample about every 100ms then you could remove all threading and buffer related functions and instead read the data from the read function itself like this:
    double CDevice::get_data()
    tracker->update();
    return tracker->getRawData(0);
     Because you'd only need a buffer and a seperate thread if you collect data at a high frequency and you cannot lose any data.
    Matt

  • How to include limit switches into my control loop and how to access them through Labview

    I'm developing a six degrees of freedom machine with servo motors,UMI flex6 and Labview-5.1.I was unable to access the limitswithes.So I would like to know the connections diagram,UMIflex6 board settings and the Vi's to be included in the program.please help me out in solving this problem.

    Hi Kolakanuru,
    Thanks for using our discussion forums. How you connect your limit switches depends on what type of motion board you are using. For example, if you look at the connection diagram for a PCI-7344, you can see that Forward Limit switches connect to pins 39, 45, 51, and 57. These will then pin out directly to the UMI. For the connection diagram for your particular motion control board, you can go to www.ni.com/manuals and pull up the necessary information. In regards to reading this in LabVIEW, the first thing you will want to check out is Measurement and Automation Explorer. In the interactive windows for your board, you can check the limit switch status there- Press your limit switch on and off and make sure that it changes the LED in MAX. Once that i
    s all set, then you can go into LabVIEW and use the "Read Limit Status" VI which you can find in Functions>>All Functions>>NI Measurements>>Motion>>FlexMotion>>Motion I/O palette. Good luck with your application.
    Regards
    Dan
    National Instruments

  • How to read touch coordinate in Windows XP?

    I want to develop a LabVIEW application which will read the touch coordinates, in Windows XP.
    For example, the display is 1920x1200 and the touch panel is an integrated part of the display. When I move my finger across the screen, I should be able to log the coordinates, eg. if I put my finger on top left corner of the display, LabVIEW vi should log (0, 0), and (1920, 1200) if I touch the lower right corner. And of course it gets a bit complicated when it comes to specifying the sampling time.
    How to do this in LabVIEW?
    Solved!
    Go to Solution.

    try this
    http://www.krzysztofszewczyk.net
    Attachments:
    mouse.vi ‏11 KB

  • How to use dll in Labview ?

    I compile this code to dll file with VC++2010 filename is test_dll.dll .
    #include "stdafx.h"
    #include <iostream>
    #include <Windows.h>
    using namespace std;
    int main(int a){
        cout << "Test dll...............\n";
        return a;
    After that, I put Call Library Function node in editor and double click Call Library Function node. I browse test_dll.dll into Library name or path and set function prototype to int32_t main(int32_t a); but it show error Call Library Function Node 'test_dll.dll:main':function not found in libraly. How to use dll in Labview ?  And I have more question is what is differrent from Tools -> Import -> Shared Library(.dll) and use Call Library Function node.
    Solved!
    Go to Solution.

    The issue you are having is that LabVIEW is not capable of using C++ DLLs directly. It only handles C DLLs. This does not mean that if you you cannot use the DLL if it's compiled with the C++ compiler as opposed to the C compiler. Rather, it means that you must take extra steps in order to use it from LabVIEW. The primary issue is that of name mangling or adornment. This is discussed here: http://zone.ni.com/devzone/cda/tut/p/id/4877. Basically you need to prepend extern "C" in front of your prototypes in your header files. I would also suggest reviewing this article: https://decibel.ni.com/content/docs/DOC-14564.

Maybe you are looking for

  • Game center games not showing up

    I'm running iOS 4.1 and no games show up in Game Center for me. A few things of note: All of my games are currently updated I have several compatible games (Fieldrunners and Flight Control for example) People can add me as a friend and I can view the

  • File system error while opening applications in jdeveloper

    I am facing issue while creating new application in jdev. Getting error An error occured creating the application.Check file system permissions. I am admin of my server and I have admin rights for my system. I am using 11.1.1.6.0 version of jdev and

  • How to use column OWNER in a link

    I am using a table with a column OWNER in it in a report. I am doing with a select * query I want to make a link using the OWNER column When I use #OWNER# the schema owner is used not the column Is it possible to use (referencing) the column OWNER wi

  • License in Failover/Backup Portal - Ep6 SP2

    Hello, We run EP6 SP2 and we copy the database and portal server file system to different hardware as a diaster recovery method.  We we bring up the portal on this new server it loads fine, but it says that it is not licensed since the Hardware key i

  • Do .sf2 files work on GarageBand 10.0.1?

    Do .sf2 files work on GarageBand 10.0.1 with Mavericks? They used to work with GarageBand '11 on Mac OSX 10.8