Arduino: Introduction & Programming: Course Instructor

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 29

Arduino :

Introduction &
Programming
Course Instructor:

Dr Huma Qayyum
What is an Arduino ?
• Open Source electronic prototyping platform based on flexible easy to
use hardware and software.
Technical specification

• Microcontroller ATmega328
• Operating Voltage 5V
• Input Voltage (recommended) 7-12V
• Input Voltage (limits) 6-20V
• Digital I/O Pins 14 (of which 6 provide PWM output)
• Analog Input Pins 6
• DC Current per I/O Pin 40 mA
• DC Current for 3.3V Pin 50 mA
• Flash Memory 32 KB of which 0.5 KB used by bootloader
• SRAM 2 KB
• EEPROM 1 KB
• Clock Speed 16 MHz
Power USB
Arduino board can be powered by using the USB cable from your computer. All you need to do is connect
the USB cable to the USB connection (1).

Power (Barrel Jack)


Arduino boards can be powered directly from the AC mains power supply by connecting it to the Barrel
Jack (2).

Voltage Regulator
The function of the voltage regulator is to control the voltage given to the Arduino board and stabilize
the DC voltages used by the processor and other elements.

Crystal Oscillator
The crystal oscillator helps Arduino in dealing with time issues. How does Arduino calculate time? The
answer is, by using the crystal oscillator. The number printed on top of the Arduino crystal is 16.000H9H.
It tells us that the frequency is 16,000,000 Hertz or 16 MHz.
Arduino Reset
You can reset your Arduino board, i.e., start your program from the beginning. You can reset the UNO
board in two ways. First, by using the reset button (17) on the board. Second, you can connect an
external reset button to the Arduino pin labelled RESET (5).

Pins (3.3, 5, GND, Vin)


•3.3V (6) − Supply 3.3 output volt
•5V (7) − Supply 5 output volt
•Most of the components used with Arduino board works fine with 3.3 volt and 5 volt.
•GND (8)(Ground) − There are several GND pins on the Arduino, any of which can be used to ground
your circuit.
•Vin (9) − This pin also can be used to power the Arduino board from an external power source, like AC
mains power supply.
Analog pins
The Arduino UNO board has six analog input pins A0 through A5. These pins can read
the signal from an analog sensor like the humidity sensor or temperature sensor and
convert it into a digital value that can be read by the microprocessor.

