Data types, variables and Operators in Arduino.

Data types in Arduino.
  • Data types are the types of data which are used to create an arduino program.
  • Data types also define how much apace a variable will occupy in computer memory.
  • The following table provides all the data types which are used during Arduino programming.
Data Types in Arduino


voidBoolean char
Unsigned charbyteint
Unsigned intwordlong
Unsigned longshortfloat
doublearrayString-char array
String-object

  • Void- It indicates that the function is expected to return no information to the function from which it was called.
  • boolean (8 bit) - simple logical true/false.
  • char (8 bit) - signed number from -128 to 127. 
  • unsigned char (8 bit) - same as 'byte'; if this is what you're after, you should use 'byte' instead, for reasons of clarity.
  • byte (8 bit) - unsigned number from 0-255
  • int (16 bit) - signed number from -32768 to 32767.
  • unsigned int (16 bit)- the same as 'word'. Use 'word' instead for clarity and brevity IDE.
  • word (16 bit) - unsigned number from 0-65535.
  • long (32 bit) - signed number from -2,147,483,648 to 2,147,483,647.
  • unsigned long (32 bit) - unsigned number from 0-4,294,967,295. The most common usage of this is to store the result of the millis() function, which returns the number of milliseconds the current code has been running
  • short- A short is a 16-bit data-type. On all Arduinos (ATMega and ARM based), a short stores a 16-bit (2-byte) value. This yields a range of -32,768 to 32,767 (minimum value of -2^15 and a maximum value of (2^15) - 1).
  • float (32 bit) - Data type for floating-point number is a number that has a decimal point. Floating-point numbers can be as large as 3.4028235E+38 and as low as -3.4028235E+38. They are stored as 32 bits (4 bytes) of information.
  • double- On the Uno and other ATMEGA based boards, Double precision floating-point number occupies four bytes. That is, the double implementation is exactly the same as the float, with no gain in precision. On the Arduino Due, doubles have 8-byte (64 bit) precision.
Variables and their Scope
  • The scope of variables in the C programming language, which Arduino uses, is a property. A scope is a section of the programme where variables can be defined in one of three places.
  1. Inside a function or a block, which is called local variables.
  2. Outside of all functions, which is called global variables.
  3. In the definition of function parameters, which is called formal parameters.
Local variables:
  • Local variables are variables that are defined within a function or block. 
  • They can only be utilized by statements that are included within that function or code block. 
  • Local variables aren't known to have any effect outside of their own scope. 
  • The following is an example of how to use local variables.
For Example: 

Void setup () {

}

