Skip to the content.

Kerala IoT Challenge Level-1

Arduino Tutorial Full Course

Arduino Tutorial Crash Course

Experiment 1 - Hello World LED Blinking

Components

Video

Expriment

Tutorial

Introduction

Episode 1

Arduino pinout

Episode 2

Arduino Frist Program

Episode 3

Breadboard

Episode 6

Episode 4

Code

#define LED 8
void setup(){ 
  pinMode(LED, OUTPUT);
} 
void loop(){
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
}

Experiment 2 - Traffic Light

Components

Circuit

Expriment 2

Video

Expriment 2

Tutorial

Variable

Episode 5

For Loop

Episode 7

While Loop

While loop

Code

#define RED 7
#define YELLOW 6
#define GREEN 5
void setup(){ 
  pinMode(RED, OUTPUT);
  pinMode(YELLOW, OUTPUT);
  pinMode(GREEN, OUTPUT);
} 
void loop(){
  //Red led on , green led off and wait 5 secound then Red led OFF
  digitalWrite(RED, HIGH);  
  digitalWrite(GREEN, LOW);
  delay(5000);
  digitalWrite(RED, LOW);
  // yellow led blink 3 time in 0.5 sec
  for(int i=0;i<3;i++){ 
    digitalWrite(YELLOW,HIGH);
    delay(500);
    digitalWrite(YELLOW,LOW);
    delay(500);
  }
  //Green led on , Red led off and wait 5 secound then Green LED OFF
  digitalWrite(GREEN, HIGH);  
  digitalWrite(RED, LOW);
  delay(5000);
  digitalWrite(GREEN, LOW);
  // yellow led blink 3 time in 0.5 sec
  for(int i=0;i<3;i++){ 
    digitalWrite(YELLOW,HIGH);
    delay(500);
    digitalWrite(YELLOW,LOW);
    delay(500);
  }

}

Experiment 3 - LED Chasing Effect

Components

Circuit

Expriment 3

Video

Expriment 2

Tutorial

Serial monitor

Serial Monitor

String

String

Serial Monitor input

String

Array

Array

i++,i–

Array

Code

//Make array and store led pins
int LED[]={10,9,8,7,6,5};
//commen delay time
int DELAY_TIME = 50;
int i=0; // make a itrating variable and assain value 0
void setup(){ 
  //set all led are output
  for(int i=0;i<6;i++){
    pinMode(LED[i],OUTPUT);
  }
} 
// right looping
void loop(){
  while(i<6){
    digitalWrite(LED[i],HIGH);
    delay(DELAY_TIME);
    digitalWrite(LED[i],LOW);
    delay(DELAY_TIME);
    i++; // i=i+1
  }
  i-=2; // i=i-2
  //left looping
  while(i>=0){
    digitalWrite(LED[i],HIGH);
    delay(DELAY_TIME);
    digitalWrite(LED[i],LOW);
    delay(DELAY_TIME);
    i--; //i=i-1
  }
  i+=2; // i=i+2
  

}

Experiment 4 -Button Controlled LED

Components

Circuit

Expriment 3

Video

Expriment 2

Tutorial

Arduino push buttion

push buttion

Reading

String

INPUT PULLUP

push buttion

Code

// set Read pin 10
#define READ_PIN 10
// led colnnect 13 
#define LED 13
bool readData=0;
void setup(){ 
  pinMode(READ_PIN ,INPUT);
  pinMode(LED ,OUTPUT);
} 
void loop(){
  readData=digitalRead(READ_PIN); // read data
  Serial.println(readData);
  digitalWrite(LED,readData); // read data high LED WILL ON otherwice led will off
}

Experiment 5 -BUZZER

Components

Circuit

Expriment 3

Video

Expriment 2

Code

// Buzzer Connect 13
#define BUZZER 13
void setup(){ 
  pinMode(BUZZER ,OUTPUT);
} 
void loop(){
  digitalWrite(BUZZER,HIGH); // BUZZER ON
  delay(1000);
  digitalWrite(BUZZER,LOW); // BUZZER OFF
  delay(1000);
}

Experiment 6 -RGB LED

Components

Circuit

Expriment 3

Video

Expriment 2

Tutorial

Analog Write

push buttion

RGB PART 1

push buttion

RGB PART 2

String

Code