Main microcontroller
Each Arduino board has its own microcontroller (11). You can assume it as the brain of
your board. The main IC (integrated circuit) on the Arduino is slightly different from
board to board. The microcontrollers are usually of the ATMEL Company. You must
know what IC your board has before loading up a new program from the Arduino IDE.
This information is available on the top of the IC. For more details about the IC
construction and functions, you can refer to the data sheet.
ICSP pin
Mostly, ICSP (12) is an AVR, a tiny programming header for the Arduino consisting
of MOSI, MISO, SCK, RESET, VCC, and GND. It is often referred to as an SPI (Serial
Peripheral Interface), which could be considered as an "expansion" of the output.
Actually, you are slaving the output device to the master of the SPI bus.
Power LED indicator
This LED should light up when you plug your Arduino into a power source to
indicate that your board is powered up correctly. If this light does not turn on,
then there is something wrong with the connection.
TX and RX LEDs
On your board, you will find two labels: TX (transmit) and RX (receive). They
appear in two places on the Arduino UNO board. First, at the digital pins 0 and 1,
to indicate the pins responsible for serial communication. Second, the TX and RX
led (13). The TX led flashes with different speed while sending the serial data.
The speed of flashing depends on the baud rate used by the board. RX flashes
during the receiving process.
Digital I/O
The Arduino UNO board has 14 digital I/O pins (15) (of which 6 provide PWM (Pulse
Width Modulation) output. These pins can be configured to work as input digital pins to
read logic values (0 or 1) or as digital output pins to drive different modules like LEDs,
relays, etc. The pins labeled “~” can be used to generate PWM.

AREF
AREF stands for Analog Reference. It is sometimes, used to set an external reference
voltage (between 0 and 5 Volts) as the upper limit for the analog input pins.
Getting started with Programming
Bare minimum code

void setup() {
  // put your setup code here, to run once:
}

void loop() {
  // put your main code here, to run repeatedly:
}
Bare minimum code

• setup : It is called only when the Arduino is powered on or reset. It is


used to initialize variables and pin modes

• loop : The loop functions runs continuously till the device is powered
off. The main logic of the code goes here.
PinMode

• A pin on arduino can be set as input or output by using pinMode


function.

• pinMode(13, OUTPUT); // sets pin 13 as output pin

• pinMode(13, INPUT); // sets pin 13 as input pin


delay()

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 (unsigned long)

Returns
• Nothing
Reading/writing digital values

• digitalWrite(13, LOW); // Makes the output voltage on pin 13 , 0V

• digitalWrite(13, HIGH); // Makes the output voltage on pin 13 , 5V

• int buttonState = digitalRead(2); // reads the value of pin 2 in


buttonState
Blink an LED

Description • Circuit

Simplest thing that you can do


with Arduino is blink an LED.

• Hardware Required
Arduino Board
LED
220 ohm resistor
Schematic
Code

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
 // pinMode(LED_BUILTIN, OUTPUT);
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever


void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
Contd..

Description Circuit
Connect the anode (the longer,
positive leg) of your LED to digital
output pin 9 on your board through
a 220 ohm resistor. Connect
the cathode (the shorter, negative
leg) directly to ground.
Schematic
Blinking Three Leds
Blinking three LEDs
• void setup() {
• // initialize digital pin LED_BUILTIN as an output.
• pinMode(11, OUTPUT);
• pinMode(12, OUTPUT);
• pinMode(13, OUTPUT);
•}

• // the loop function runs over and over again forever


• void loop() {
• digitalWrite(11, HIGH); // turn the LED on (HIGH is the voltage level)
• delay(1000); // wait for a second
• digitalWrite(11, LOW); // turn the LED off by making the voltage LOW
• delay(1000); // wait for a second

• digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)


• delay(1000); // wait for a second
• digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
• delay(1000); // wait for a second

• digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)


• delay(1000); // wait for a second
• digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
• delay(1000); // wait for a second
Ultrasonic Sensor
Ultrasonic Sensor

• How Does it Work?


• The ultrasonic sensor uses sonar to determine the distance to an
object. Here’s what happens:
• The transmitter (trig pin) sends a signal: a high-frequency sound.
• When the signal finds an object, it is reflected and…
• … the transmitter (echo pin) receives it.
Water level sensor

• #define trig 10
• #define echo 11
• int greenLED = 5;
• int yellowLED = 2;
• int redLED = 7;

• void setup() {
• pinMode(echo,INPUT);
• pinMode(trig,OUTPUT);
• pinMode(greenLED,OUTPUT);
• pinMode(yellowLED,OUTPUT);
• pinMode(redLED,OUTPUT);
• Serial.begin(9600);
•}
Water level sensor

• void loop() {
• // put your main code here, to run repeatedly:
• float d = distance();
• Serial.println(d);
• if (d>10)
• {
• Serial.println("Water Level is LOW");
• digitalWrite(greenLED,HIGH);
• digitalWrite(yellowLED,LOW);
• digitalWrite(redLED,LOW);
• }
Water

level sensor
• else if ( d>4.5 && d<10)
• {
• Serial.println("Water Level is AVG");
• digitalWrite(greenLED,LOW);
• digitalWrite(yellowLED,HIGH);
• digitalWrite(redLED,LOW);
• }
• else if ( d<4.5)
• {
• Serial.println("Water Level is HIGH");
• digitalWrite(greenLED,LOW);
• digitalWrite(yellowLED,LOW);
• digitalWrite(redLED,HIGH);
• }
• delay(500);
•}
Water level sensor
float distance() {
digitalWrite(trig,LOW);
delayMicroseconds(2);

// sending high on trig pin for 10us


digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);

float duration = pulseIn(echo,HIGH);


float distance = (duration * 0.034)/2;
return distance;
}

You might also like