Void loop () {
   int x , y ;
   int z ; Local variable declaration
   x = 0;
   y = 0; actual initialization
   z = 10;
}
      Global variables:
      • Global variables are defined at the beginning of the programme, outside of any functions. 
      • The value of the global variables will remain constant over the life of your programme.
      • Any function has access to a global variable. That is, once a global variable is declared, it is available for use throughout your entire programme. 
      For Examples:

      Int T , S ;
      float c = 0 ; Global variable declaration

      Void setup () {

      }

      Void loop () {
         int x , y ;
         int z ; Local variable declaration
         x = 0;
         y = 0; actual initialization
         z = 10;
      }

      Operators in Arduino:
      • A symbol that directs the compiler to execute certain mathematical or logical tasks is known as an operator. 
      • The C language has a large number of built-in operators, including the following:
      1. Arithmetic Operators.
      2. Comparison Operators.
      3. Boolean Operators.
      4. Bitwise Operators.
      5. Compound Operators.
      Operators in Arduino

      1. Arithmetic Operators
      • Assume variable A holds 20 and variable B holds 40 then −

      Operator name

      Operator simple

      Description

      Example

      Assignment operator

      =

      Stores the value to the right of the equal sign in the variable to the left of the equal sign.

      A = B

      Addition

      +

      Adds two operands

      A + B will give 60

      Subtraction

      -

      Subtracts second operand from the first

      A - B will give -20

      Multiplication

      *

      Multiply both operands

      A * B will give 800

      Division

      /

      Divide numerator by denominator

      B / A will give 2

      Modulo

      %

      Modulus Operator and remainder of after an integer division

      B % A will give 0


      Example:

      void loop () {
         int a = 9,b = 4,c;
         c = a + b;
         c = a - b;
         c = a * b;
         c = a / b;
         c = a % b;
      }

      Expected Output:
      a + b = 13
      a - b = 5
      a * b = 36
      a / b = 2
      Remainder when a divided by b = 1

      2. Comparison Operators:
      • Assume variable A holds 10 and variable B holds 20 then −

      Operator name

      Operator simple

      Description

      Example

      Equal to

      = =

      Checks if the value of two operands is equal or not, if yes then condition becomes true.

      (A == B) is not true

      Not equal to

      ! =

      Checks if the value of two operands is equal or not, if values are not equal then condition becomes true.

      (A != B) is true

      Less than

      < 

      Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true.

      (A < B) is true

      Greater than

      > 

      Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true.

      (A > B) is not true

      Less than or equal to

      < =

      Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true.

      (A <= B) is true

      Greater than or equal to

      > =

      Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true.

      (A >= B) is not true


      Example:

      void loop () { 
         int a = 9,b = 4
         bool c = false;
         if(a == b)
            c = true;
         else
            c = false;

         if(a != b)
            c = true;
         else
            c = false;
         
         if(a < b)
            c = true;
         else
            c = false;
         
         if(a > b)
            c = true;
         else
            c = false;
         
         if(a <= b)
            c = true;
         else
            c = false;
         
         if(a >= b)
            c = true;
         else
            c = false;
      }

      Expected Output:

      c = false
      c = true
      c = false
      c = true
      c = false
      c = false

      3. Boolean Operators:
      • Assume variable A holds 10 and variable B holds 20 then −

      Operator name

      Operator simple

      Description

      Example

      and

      &&

      Called Logical AND operator. If both the operands are non-zero then then condition becomes true.

      (A && B) is true

      or

      ||

      Called Logical OR Operator. If any of the two operands is non-zero then then condition becomes true.

      (A || B) is true

      not

      !

      Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false.

      !(A && B) is false

       Example:

      void loop () {
         int a = 9,b = 4
         bool c = false;
         if((a > b)&& (b < a))
            c = true;
         else
            c = false;

         if((a == b)|| (b < a))
            c = true;
         else
            c = false;

         if( !(a == b)&& (b < a))
            c = true;
         else
            c = false;
      }

      Expected Output:
      c = true
      c = true
      c = true

      4. Bitwise Operators:
      • Assume variable A holds 60 and variable B holds 13 then −

      Operator name

      Operator simple

      Description

      Example

      and

      &

      Binary AND Operator copies a bit to the result if it exists in both operands.

      (A & B) will give 12 which is 0000 1100

      or

      |

      Binary OR Operator copies a bit if it exists in either operand

      (A | B) will give 61 which is 0011 1101

      xor

      ^

      Binary XOR Operator copies the bit if it is set in one operand but not both.

      (A ^ B) will give 49 which is 0011 0001

      not

      ~

      Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.

      (~A ) will give -60 which is 1100 0011

      shift left

      << 

      Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.

      A << 2 will give 240 which is 1111 0000

      shift right

      >> 

      Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand.

      A >> 2 will give 15 which is 0000 1111


      Example:

      void loop () {
         int a = 10,b = 20
         int c = 0;
         c = a & b ;
         c = a | b ;
         c = a ^ b ;
         c = a ~ b ;
         c = a << b ;
         c = a >> b ; 
      }

      Expected Output: 
      c = 12
      c = 61
      c = 49
      c = -60
      c = 240
      c = 15
      5. Compound Operators:
      • Assume variable A holds 10 and variable B holds 20 then − 

      Operator name

      Operator simple

      Description

      Example

      increment

      ++

      Increment operator, increases integer value by one

      A++ will give 11

      decrement

      --

      Decrement operator, decreases integer value by one

      A-- will give 9

      compound addition

      +=

      Add AND assignment operator. It adds right operand to the left operand and assign the result to left operand

      B += A is equivalent to B = B+ A

      compound subtraction

      -=

      Subtract AND assignment operator. It subtracts right operand from the left operand and assign the result to left operand

      B -= A is equivalent to B = B - A

      compound multiplication

      *=

      Multiply AND assignment operator. It multiplies right operand with the left operand and assign the result to left operand

      B*= A is equivalent to B = B* A

      compound division

      /=

      Divide AND assignment operator. It divides left operand with the right operand and assign the result to left operand

      B /= A is equivalent to B = B / A

      compound modulo

      %=

      Modulus AND assignment operator. It takes modulus using two operands and assign the result to left operand

      B %= A is equivalent to B = B % A

      compound bitwise or

      |=

      bitwise inclusive OR and assignment operator

      A |= 2 is same as A = A | 2

      compound bitwise and

      &=

      Bitwise AND assignment operator

      A &= 2 is same as A = A & 2


      Example: 

      void loop () {
         int a = 10,b = 20
         int c = 0;
         
         a++;
         a--;
         b += a;
         b -= a;
         b *= a;
         b /= a;
         a %= b;
         a |= b;
         a &= b;
      }

      Expected Output:
      a = 11
      a = 9
      b = 30
      b = 10
      b = 200
      b = 2
      a = 0
      a = 0
      a = 30

      Post a Comment

      Previous Post Next Post