======Variables ====== A variable is a way of naming and storing a value for later use by the program, such as data from a sensor or an intermediate value used in a calculation. ====Declaring Variables ==== Before they are used, all variables have to be declared. Declaring a variable means defining its type, and optionally, setting an initial value (initializing the variable). Variables do not have to be initialized (assigned a value) when they are declared, but it is often useful. int inputVariable1; int inputVariable2 = 0; // both are correct Programmers should consider the size of the numbers they wish to store in choosing variable types. Variables will [[#VariableRollover|roll over]] when the value stored exceeds the space assigned to store it. See below for an example. ====Variable Scope ==== Another important choice that programmers face is where to declare variables. The specific place that variables are declared influences how various functions in a program will ''see'' the variable. This is called variable [[scope]]. ====Initializing Variables ==== Variables may be ''initialized'' (assigned a starting value) when they are declared or not. It is always good programming practice however to double check that a variable has valid data in it, before it is accessed for some other purpose. Example: int calibrationVal = 17; // declare calibrationVal and set initial value ====[[#VariableRollover]] Variable Rollover ==== When variables are made to exceed their maximum capacity they "roll over" back to their minimum capacity, note that this happens in both directions. int x x = -32,768; x = x - 1; // x now contains 32,767 - rolls over in neg. direction x = 32,767; x = x + 1; // x now contains -32,768 - rolls over ====Using Variables ==== Once variables have been declared, they are used by setting the variable equal to the value one wishes to store with the [[arduino:arithmetic operators:Assignment|assignment operator]] (single equal sign). The assignment operator tells the program to put whatever is on the right side of the equal sign into the variable on the left side. inputVariable1 = 7; // sets the variable named inputVariable1 to 7 inputVariable2 = analogRead(2); // sets the variable named inputVariable2 to the // (digitized) input voltage read from analog pin #2 ==== Examples ==== int lightSensVal; char currentLetter; unsigned long speedOfLight = 186000UL; char errorMessage = {"choose another option"}; // see string Once a variable has been set (assigned a value), you can test its value to see if it meets certain conditions, or you can use its value directly. For instance, the following code tests whether the inputVariable2 is less than 100, then sets a delay based on inputVariable2 which is a minimum of 100: if (inputVariable2 < 100) { inputVariable2 = 100; } delay(inputVariable2); This example shows all three useful operations with variables. It tests the variable ( //if (inputVariable2 < 100)// ), it sets the variable if it passes the test ( //inputVariable2 = 100// ), and it uses the value of the variable as an input parameter to the delay() function (// delay(inputVariable2)// ) **Style Note:** You should give your variables descriptive names, so as to make your code more readable. Variable names like **tiltSensor** or **pushButton** help you (and anyone else reading your code) understand what the variable represents. Variable names like **var** or **value**, on the other hand, do little to make your code readable. You can name a variable any word that is not already one of the keywords in Arduino. Avoid beginning variable names with numeral characters. ====Some variable types ==== *[[arduino:data_types:char|char]] *[[arduino:data_types:byte|byte]] *[[arduino:data_types:int|int]] *[[arduino:data_types:unsignedint|unsigned int]] *[[arduino:data_types:long|long]] *[[arduino:data_types:UnsignedLong | unsigned long]] *[[arduino:data_types:float|float]] *[[arduino:data_types:double|double]] ====Variable Scope ==== *[[http://arduino.cc/en/Reference/scope| Variable Scope]] Source: arduino.cc