Uploaded by Abenezer Hailu

Arduino Basic

advertisement
Arduino Programming Language

The Arduino Programming Language is basically a framework built
on top of C++.

A program written in the Arduino Programming Language is called
sketch. A sketch is normally saved with the .ino extension (from
Arduino).

The main difference from “normal” C or C++ is that you wrap all
your code into two main functions. You can have more than two, of
course, but any Arduino program must provide at least those two.

We don’t have a main() function like you are used to in C/C++ as
the entry point for a program. Once you compile your sketch, the
IDE will make sure the end result is a correct C++ program and will
basically add the missing glue by preprocessing it.

Part of the Arduino Programming Language is the built-in libraries
that allow you to easily integrate with the functionality provided by
the Arduino board.
The Arduino program can be divided in three main parts: Structure,
Values (variables and constants), and Functions.
1
Structure
Software structure consist of two main functions −

Setup( ) function

Loop( ) function
2
Setup()

The setup() function is called when a sketch starts. Use it to
initialize the variables, pin modes, start using libraries, etc.

The setup function will only run once, after each power up or reset
of the Arduino board.
Example Code
int buttonPin = 3;
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop() {
// ...
}
Loop()

After creating a setup() function, which initializes and sets the initial
values, the loop() function does precisely what its name suggests,
and loops consecutively, allowing your program to change and
respond. Use it to actively control the Arduino board.
Example Code
int buttonPin = 3;
// setup initializes serial and the button pin
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
// loop checks the button pin each time, and will send serial if it is
pressed
3
void loop() {
if (digitalRead(buttonPin) == HIGH) {
Serial.write('H');
}
else {
Serial.write('L');
}
delay(1000);
}
Variables
The variables are defined as the place to store the data and values. It
consists of a name, value, and type.
Data types
4
Consider the below example:
Examples:
1. int a = 3;
2. char myvariable = ' B ';
3. float val = 1.178;
4. String a = "Hello";
Constants
Pin level Constants
The digital pins can take two value HIGH or LOW.
In Arduino, the pin is configured as INPUT or OUTPUT using the pinMode()
function. The pin is further made HIGH or LOW using the digitalWrite()
function.
HIGH
The board includes two types of voltage pins to provide HIGH value, which
are listed below:
o
5V
o
3V
Some boards include only 5V pins, while some include 3.3V.
Some boards consist of both 5V and 3.3V pins. For example, Arduino
UNO R3.
The pin configured as HIGH is set at either 5V or 3.3V.
5
The pins are configured at the 5V or 3.3V depending on:
o
for voltage > 3.0V (presented at 5V pin)
o
for voltage > 2.0V (presented at 3.3V pin)
LOW
The pin configured as LOW is set at 0 Volts.
The pins are configured at the 5V or 3.3V depending on:
o
for voltage < 1.5V (presented at 5V pin)
o
for voltage < 1V (presented at 3.3V pin)
Logical level Constants
The logical level constants are true or false.
The value of true and false are defined as 1 and 0. Any non-zero integer is
determined as true in terms of Boolean language. The true and false
constants are type in lowercase rather than uppercase (such as HIGH, LOW,
etc.).
Constant Keyword
The name const represents the constant keyword. It modifies the behavior
of the variables in our program. It further makes the variable as 'read-only'.
The variable will remain the same as other variables, but its value cannot
be changed.
Example Code
const float pi = 3.14;
Example Code
const int a =2;
6
Functions
The functions allow a programmer to divide a specific code into various
sections, and each section performs a particular task. The functions are
created to perform a task multiple times in a program.
The function is a type of procedure that returns the area of code from which
it is called.
For example, to repeat a task multiple times in code, we can use the same
set of statements every time the task is performed.
Function Declaration
The method to declare a function is listed below:
o
Function return type
We need a return type for a function. For example, we can store the return
value of a function in a variable.
We can use any data type as a return type, such as float, char, etc.
o
Function name
It consists of a name specified to the function. It represents the real body
of the function.
o
Function parameter
It includes the parameters passed to the function. The parameters are
defined as the special variables, which are used to pass data to a function.
The function must be followed by parentheses ( ) and the semicolon ;
The actual data passed to the function is termed as an argument.
7
Example:
Consider the below image:
Example:
1. void setup()
2. {
3.
Serial.begin(9600);
4. }
5. void loop() {
6.
int a = 5; // initialization of values to the variables a and b
7.
int b = 4;
8.
int c;
9.
c = myAddfunction(a, b); // c will now contains the value 9
10.
Serial.println(c); // to print the resulted value
11.
delay(1000); // time delay of 1 second or 1000 milliseconds
12.
}
13.
int myAddfunction(int i, int j)
14.
{
15.
int sum;
16.
sum = i + j;
17.
return sum;
18.
}
8
pinMode()
[Digital I/O]
Description
Configures the specified pin to behave either as an input or an output.
Syntax
pinMode(pin, mode)
Parameters
pin:
the
Arduino
pin
number
to
set
the
mode
of.
mode: INPUT, OUTPUT, or INPUT_PULLUP.
Returns
Nothing
Example Code
The code makes the digital pin 13 OUTPUT and Toggles it HIGH and LOW
void setup() {
pinMode(13, OUTPUT);
// sets the digital pin 13 as output
}
void loop() {
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(1000);
// waits for a second
digitalWrite(13, LOW); // sets the digital pin 13 off
delay(1000);
// waits for a second
}
9
digitalRead()
[Digital I/O]
Description
Reads the value from a specified digital pin, either HIGH or LOW.
Syntax
digitalRead(pin)
Parameters
pin: the Arduino pin number you want to read
Returns
HIGH or LOW
Example Code
Sets pin 13 to the same value as pin 7, declared as an input.
int ledPin = 13; // LED connected to digital pin 13
int inPin = 7;
// pushbutton connected to digital pin 7
int val = 0;
// variable to store the read value
void setup() {
pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output
pinMode(inPin, INPUT);
// sets the digital pin 7 as input
}
void loop() {
val = digitalRead(inPin);
// read the input pin
digitalWrite(ledPin, val); // sets the LED to the button's value
}
Notes and Warnings
If
the
pin
isn’t
connected
to
anything, digitalRead() can
either HIGH or LOW (and this can change randomly).
10
return
The analog input pins can be used as digital pins, referred to as A0, A1,
etc. The exception is the Arduino Nano, Pro Mini, and Mini’s A6 and A7 pins,
which can only be used as analog inputs.
digitalWrite()
[Digital I/O]
Description
Write a HIGH or a LOW value to a digital pin.
If the pin has been configured as an OUTPUT with pinMode(), its voltage
will be set to the corresponding value: 5V (or 3.3V on 3.3V boards) for
HIGH, 0V (ground) for LOW.
If the pin is configured as an INPUT, digitalWrite() will enable (HIGH) or
disable (LOW) the internal pullup on the input pin.
If you do not set the pinMode() to OUTPUT, and connect an LED to a pin,
when calling digitalWrite(HIGH), the LED may appear dim.
11
Syntax
digitalWrite(pin, value)
Parameters
pin: the Arduino pin number.
value: HIGH or LOW.
Returns
Nothing
Example Code
The code makes the digital pin 13 an OUTPUT and toggles it by
alternating between HIGH and LOW at one second pace.
void setup() {
pinMode(13, OUTPUT);
// sets the digital pin 13 as output
}
void loop() {
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(1000);
// waits for a second
digitalWrite(13, LOW); // sets the digital pin 13 off
delay(1000);
// waits for a second
}
analogRead()
[Analog I/O]
Description
Reads the value from the specified analog pin. Arduino boards contain a
multichannel, 10-bit analog to digital converter. This means that it will map
input voltages between 0 and the operating voltage (5V or 3.3V) into
integer values between 0 and 1023.
12
Syntax
analogRead(pin)
Parameters
pin: the name of the analog input pin to read from (A0 to A5 on most
boards, A0 to A6 on MKR boards, A0 to A7 on the Mini and Nano, A0 to A15
on the Mega).
Returns
The analog reading on the pin.
Example Code
The code reads the voltage on analogPin and displays it.
int analogPin = A3; // potentiometer wiper (middle terminal) connected to
analog pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read
void setup() {
Serial.begin(9600);
// setup serial
}
void loop() {
val = analogRead(analogPin); // read the input pin
Serial.println(val);
// debug value
}
13
analogWrite()
[Analog I/O]
Description