int RGB_LED[]={11,9,10};
void setup(){ 
  for(int i=0;i<3;i++)
    pinMode(RGB_LED[i],OUTPUT);
} 
void loop(){
  for(int j=0;j<255;j++){
    analogWrite(RGB_LED[0],j);
    analogWrite(RGB_LED[1],0);
    analogWrite(RGB_LED[2],0);
    delay(5);
  }
  for(int j=0;j<255;j++){
    analogWrite(RGB_LED[0],0);
    analogWrite(RGB_LED[1],j);
    analogWrite(RGB_LED[2],0);
    delay(5);
  }
  for(int j=0;j<255;j++){
    analogWrite(RGB_LED[0],0);
    analogWrite(RGB_LED[1],0);
    analogWrite(RGB_LED[2],j);
    delay(5);
  }
  for(int j=0;j<255;j++){
    analogWrite(RGB_LED[0],j);
    analogWrite(RGB_LED[1],j);
    analogWrite(RGB_LED[2],0);
    delay(5);
  }
  for(int j=0;j<255;j++){
    analogWrite(RGB_LED[0],j);
    analogWrite(RGB_LED[1],0);
    analogWrite(RGB_LED[2],j);
    delay(5);
  }
  for(int j=0;j<255;j++){
    analogWrite(RGB_LED[0],0);
    analogWrite(RGB_LED[1],j);
    analogWrite(RGB_LED[2],j);
    delay(5);
  }
  for(int j=0;j<255;j++){
    analogWrite(RGB_LED[0],j);
    analogWrite(RGB_LED[1],j);
    analogWrite(RGB_LED[2],j);
    delay(5);
  }
  
}

Experiment 7- LDR SENSOR

Components

Circuit

Expriment 3

Video

Expriment 2

Tutorial

AND GATE

push buttion

OR GATE

push buttion

NOT GATE

push buttion

Code

#define LDR 12 // LDR CONNECT 12
#define RLED 11 // Red LED CONNECT 11
#define GLED 10 // Green LED Connect 10
bool readData=0;
void setup(){ 
  pinMode(RLED,OUTPUT);
  pinMode(GLED,OUTPUT);
  pinMode(LDR,INPUT);
} 
void loop(){
  readData=digitalRead(LDR);
  digitalWrite(RLED,readData);
  digitalWrite(GLED,!readData);
}

Experiment 8- FLAME SENSOR

Components

Circuit

Expriment 3

Video

Expriment 2

Tutorial

Analog Write

push buttion

UntraSonic

push buttion

UntraSonic Distance

push buttion

Simple if

push buttion

else if laddar

push buttion

Switch

push buttion

Code

#define FLAME A0 // Flaem sensor CONNECT A0
#define RED 11 // Red LED CONNECT 11
#define BUZZER 10 // Buzzer LED Connect 10

int data;
void setup(){ 
  pinMode(RED,OUTPUT);
  pinMode(FLAME,INPUT);
  pinMode(BUZZER,OUTPUT);
  Serial.begin(9600);
} 
void loop(){
  data=analogRead(FLAME);
  Serial.print("DATA :");
  Serial.println(data);
  if(data>600){
    digitalWrite(RED,HIGH);
    digitalWrite(BUZZER,HIGH);
    delay(1000);
  }else{
    digitalWrite(RED,LOW);
    digitalWrite(BUZZER,LOW);
  }
}

Experiment 9- LM35 Temperature Sensor

Components

Sensor

Expriment 3

Expriment 3

Expriment 3

Circuit

Expriment 3

Video

Expriment 2

Code

#define LM35_SENSOR A0 // Flaem sensor CONNECT A0
float readData;
float tempC,tempF;
void setup(){ 
  pinMode(LM35_SENSOR,INPUT);
  Serial.begin(9600);
} 
void loop(){
  readData=analogRead(LM35_SENSOR);
  tempC=(readData/1024.0)*500;
  Serial.print("Temprature : ");
  Serial.print(tempC);
  Serial.print(" *C =");
  tempF=(tempC*9.0)/5.0 + 32.0;
  Serial.print(tempF);
  Serial.println(" *F");
}

Experiment 10- IR Remote Control Using TSOP

Components

Sensor

Expriment 3

IR Decode

Circuit

Expriment 3

Video

Expriment 2

Code

#define IR_PIN A0 // IR sensor connect
#include<IRremote.h> // IR library
IRrecv irrecv(IR_PIN); // connect ir pin to library
decode_results  result; 
void setup(){ 
  Serial.begin(9600);
  irrecv.enableIRIn(); 
  
} 
void loop(){
  if(irrecv.decode(&result)){
    Serial.println(result.value,HEX);
    irrecv.resume();
  }
}

IR LED Controll

Circuit

Expriment 3

Video

Expriment 2

Code

