LabVIEW Interface for Arduino Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

I need to convert this Arduio code to Labview, can anyone help

//GPIO declarations

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

byte segmentClock = 6;

byte segmentLatch = 5;

byte segmentData = 7;

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

void setup()

{

  Serial.begin(9600);

  Serial.println("Large Digit Driver Example");

  pinMode(segmentClock, OUTPUT);

  pinMode(segmentData, OUTPUT);

  pinMode(segmentLatch, OUTPUT);

  digitalWrite(segmentClock, LOW);

  digitalWrite(segmentData, LOW);

  digitalWrite(segmentLatch, LOW);

  int x = 0;

  while(1)

  {

    if(x == 9)

      postNumber(x, true); //Show decimal

    else

      postNumber(x, false);

    digitalWrite(segmentLatch, LOW);

    digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK

    delay(500);

    x++;

    x %= 10; //Reset x after 9

    Serial.println(x); //For debugging

  }

}

void loop()

{

  //showNumber(42); //Test pattern

}

//Takes a number and displays 2 numbers. Displays absolute value (no negatives)

void showNumber(float value)

{

  int number = abs(value); //Remove negative signs and any decimals

  //Serial.print("number: ");

  //Serial.println(number);

  for (byte x = 0 ; x < 2 ; x++)

  {

    int remainder = number % 10;

    postNumber(remainder, false);

    number /= 10;

  }

  //Latch the current segment data

  digitalWrite(segmentLatch, LOW);

  digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK

}

//Given a number, or '-', shifts it out to the display

void postNumber(byte number, boolean decimal)

{

  //    -  A

  //   / / F/B

  //    -  G

  //   / / E/C

  //    -. D/DP

#define a  1<<0

#define b  1<<6

#define c  1<<5

#define d  1<<4

#define e  1<<3

#define f  1<<1

#define g  1<<2

#define dp 1<<7

  byte segments;

  switch (number)

  {

    case 1: segments = b | c; break;

    case 2: segments = a | b | d | e | g; break;

    case 3: segments = a | b | c | d | g; break;

    case 4: segments = f | g | b | c; break;

    case 5: segments = a | f | g | c | d; break;

    case 6: segments = a | f | g | e | c | d; break;

    case 7: segments = a | b | c; break;

    case 8: segments = a | b | c | d | e | f | g; break;

    case 9: segments = a | b | c | d | f | g; break;

    case 0: segments = a | b | c | d | e | f; break;

    case ' ': segments = 0; break;

    case 'c': segments = g | e | d; break;

    case '-': segments = g; break;

  }

  if (decimal) segments |= dp;

  //Clock these bits out to the drivers

  for (byte x = 0 ; x < 8 ; x++)

  {

    digitalWrite(segmentClock, LOW);

    digitalWrite(segmentData, segments & 1 << (7 - x));

    delay (100);

    digitalWrite(segmentClock, HIGH); //Data transfers to the register on the rising edge of SRCK

    

  }

}

0 Kudos
Message 1 of 2
(3,123 Views)

When you say "convert to LabVIEW" do you mean convert it to LabVIEW using LINX?  If yes, you should post on the LINX forums so that you have a better chance at someone helping you since LIFA (this forum) is no longer supported.

When you do post over there, you'll want to post the LINX code that you created in an attempt to solve this problem and explain what parts you were having issues with or what parts you don't understand.

0 Kudos
Message 2 of 2
(2,687 Views)