The analogWrite Arduino command is used to update the status of
analog pins and also used to address the PWM pins on the board.


The PWM pins are 8-bit pins, terming that you can set the duty cycle
somewhere between 0 -255.

The analogWrite comes handy when you plan to control the motor
speed or the intensity of any LED.

The value you write on the PWM pins will control the speed. For
example, if you intend to run the motor at full speed, you will set the
value 255 i.e. the maximum value it can handle that will ultimately
run the motor at full speed.

You do not need to call pinMode() to set the pin as an output before
calling analogWrite().

The analogWrite function has nothing to do with the analog pins or
the analogRead function.
Syntax
analogWrite(pin, value)
Parameters
pin:
the
Arduino
pin to
write
to.
Allowed data
types: int. value:
the duty cycle: between 0 (always off) and 255 (always on). Allowed data
types: int.
14
Returns
Nothing
Example Code
Sets the output to the LED proportional to the value read from the
potentiometer.
int ledPin = 9;
// LED connected to digital pin 9
int analogPin = 3;
int val = 0;
// potentiometer connected to analog pin 3
// variable to store the read value
void setup() {
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop() {
val = analogRead(analogPin); // read the input pin
analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023,
analogWrite values from 0 to 255
}
delay()
[Time]
Description
Pauses the program for the amount of time (in milliseconds) specified as
parameter. (There are 1000 milliseconds in a second.)
Syntax
delay(ms)
Parameters
ms: the number of milliseconds to pause. Allowed data types: unsigned
long.
15
Returns
Nothing
Example Code
The code pauses the program for one second before toggling the output
pin.
int ledPin = 13;
// LED connected to digital pin 13
void setup() {
pinMode(ledPin, OUTPUT);
// sets the digital pin as output
}
void loop() {
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000);
// waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000);
// waits for a second
}
delayMicroseconds()
[Time]
Description
Pauses the program for the amount of time (in microseconds) specified by
the parameter. There are a thousand microseconds in a millisecond and a
million microseconds in a second.
Currently, the largest value that will produce an accurate delay is 16383.
This could change in future Arduino releases. For delays longer than a few
thousand microseconds, you should use delay() instead.
16
Syntax
delayMicroseconds(us)
Parameters
us: the number of microseconds to pause. Allowed data types: unsigned
int.
Returns
Nothing
Example Code
The code configures pin number 8 to work as an output pin. It sends a train
of pulses of approximately 100 microseconds period. The approximation is
due to execution of the other instructions in the code.
int outPin = 8;
// digital pin 8
void setup() {
pinMode(outPin, OUTPUT);
// sets the digital pin as output
}
void loop() {
digitalWrite(outPin, HIGH); // sets the pin on
delayMicroseconds(50);
// pauses for 50 microseconds
digitalWrite(outPin, LOW); // sets the pin off
delayMicroseconds(50);
// pauses for 50 microseconds
}
17
Download