#define IR_PIN A0 // Flaem sensor CONNECT A0
#include<IRremote.h>
unsigned long receveData[]={0x1FE50AF,0x1FED827,0x1FEF807,0x1FE30CF,0x1FEB04F,0x1FE708F};
bool statusData[]{0,0,0,0,0,0};
int led[]={7,6,5,4,3,2};
IRrecv irrecv(IR_PIN);
decode_results  result;
void setup(){ 
  Serial.begin(9600);
  irrecv.enableIRIn();
  for(int i=0;i<6;i++)
    pinMode(led[i],OUTPUT);
} 
void loop(){
  if(irrecv.decode(&result)){
    Serial.println(result.value,HEX);
    for(int i=0;i<6;i++){
      if(result.value==receveData[i]){
        statusData[i]=!statusData[i];
        digitalWrite(led[i],statusData[i]);
      }
    }
    irrecv.resume();
  }
}

Experiment 12- Seven Segment Display

Components

Circuit

Expriment 3

Video

Expriment 2

Tutorial

Function Part 1

push buttion

Function Part 2

push buttion

Code


int sevenSeg[]={13,12,11,10,9,8,7,6};
void number(int i){
  switch(i){
    case 0: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],HIGH);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
    case 1: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],HIGH);
            digitalWrite(sevenSeg[2],HIGH);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],HIGH);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],HIGH);
            digitalWrite(sevenSeg[7],HIGH);
            break;
    case 2: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],HIGH);
            
           // digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],HIGH);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
    case 3: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],HIGH);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
    case 4: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],HIGH);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],HIGH);
            digitalWrite(sevenSeg[7],LOW);
            break;

    case 5: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],HIGH);
            break;
   case 6: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],HIGH);
            break;
    case 7: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],HIGH);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],HIGH);
            
            digitalWrite(sevenSeg[5],HIGH);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
   case 8: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
   case 9: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
      
  }
  
}
void setup(){ 
  Serial.begin(9600);
 
  for(int i=0;i<8;i++){
    pinMode(sevenSeg[i],OUTPUT);
    digitalWrite(sevenSeg[i],HIGH);
  }
  
    
} 
void loop(){
  for(int i=9;i>=0;i--){
    number(i);
    delay(750);
  }
}

Assigenment

Assigenment 1- Night lighting system

Components

Circuit

Expriment 3

Video

Expriment 2

Code

#define LDR A0// LDR CONNECT A0
#define LED 11 // LED CONNECT 11
int readData=0;
void setup(){ 
  pinMode(LED,OUTPUT);
  pinMode(LDR,INPUT);
  Serial.begin(9600);
} 
void loop(){
  readData=analogRead(LDR);
  Serial.println(readData);
  if(readData>200)
    digitalWrite(LED,HIGH);
  else
    digitalWrite(LED,LOW);
}

Assigenment 2 - 6 Number Random Dice

Components

Circuit

Expriment 3

Video

Expriment 2

Code

#define readPin A0
bool readStatus=0;
int sevenSeg[]={13,12,11,10,9,8,7,6};
void number(int i){
  switch(i){
    case 0: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],HIGH);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
    case 1: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],HIGH);
            digitalWrite(sevenSeg[2],HIGH);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],HIGH);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],HIGH);
            digitalWrite(sevenSeg[7],HIGH);
            break;
    case 2: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],HIGH);
            
           // digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],HIGH);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
    case 3: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],HIGH);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
    case 4: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],HIGH);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],HIGH);
            digitalWrite(sevenSeg[7],LOW);
            break;

    case 5: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],HIGH);
            break;
   case 6: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH); 
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],HIGH);
            break;
    case 7: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],HIGH);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],HIGH);
            
            digitalWrite(sevenSeg[5],HIGH);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
   case 8: digitalWrite(sevenSeg[0],LOW);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
   case 9: digitalWrite(sevenSeg[0],HIGH);
            digitalWrite(sevenSeg[1],LOW);
            digitalWrite(sevenSeg[2],LOW);
            
            //digitalWrite(sevenSeg[3],HIGH);
            digitalWrite(sevenSeg[4],LOW);
            
            digitalWrite(sevenSeg[5],LOW);
            digitalWrite(sevenSeg[6],LOW);
            digitalWrite(sevenSeg[7],LOW);
            break;
      
  }
  
}
void setup(){ 
  Serial.begin(9600);
 
  for(int i=0;i<8;i++){
    pinMode(sevenSeg[i],OUTPUT);
    digitalWrite(sevenSeg[i],HIGH);
  }
  pinMode(readPin,INPUT_PULLUP);
  
  
    
} 
void loop(){
  if(readStatus==0&&digitalRead(readPin)==LOW){
    number(random(1,7));
    readStatus=1;
  }else if(digitalRead(readPin)==HIGH&&readStatus==1){
    readStatus=0;
  }
  delay(50);
}