What is Arduino?  Arduino is an open- source computer hardware and software company, project and user community that designs and manufactures microcontroller-based kits for building systems consisting of digital devices, interactive objects that can sense and control in the physical world.
How to program Arduino?  The Arduino Integrated Development Environment (IDE) supports the C and C++ programming languages using special rules of code organization.  The Arduino IDE supplies a software library called "Wiring" from the Wiring project, which provides many common input and output procedures.
Arduino Products
Entry Level
Enhanced Features
Official Website: https://www.arduino.cc/
ARDUINO UNO
Technical specifications:  Microcontroller: Microchip ATmega328P  Operating Voltage: 5 Volt  Input Voltage: 7 to 20 Volts  Digital I/O Pins: 14 (of which 6 provide PWM output)  Analog Input Pins: 6  DC Current per I/O Pin: 20 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  Length: 68.6 mm  Width: 53.4 mm  Weight: 25 g
Program Structure Setup( ) { // A function that runs once at the start of a program and is used to set //pinMode or initialize serial communication } loop( ) { // This function includes the code to be executed continuously – reading inputs, //triggering outputs, etc. // This function is the core of all Arduino programs and does the bulk of the //work. }
Activity 1.1 Type : Team of 2 Duration : 15 Minutes Use LED blink program from example and upload it on the ARDUINO board
Functions to handle digital I/O pinMode (pin, OUTPUT); // make the digital pin either INPUT or OUTPUT  digitalRead (pin); //used to get the content on the pin which is HIGH(1) or LOW(0)  digitalWrite(pin, value) //used to send HIGH(1) or LOW(0) value to a pin
Time Function  delay(ms) // waits for milli – seconds
/*….. Program to blink the LED on pin 13 …..*/ void setup( ) { pinMode(13, OUTPUT); //Initialize the digital pin as output } void loop( ) { digitalWrite(13, HIGH); // Turn the LED ON delay(1000); // Wait for one second digitalWrite(13, LOW); // Turn the LED OFF delay(1000); // Wait for one second }
Activity 1.2 Type : Team of 2 Duration : 10 Minutes Modify the program to blink LED every 2 sec on pin 12.
Circuit for the LED Cathode of LED Anode of LED
/*….. Program to blink the LED every 2 second on pin12*/ void setup( ) { pinMode(12, OUTPUT); //Initialize the digital pin as output } void loop( ) { digitalWrite(12, HIGH); // Turn the LED ON delay(2000); // Wait for a two second digitalWrite(12, LOW); // Turn the LED OFF delay(2000); // Wait for a two second }
Activity 1.3 Type : Team of 2 Duration : 15 Minutes Modify the program to display the LED state every 2 sec on Serial Monitor.
Serial communication with ArduinoWhat is serial communication ?
The word serial means "one after the other."  What is Baud rate ? Number of symbols transferred per sec
Serial Display Functions  Serial.begin(baud_rate) //baud rate(characters per sec) between computer and board is typically 9600 although you can work with other speeds by changing settings of COM Port  Serial.print(value), //value could be any data and even string  Serial.println(value) //print in new line
Eg. Print INDIA on serial monitor void setup( ) { Serial.begin(9600);// 9600 is default baud rate of serial com port of a computer } void loop( ) { Serial.println(“INDIA”); // Send the value “INDIA” }
Serial Monitor
/*….. Modify the program to blink on pin12 and display the LED state every 2 sec on Serial Monitor…..*/ void setup( ) { pinMode(12, OUTPUT); //Initialize the digital pin as output Serial.begin(9600); } void loop( ) { digitalWrite(12, HIGH); // Turn the LED ON Serial.println(“ON”); // Send the value “ON” delay(2000); // Wait for a second digitalWrite(12, LOW); // Turn the LED OFF Serial.println(“OFF”); // Send the value “OFF” delay(2000); // Wait for a second }
Activity 1.4 Type : Team of 2 Duration : 25 Minutes Modify the program to blink 10 times per loop iteration and display no. of loop iterations on serial monitor.
Looping Concept //for loop concept Syntax – for(initialization ; condition; increment / decrement) { //code which you want to perform } Example : to print number from 1 to 10 for(int i=1;i<=10;i++) { Serial.println(i); Serial.println(“INDIA”); }
long int Count=0; void setup( ) { pinMode(12, OUTPUT); //Initialize the digital pin as output Serial.begin(9600); Serial.println(“count of iterations running are: “); } void loop( ) { for (int i=1;i<=10;i++) { Serial.println(i); digitalWrite(12, HIGH); Serial.println(“ON”); delay(1000); // wait for a second digitalWrite(12, LOW);  Serial.println(“OFF”); delay(1000); // wait for a second } Count++;  Serial.print(“Iteration:”); Serial.println(Count); }
Condition Statements if(Condition 1) { //Statements } if(Condition 2) { //Statements } else { //Statements }
Topic Learning Outcomes At the end of the topic the student should be able to 1. Explain the importance of platform based development 2. Use looping, delay and conditioning concepts in developing a program on Arduino environment.

Introduction to Arduino

  • 2.
    What is Arduino? Arduino is an open- source computer hardware and software company, project and user community that designs and manufactures microcontroller-based kits for building systems consisting of digital devices, interactive objects that can sense and control in the physical world.
  • 3.
    How to programArduino?  The Arduino Integrated Development Environment (IDE) supports the C and C++ programming languages using special rules of code organization.  The Arduino IDE supplies a software library called "Wiring" from the Wiring project, which provides many common input and output procedures.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    Technical specifications:  Microcontroller:Microchip ATmega328P  Operating Voltage: 5 Volt  Input Voltage: 7 to 20 Volts  Digital I/O Pins: 14 (of which 6 provide PWM output)  Analog Input Pins: 6  DC Current per I/O Pin: 20 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  Length: 68.6 mm  Width: 53.4 mm  Weight: 25 g
  • 10.
    Program Structure Setup( ) { //A function that runs once at the start of a program and is used to set //pinMode or initialize serial communication } loop( ) { // This function includes the code to be executed continuously – reading inputs, //triggering outputs, etc. // This function is the core of all Arduino programs and does the bulk of the //work. }
  • 11.
    Activity 1.1 Type :Team of 2 Duration : 15 Minutes Use LED blink program from example and upload it on the ARDUINO board
  • 12.
    Functions to handledigital I/O pinMode (pin, OUTPUT); // make the digital pin either INPUT or OUTPUT  digitalRead (pin); //used to get the content on the pin which is HIGH(1) or LOW(0)  digitalWrite(pin, value) //used to send HIGH(1) or LOW(0) value to a pin
  • 13.
    Time Function  delay(ms) //waits for milli – seconds
  • 14.
    /*….. Program toblink the LED on pin 13 …..*/ void setup( ) { pinMode(13, OUTPUT); //Initialize the digital pin as output } void loop( ) { digitalWrite(13, HIGH); // Turn the LED ON delay(1000); // Wait for one second digitalWrite(13, LOW); // Turn the LED OFF delay(1000); // Wait for one second }
  • 15.
    Activity 1.2 Type :Team of 2 Duration : 10 Minutes Modify the program to blink LED every 2 sec on pin 12.
  • 16.
    Circuit for theLED Cathode of LED Anode of LED
  • 17.
    /*….. Program toblink the LED every 2 second on pin12*/ void setup( ) { pinMode(12, OUTPUT); //Initialize the digital pin as output } void loop( ) { digitalWrite(12, HIGH); // Turn the LED ON delay(2000); // Wait for a two second digitalWrite(12, LOW); // Turn the LED OFF delay(2000); // Wait for a two second }
  • 18.
    Activity 1.3 Type :Team of 2 Duration : 15 Minutes Modify the program to display the LED state every 2 sec on Serial Monitor.
  • 19.
    Serial communication with ArduinoWhatis serial communication ?
  • 20.
    The word serialmeans "one after the other."  What is Baud rate ? Number of symbols transferred per sec
  • 21.
    Serial Display Functions Serial.begin(baud_rate) //baud rate(characters per sec) between computer and board is typically 9600 although you can work with other speeds by changing settings of COM Port  Serial.print(value), //value could be any data and even string  Serial.println(value) //print in new line
  • 22.
    Eg. Print INDIAon serial monitor void setup( ) { Serial.begin(9600);// 9600 is default baud rate of serial com port of a computer } void loop( ) { Serial.println(“INDIA”); // Send the value “INDIA” }
  • 23.
  • 24.
    /*….. Modify theprogram to blink on pin12 and display the LED state every 2 sec on Serial Monitor…..*/ void setup( ) { pinMode(12, OUTPUT); //Initialize the digital pin as output Serial.begin(9600); } void loop( ) { digitalWrite(12, HIGH); // Turn the LED ON Serial.println(“ON”); // Send the value “ON” delay(2000); // Wait for a second digitalWrite(12, LOW); // Turn the LED OFF Serial.println(“OFF”); // Send the value “OFF” delay(2000); // Wait for a second }
  • 25.
    Activity 1.4 Type :Team of 2 Duration : 25 Minutes Modify the program to blink 10 times per loop iteration and display no. of loop iterations on serial monitor.
  • 26.
    Looping Concept //for loopconcept Syntax – for(initialization ; condition; increment / decrement) { //code which you want to perform } Example : to print number from 1 to 10 for(int i=1;i<=10;i++) { Serial.println(i); Serial.println(“INDIA”); }
  • 27.
    long int Count=0; voidsetup( ) { pinMode(12, OUTPUT); //Initialize the digital pin as output Serial.begin(9600); Serial.println(“count of iterations running are: “); } void loop( ) { for (int i=1;i<=10;i++) { Serial.println(i); digitalWrite(12, HIGH); Serial.println(“ON”); delay(1000); // wait for a second digitalWrite(12, LOW);  Serial.println(“OFF”); delay(1000); // wait for a second } Count++;  Serial.print(“Iteration:”); Serial.println(Count); }
  • 28.
  • 29.
    Topic Learning Outcomes Atthe end of the topic the student should be able to 1. Explain the importance of platform based development 2. Use looping, delay and conditioning concepts in developing a program on Arduino environment.