Llllevel 1
Llllevel 1
TECHNOLOGY
LECTURE
   1
• Signal Types
              on         on         on
   5V                                    5V
                             Movement
                             detection sensor
• Some  Analog
  Digital      Signal app
          Signal
Light Sensor
Variable resistance
                            Smoke Sensor
• Arduino Interfacing
 1. Make Arduino OUTPUTs a digital signal on pin no. 7
  void setup() {
     pinMode(7,OUTPUT) ;
    //OR pinMode(7,1);
  }
 void setup() {
   pinMode(11,INPUT) ;
  //OR pinMode(7,O);
 }
• Arduino OUTPUT signal
 1. Make Arduino OUTPUTs a 5 volt signal on pin no. 4
  void setup() {                                        50 volt
     pinMode(7,OUTPUT);
     digitalWrite(7,HIGH);
    //digitalWrite(7,1);
  }
1. Make Arduino OUTPUTs a 0 volt signal on pin
   no. 4
void setup() {
   pinMode(7,OUTPUT);
   digitalWrite(7,LOW);
  //digitalWrite(7,0);
}
• Arduino INPUT signal
 1. Make Arduino Reads an INPUT signal on pin no. 13
  void setup() {
    pinMode(13,INPUT);
    digitalRead(13);
  }
• Blink code
   int ledPin =   13;
   void setup()
   {
     pinMode(ledPin , OUTPUT);
   }
   void loop()
   {
     digitalWrite(ledPin, HIGH);
     delay(1000);
     digitalWrite(ledPin, LOW);
     delay(1000);
   }
• Another way of coding
   int ledPin = 13;
   int on = 1000;
   int off = 1000;
   void setup()
   {
     pinMode(ledPin , OUTPUT);
   }
   void loop()
   {
     digitalWrite(ledPin, HIGH);
     delay(1000);
     digitalWrite(ledPin, LOW);
     delay(1000);
   }
int   red = 9;
int   yellow = 10;
int   green = 11;
int   ON = 1000;
int   OFF = 1000;
void setup()
{
  pinMode(red, OUTPUT);
  pinMode(yellow, OUTPUT);
  pinMode(green, OUTPUT);
}
void loop()
{
 digitalWrite(red, HIGH);
 delay(ON);
 digitalWrite(red, LOW);
 delay(OFF);
 digitalWrite(yellow, HIGH); delay(ON); digitalWrite(yellow, LOW); delay(OFF);
 digitalWrite(green, HIGH); delay(ON); digitalWrite(green, LOW); delay(OFF);
}
int   red = 9;
int   yellow = 10;
int   green = 11;
int   ON = 1000;
int   OFF = 1000;
void setup()
{
  pinMode(red, OUTPUT);
  pinMode(yellow, OUTPUT);
  pinMode(green, OUTPUT);
}
void loop()
{
 digitalWrite(red, HIGH);
 digitalWrite(yellow,HIGH)
 digitalWrite(green, HIGH);
 delay(ON);
 digitalWrite(red, LOW);
 digitalWrite(yellow, LOW);
 digitalWrite(green, LOW);
 delay(OFF);
}
int   red = 9;
int   yellow = 10;
int   green = 11;
int   ON = 1000;
int   OFF = 1000;
void setup()
{
  pinMode(red, OUTPUT);
  pinMode(yellow, OUTPUT);
  pinMode(green, OUTPUT);
}
void loop()
{
 digitalWrite(red, HIGH);
 delay(ON);
 digitalWrite(yellow,HIGH);
 delay(ON);
 digitalWrite(green, HIGH); delay(ON);   digitalWrite(red, LOW);     delay(OFF);
 digitalWrite(yellow,LOW); delay(Off); digitalWrite(green, LOW); delay(OFF);
}
• Task
• Push Button
pin
               Arduino
                 uno
                                   0
                                   V
• Code
void setup()
{ pinMode(7, INPUT);
   Serial.begin(9600); }
void loop()
{ Serial.println(digitalRead(7)); }
bool reading;
void setup()
{ pinMode(7, INPUT);
   Serial.begin(9600);}
void loop()
{    reading = digitalRead(7);
     Serial.println(reading); }
• Task
• Make a counter on the serial monitor that
  increases by one every time you hit the
  pushbutton
            counter
               21
                3
THANKS
 FOR
COMING
LECTURE
   2
int led = 3;
int button = 2;
int Reading = 0;
void setup()
{
  pinMode(led, OUTPUT);
  pinMode(button, INPUT);
}
void loop()
{
    Reading = digitalRead(button);                      Reading
    if (Reading == HIGH) { digitalWrite(led, HIGH); }
    else { digitalWrite(led, LOW); }                     LOW
                                                         HIGH
}
int led = 3;
int button = 2;
int Reading = 0;
int counter = 0;
void setup()
{
  pinMode(led, OUTPUT);
  pinMode(button, INPUT);
}
void loop()
{
  Reading = digitalRead(button);
  if (Reading == HIGH)
  {
    counter++;
    if(counter==1)
    { digitalWrite(led, HIGH);}
    else
                                             counter
    { digitalWrite(led, LOW); counter=0; }
    delay(250);
                                               020
                                                 1
  }}
• Pulse Width Modulation PWM
 void setup()
 {
   pinMode(led, OUTPUT);
 }
 void loop()
 {
   analogWrite(led, 0);
   delay(1000);
   analogWrite(led, 65);
   delay(1000);
   analogWrite(led,128);
   delay(1000);
   analogWrite(led,255);
   delay(1000);
 }
• ADC (analog to digital converter)
                                         |
                                         |
                              0.0098 V         2
                              0.0049 V         1
• What is potentiometer
• Potentiometer or “POT” is a two variable resistance that can
  change its resistance value by knop
• Voltage Divider
                          Vout = VS X   R2
                                       R1+R2
                          Vout           1   = 2.5 V
             R1    1K            = 5 X
                                        1+1
VS    5V          Vout
                          Vout = 5 X     3    = 3.75 V
             R2   0.33K
                   1K
                   3K                   1+3
                          Vout          0.33 = 1.24 V
                                 = 5 X
                                       1+0.33
• Flasher Control
int Pot = A0;
int Led = 11;
int sensorValue=0;
 void setup()
 {
   pinMode(Led, OUTPUT);
   pinMode(Pot , INPUT);
 }
 void loop()
 {
   sensorValue = analogRead(Pot);
   digitalWrite(Led, HIGH);
   delay(sensorValue);
   digitalWrite(Led, LOW);
   delay(sensorValue);
 }
• Brightness Control
  int Pot = A0;
  int Led = 11;                       analogWrite(Led,   0→255 );
  int POT_Reading = 0;
 void setup()
  {                                     POT_Reading = 0→255
    pinMode(Pot, INPUT);
    pinMode(Led, OUTPUT);
  }                                     POT_Reading = 256→1023
  void loop()
  {
                                                  Over Flow
     POT_Reading = analogRead(Pot);                256 → 0
     analogWrite(Led, POT_Reading);                257 → 1
  }
                                                   258 → 2
• Over Flow
 byte x;
 void setup()
  {
    Serial.begin(9600);
    x=0;    Serial.println(x);
    x=100; Serial.println(x);
    x=200; Serial.println(x);    0
    x=255; Serial.println(x);    100
    x=256; Serial.println(x);
    x=257; Serial.println(x);    200
  }
    x=1000; Serial.println(x);   255
                                 0
  void loop()                    1
  {
                                 232
  }
• Map Function
               Name of range : ST                                         Name of range : smart
Map ( value , fromLow, fromHigh , toLow , toHigh )         Map ( value , fromLow, fromHigh , toLow , toHigh )
Map ( ST ,         0 ,     10       ,    0      , 20   )   Map (Smart ,          0 ,     1023 ,    0     , 255 )
• Brightness Control
 int   Pot = A0;
                                                        50%              sensorValue
 int   Led = 3;
 int   ledBrightness = 0;
 int   sensorValue   = 0;                                                  1023
                                                                           512
                                                                           255
                                                                             0
                                                                            768
                                           5V                      GND
void setup()
 {                                                                       ledBrightness
   pinMode(Pot, INPUT);
 }
   pinMode(Led, OUTPUT);
                                                              A0
                                                                              0
                                                                            192
                                                                             64
                                                                            128
                                                                            255
 void loop()                                     5V                GND
 {
   sensorValue = analogRead(Pot);
   ledBrightness = map(sensorValue, 0, 1023, 0, 255);
   analogWrite(Led, ledBrightness);
 }
• Tone Function
 •   Generates a square wave of the specified frequency (and 50% duty cycle) on a pin
 •   the wave continues until a call to noTone()
 •   Only one tone can be generated at a time
 •   function will interfere with PWM output on pins 3 and 11
 •   It is not possible to generate tones lower than 31Hz
 •   the maximum frequency that can be produced is 65535 Hz
 •   the human hearing range is typically as high as 20 kHz
  Syntax
  tone(pin, frequency)
  tone(pin, frequency, duration(
  Parameters
  pin: the Arduino pin on which to generate the tone.
  frequency: the frequency of the tone in hertz. Allowed data types: unsigned int.
  duration: the duration of the tone in milliseconds (optional). Allowed data types: unsigned long.
  void loop(){
  tone(6,440,200);
  delay(200);
  noTone(6);
  tone(7,494,500);
  delay(500);
  noTone(7);
  tone(8,523,300);
  delay(300);
  noTone(8);
  }
• Task
 • Control buzzer tones with POT
THANKS
 FOR
COMING
LECTURE
   3
• LDR (Light Dependent Resistor)
 • An LDR is a component that has a (variable)
   resistance that changes with the light
   intensity that falls upon it. This allows them
   to be used in light sensing circuits.
 •         Daylight = 5000Ω
 •         Dark = 20MΩ
• Basic principle
                                 Dark
                                 Light
                           30K
                           5K
                R1
                    0.16
                    0.83
      5V        Vout
                R2         1K
• Code
 #define ldr A0
 #define led 3
 int threshold = 40;
 int level;
 void setup() {
   Serial.begin(9600);
   pinMode(led, OUTPUT);
 }
 void loop() {
   level = analogRead(ldr);
     Serial.println(level);
   if (level < threshold) {
       digitalWrite(led, 1); }
    else {
     digitalWrite(led, 0);}
 }
• Relay
220V ~
                    5V
• Code of Relay
 #define on 0
 #define off 1
 int relay=4 ;
 void setup()
 {
 pinMode(relay,OUTPUT);
  }                         VCC
                            GND
  void loop()               IN1
 {
 digitalWrite(relay,on);
 delay(5000);
 digitalWrite(relay,off);
 delay(5000);
 }
• Bluetooth (HC-05)
• Pin Configuration
               S
• Setting Up
• Setting Up
               S
• Setting Up
               return to background
• Setting Up
                         final
                     control panel
       password
        0000 -1234
•   Example
const int red = 13;
String reading; // data type used to store a character
value.
void setup( )
{
  pinMode(red, OUTPUT);
  Serial.begin(9600); // Adjust speed of serial monitor
}
void loop( ) {
   if(Serial.available()>0) {
      reading=Serial.readString();
                                D
• Time = Distance / Speed               • Speed = Distance / Time
                            S       T
                                         HIGH(1)
                                         LOW(0)
• Automatic Night Light circuit (Code)
 #define ldr A0
 #define led 3
 int threshold = 40;
 int level;
 void setup() {
   Serial.begin(9600);
   pinMode(led, OUTPUT);
 }
 void loop() {
   level = analogRead(ldr);
    Serial.println(level);
    if (level < threshold) { digitalWrite(led, 1); }
     else { digitalWrite(led, 0);}
 }
• Light Control with Smartphone
const int red = 13;
char reading; // data type used to store a character value.
void setup( )
{
  pinMode(red, OUTPUT);
  Serial.begin(9600);
}
void loop( ) {
   if(Serial.available()>0) {
      reading=Serial.read();
      switch(reading){
          case 'F': digitalWrite(red,1);
                         break;
          case 'S': digitalWrite(red,0);
                         break;
        }
    }
}
• Light Control With Voice
const int red = 13;
String reading; // data type used to store a character value.
void setup( )
{
  pinMode(red, OUTPUT);
  Serial.begin(9600); // Adjust speed of serial monitor
}
void loop( ) {
   if(Serial.available()>0) {
      reading=Serial.readString();
}}
• Lighting Control With Motion
 #define trigPin 12
 #define echoPin 11
 long duration, distance;
 void setup() {
 Serial.begin (9600);
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 pinMode(3, OUTPUT);
 }
 void loop() {                        if(distance<=20){
 digitalWrite(trigPin, LOW);            digitalWrite(3,1);
 delayMicroseconds(2);                  delay(4000);
 digitalWrite(trigPin, HIGH);           digitalWrite(3,0);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);          }}
 duration = pulseIn(echoPin, HIGH);
 distance = (duration/2) * 0.0343;
 Serial.println(distance);
 delay(5); // wait till next scan
THANKS
 FOR
COMING
LECTURE
   5
• Line Tracker Sensor (TCRT5000)
•   Basic Principle
         Reading      Reading
            1            0
• Code
 int lineTracker = 8;
 int led = 2;                         OR
 int state = 0;
                                           void setup()
 void setup()
                                           {
 {
                                             pinMode(8,INPUT);
   pinMode(lineTracker,INPUT);
                                             pinMode(2,OUTPUT);
   pinMode(led,OUTPUT);
                                           }
 }
                                           void loop()
 void loop()
                                           {
 {
                                              digitalWrite(led,digitalRead(8));
    state=digitalRead(lineTracker);
                                           }
    digitalWrite(led,state);
 }
• DC Motor
              Weight                  29g
• DC Motor
             terminals
• Basic Principle
                      VS           GND
                    6V , 12V        0V
• Basic Principle
                    GND         VS
                     0V       6V , 12V
• Mobile Robot
• Differential steering
                          Forword
                          Backword
                            Right
                             Left
•    Motor Driver
    • What is motor driver and Why do we need it ?
•   Motor Driver (l298N)
we will agree:
car is forword when                  out           out
blue cable → HIGH signal
purpule cable→LOW signal   ML         1
                                     out
                                                    4
                                                   out                  MR
                                      2             3
left motor
blue cable →out1
purpule cable→out2
right motor
blue cable→out3
purpule cable→out4              speed L    IN1   IN2     IN3   IN4   speed R
                                           5V    0V      5V    0V
• Direction Control
we will agree:
car is forword when
blue cable → HIGH signal             out           out
purpule cable→LOW signal
                           ML         1
                                     out
                                                    4
                                                   out                  MR
left motor                            2             3
blue cable →out1
purpule cable→out2
right motor
blue cable→out3
purpule cable→out4
                                speed L    IN1   IN2     IN3   IN4   speed R
                                           0V    5V      0V    5V
• Car Direction Test
                                                                                       void stopp() {
#define speedL 10                void forword()             void left()
                                                                                       digitalWrite(IN1, LOW);
#define IN1 9                    {                          {
                                                                                       digitalWrite(IN2, LOW);
#define IN2 8                    digitalWrite(IN1, HIGH);   digitalWrite(IN1, LOW);
                                                                                       digitalWrite(IN3, LOW);
#define IN3 7                    digitalWrite(IN2, LOW);    digitalWrite(IN2, LOW);
                                                                                       digitalWrite(IN4, LOW);
#define IN4 6                    digitalWrite(IN3, HIGH);   digitalWrite(IN3, HIGH);
                                                                                       analogWrite(speedL,0);
#define speedR 5                 digitalWrite(IN4, LOW);    digitalWrite(IN4, LOW);
                                                                                       analogWrite(speedR,0); }
void setup()                     analogWrite(speedL,150);   analogWrite(speedL,0);
                                                                                       void loop() {
{                                analogWrite(speedR,150);   analogWrite(speedR,150);
  Serial.begin (9600);           }                          }
                                                                                           forword();    delay(2000);
                                 void backword()            void right()
    for(int i=5 ; i<=10 ; i++)                                                             backword();   delay(2000);
                                 {                          {
    {                                                                                      right();      delay(2000);
                                 digitalWrite(IN1, LOW);    digitalWrite(IN1, HIGH);
        pinMode(i, OUTPUT);                                                                left();       delay(2000);
                                 digitalWrite(IN2, HIGH);   digitalWrite(IN2, LOW);
                                                                                           stopp();      delay(2000);
    }                            digitalWrite(IN3, LOW);    digitalWrite(IN3, LOW);
}                                digitalWrite(IN4, HIGH);   digitalWrite(IN4, LOW);
                                                                                       }
                                 analogWrite(speedL,150);   analogWrite(speedL,150);
                                 analogWrite(speedR,150);   analogWrite(speedR,0);
                                 }                          }
    battery
from 5V to 12V
• Controlled robot by Bluetooth
                                                                                       void stopp() {
#define speedL 10                void forword()             void left()
                                                                                       digitalWrite(IN1, LOW);
#define IN1 9                    {                          {
                                                                                       digitalWrite(IN2, LOW);
#define IN2 8                    digitalWrite(IN1, HIGH);   digitalWrite(IN1, LOW);
                                                                                       digitalWrite(IN3, LOW);
#define IN3 7                    digitalWrite(IN2, LOW);    digitalWrite(IN2, LOW);
                                                                                       digitalWrite(IN4, LOW);
#define IN4 6                    digitalWrite(IN3, HIGH);   digitalWrite(IN3, HIGH);
                                                                                       analogWrite(speedL,0);
#define speedR 5                 digitalWrite(IN4, LOW);    digitalWrite(IN4, LOW);
                                                                                       analogWrite(speedR,0); }
char Reading;                    analogWrite(speedL,150);   analogWrite(speedL,0);
                                                                                       void loop() {
void setup()                     analogWrite(speedR,150);   analogWrite(speedR,150);
                                                                                         if(Serial.available()>0){
{                                }                          }
                                                                                           Reading=Serial.read();
  Serial.begin (9600);           void backword()            void right()
                                                                                            switch(Reading){
                                 {                          {
    for(int i=5 ; i<=10 ; i++)                                                                 case ‘F’: forword(); break;
                                 digitalWrite(IN1, LOW);    digitalWrite(IN1, HIGH);
    {                                                                                          case ’B’: backword(); break;
                                 digitalWrite(IN2, HIGH);   digitalWrite(IN2, LOW);
        pinMode(i, OUTPUT);                                                                    case ‘R’: right(); break;
                                 digitalWrite(IN3, LOW);    digitalWrite(IN3, LOW);
                                                                                               case ‘L’ : left(); break;
    }                            digitalWrite(IN4, HIGH);   digitalWrite(IN4, LOW);
                                                                                               case ‘S’ :stopp(); break;
}                                analogWrite(speedL,150);   analogWrite(speedL,150);
                                                                                             }
                                 analogWrite(speedR,150);   analogWrite(speedR,0);
                                                                                          }
                                 }                          }
                                                                                       }
•      Bluetooth RC App.
not                        press
connect                    here    press
with any                           here
bluetooth
•   Bluetooth RC App.
                             Bluetooth is
                             connected
                press
                here
                          password
                         0000 -1234
                   press
                   here
• Line Follower Robot
  SL          SR        Direction                           1   1
                                    0 1
                                                    0
                       Forword
                                                    1
                         Right
                          Left
                         Stop       0   0       0   0       0   0
N 2
                                                                1
       2 =2 =4
                                                                0
       N : number of sensor                     0   1
                 sensorL   sensorR
    battery
from 5V to 12V
• Line Follower Code
 #define speedL 10          void forword()             void left()                void stopp(){
 #define IN1 9              {                          {                          digitalWrite(IN1, LOW);
 #define IN2 8              digitalWrite(IN1, HIGH);   digitalWrite(IN1, LOW);    digitalWrite(IN2, LOW);
 #define IN3 7              digitalWrite(IN2, LOW);    digitalWrite(IN2, LOW);    digitalWrite(IN3, LOW);
 #define IN4 6              digitalWrite(IN3, HIGH);   digitalWrite(IN3, HIGH);   digitalWrite(IN4, LOW);
 #define speedR 5           digitalWrite(IN4, LOW);    digitalWrite(IN4, LOW);    analogWrite(speedL,0);
 #define sensorL 4          analogWrite(speedL,150);   analogWrite(speedL,0);     analogWrite(speedR,0);
 #define sensorR 3          analogWrite(speedR,150);   analogWrite(speedR,150);   }
 int sl=0;                  }                          }                          void loop(){
 int sr=0;                  void backword()            void right()               sl=digitalRead(sensorL);
 void setup() {             {                          {                          sr=digitalRead(sensorR);
                            digitalWrite(IN1, LOW);    digitalWrite(IN1, HIGH);   if (sl==0&&sr==0)
 for(int i=5;i<=10;i++)
                            digitalWrite(IN2, HIGH);   digitalWrite(IN2, LOW);    forword();
  {                         digitalWrite(IN3, LOW);    digitalWrite(IN3, LOW);    else if (sl==0&&sr==1)
   pinMode(i, OUTPUT);      digitalWrite(IN4, HIGH);   digitalWrite(IN4, LOW);    right();
   }                        analogWrite(speedL,150);   analogWrite(speedL,150);   else if (sl==1&&sr==0)
 pinMode(sensorR, INPUT);   analogWrite(speedR,150);   analogWrite(speedR,0);     left();
 pinMode(sensorL, INPUT);   }                          }                          else if (sl==1&&sr==1)
 }                                                                                stopp(); }
• Obstacle avoiding robot
                20cm        150cm
                                    20cm
                50cm
• Obstacle Avoiding Code                                                                    void right()
                                                                                            {
                                                                                            digitalWrite(IN1, HIGH);
                                                                                            digitalWrite(IN2, LOW);
#define speedL 10            void Ultrasonic(){                  void backword()            digitalWrite(IN3, LOW);
#define IN1 9                digitalWrite(trig, LOW);            {                          digitalWrite(IN4, LOW);
#define IN2 8                delayMicroseconds(2);               digitalWrite(IN1, LOW);    analogWrite(speedL,150);
#define IN3 7                digitalWrite(trig, HIGH);           digitalWrite(IN2, HIGH);   analogWrite(speedR,0);
#define IN4 6                delayMicroseconds(10);              digitalWrite(IN3, LOW);    }
#define speedR 5             digitalWrite(trig, LOW);            digitalWrite(IN4, HIGH);   void stopp(){
#define trig 3               duration = pulseIn(echo, HIGH);     analogWrite(speedL,150);   digitalWrite(speedL, LOW);
#define echo 4               distance = (duration/2) * 0.0343;   analogWrite(speedR,150);   digitalWrite(speedR, LOW);
long duration,distance;      }                                   }                          }
void setup() {               void forword()                      void left()                void loop(){
                             {                                   {                          Ultrasonic();
for(int i=5 ; i<=11 ; i++)
                             digitalWrite(IN1, HIGH);            digitalWrite(IN1, LOW);    if(distance<20){
 {
                             digitalWrite(IN2, LOW);             digitalWrite(IN2, LOW);        stopp(); delay(250);
  pinMode(i, OUTPUT);        digitalWrite(IN3, HIGH);            digitalWrite(IN3, HIGH);       backword();delay(500);
  }                          digitalWrite(IN4, LOW);             digitalWrite(IN4, LOW);        right(); delay(1000);
pinMode(echo, INPUT);        analogWrite(speedL,150);            analogWrite(speedL,0);        }
}                            analogWrite(speedR,150);            analogWrite(speedR,150);   else{ forword(); }
                             }                                   }                          }
• Task
     for(int i=0;i<15;i++){
     lcd.scrollDisplayLeft();
     delay(200);   }
 }
• Flame sensor
• Detects a flame or a light source of a wavelength in
  the range of 760nm-1100 nm.
 Expose the module to flame or strong light and turn the knob of the
 potentiometer gently till the D0 indicator light is on
• Code
 #define flame 3
 #define buzzer 5
 int Val = 0;
 void setup()
 { Serial.begin(9600);
   pinMode(flame , INPUT);
   pinMode(buzzer,OUTPUT);
 }
 void loop()
 { Val = digitalRead(flame);
   Serial.print("value of flame:");
   Serial.println(Val);
 if (Val == LOW) { digitalWrite(buzzer, HIGH); }
   else {digitalWrite(buzzer, LOW);}
 }
• Flame With LCD & Buzzer
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{ lcd.init();
    lcd.backlight();
   pinMode(8,INPUT);
   pinMode(11,OUTPUT);
}
void loop()
{ if (digitalRead(8)==0){
        lcd.setCursor(0,0);
        lcd.print("Fire Detected");
        digitalWrite(11,1);
        delay(100);
        digitalWrite(11,0);
        delay(100);}
  else {
     lcd.setCursor(0,0);
     lcd.print("NO Fire Detected");
     digitalWrite(11,0);}
}
• Smoke sensor
void loop()
{
  sensorValue = analogRead(MQ2pin);
  Serial.print("Sensor Value: ");
  Serial.println(sensorValue);
  if(sensorValue > 300){
    Serial.print(" | Smoke detected!");
   digitalWrite(buzzer,HIGH);
  }
  else { digitalWrite(buzzer,LOW); }
  delay(2000); // wait 2s for next reading
}
• Smoke sensor with LCD & Buzzer
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
  lcd.begin();
  lcd.backlight();
  lcd.print("MQ-2 worming"); delay(20 000);
}
void loop()
{
     lcd.setCursor(0,0);
     lcd.print("Smoke intensty");
     lcd.setCursor(0,1);
     lcd.print(analogRead(A0));
}
• DHT11
• DHT11 digital temperature & humidity sensor module
                            Q: How to test an
                            anode RGB led ??
#define ledR 3                  •   Automatic Color Change
#define ledG 5
#define ledB 6
void setup()
{
  pinMode(ledR, OUTPUT);
  pinMode(ledG, OUTPUT);
  pinMode(ledB, OUTPUT);
}
void loop()
{
    for (byte R=0, G=100, B=255 ; R<=255 || G<=255 || B>=0 ; R++, G++, B-- ){
        analogWrite(ledR,R) ;
        analogWrite(ledG,G) ;
        analogWrite(ledB,B) ;
        delay(30);
   }}
• 7-Segment Types
                    LOW   HIGH
    5V
                    LOW   HIGH
LOW HIGH 0V
LOW HIGH
                    LOW   HIGH
• 7-Segment Pins
                       s   s   s   s
                   8
                   1
                   3
                       s   s   s
• Truth Table of 7Segment
• Connection
4 3 2 1
5 6   7
• Code
int b=1; int a=2; int f=3; int g=4;
int e=5; int d=6; int c=7;            void one(){          void three(){
void setup(){                         digitalWrite(a,0);   digitalWrite(a,1);
 pinMode(a,OUTPUT);                   digitalWrite(b,1);   digitalWrite(b,1);
 pinMode(b,OUTPUT);                   digitalWrite(c,1);   digitalWrite(c,1);
 pinMode(c,OUTPUT);                   digitalWrite(d,0);   digitalWrite(d,1);
 pinMode(d,OUTPUT);                   digitalWrite(e,0);   digitalWrite(e,0);
 pinMode(e,OUTPUT);                   digitalWrite(f,0);   digitalWrite(f,0);
 pinMode(f,OUTPUT);                   digitalWrite(g,0);   digitalWrite(g,1);
 pinMode(g,OUTPUT);                   }                    }
}                                     void two(){          void four(){
void zero(){                          digitalWrite(a,1);   digitalWrite(a,0);
digitalWrite(a,1);                    digitalWrite(b,1);   digitalWrite(b,1);
digitalWrite(b,1);                    digitalWrite(c,0);   digitalWrite(c,1);
digitalWrite(c,1);                    digitalWrite(d,1);   digitalWrite(d,0);
digitalWrite(d,1);                    digitalWrite(e,1);   digitalWrite(e,0);
digitalWrite(e,1);                    digitalWrite(f,0);   digitalWrite(f,1);
digitalWrite(f,1);                    digitalWrite(g,1);   digitalWrite(g,1);
digitalWrite(g,0);}                   }                    }
• Code
                                           void nine(){
 void five(){         void seven(){
                                           digitalWrite(a,1);
 digitalWrite(a,1);   digitalWrite(a,1);
                                           digitalWrite(b,1);
 digitalWrite(b,0);   digitalWrite(b,1);
                                           digitalWrite(c,1);
 digitalWrite(c,1);   digitalWrite(c,1);
                                           digitalWrite(d,1);
 digitalWrite(d,1);   digitalWrite(d,0);
                                           digitalWrite(e,0);
 digitalWrite(e,0);   digitalWrite(e,0);
                                           digitalWrite(f,1);
 digitalWrite(f,1);   digitalWrite(f,0);
                                           digitalWrite(g,1);}
 digitalWrite(g,1);   digitalWrite(g,0);
                                           void loop(){
 }                    }
                                              zero(); delay(1000);
 void six(){          void eight(){
                                              one();   delay(1000);
 digitalWrite(a,1);   digitalWrite(a,1);
                                              two();   delay(1000);
 digitalWrite(b,0);   digitalWrite(b,1);
                                              three(); delay(1000);
 digitalWrite(c,1);   digitalWrite(c,1);
                                              four(); delay(1000);
 digitalWrite(d,1);   digitalWrite(d,1);
                                              five(); delay(1000);
 digitalWrite(e,1);   digitalWrite(e,1);
                                              six();    delay(1000);
 digitalWrite(f,1);   digitalWrite(f,1);
                                             seven(); delay(1000);
 digitalWrite(g,1);   digitalWrite(g,1);
                                              eight(); delay(1000);
 }                    }
                                              nine(); delay(1000); }
• ATMEGA328P Pinout
• 7-Segment in 2 Line code
                                      7   6   5   4   3   2   1   0
         Truth table     connection   c   d   e   g f     a   b
                                      1   1   1   1   1   1   1   1
                         4 3   2 1
                                          DDRD=0b11111111;
                                      7   6   5   4   3   2   1   0
                                      c   d   e   g f     a   b
                                      0   1   1   1   0   1   1   0
                         5 6   7          PORTD=0b01110110;
• What is Servo Motor
 The servo motor is most commonly used for high technology devices in the industrial application like
 automation technology. It is a self contained electrical device, that rotate parts of a machine with high
 efficiency and great precision. The output shaft of this motor can be moved to a particular angle. Servo
 motors are mainly used in home electronics, toys, cars, airplanes, etc.This article discusses about what is a
 servo motor, servo motor working, servo motor types and its applications
• Servo Motor Types
    1) DC Servo Motor                    2) AC Servo Motor
 Positional rotation servo motor is a most common type of servo motor. The shaft’s o/p rotates in about
 180o. It includes physical stops located in the gear mechanism to stop turning outside these limits to guard
 the rotation sensor. These common servos involve in radio controlled water, radio controlled cars, aircraft,
 robots, toys and many other applications.
 Continuous rotation servo motor is quite related to the common positional rotation servo motor, but it can
 go in any direction indefinitely. The control signal, rather than set the static position of the servo, is
 understood as the speed and direction of rotation. The range of potential commands sources the servo to
 rotate clockwise or anticlockwise as preferred, at changing speed, depending on the command signal. This
 type of motor is used in a radar dish if you are riding one on a robot or you can use one as a drive motor on
 a mobile robot.
• Servo Motor Connection
                           Power Supply
• Sweep code
 #include <Servo.h>
 Servo myservo;
 int pos = 0;
 void setup() {
   myservo.attach(9);
 }
 void loop() {
   for (pos = 0; pos <= 180; pos += 1) {
     // in steps of 1 degree
     myservo.write(pos);
     delay(15);
   }
   for (pos = 180; pos >= 0; pos -= 1) {
     myservo.write(pos);
     delay(15);
   }
 }
• Knop Code
 #include <Servo.h>
 Servo myservo;
 int potpin = A0;
 int val;
 void setup() {
   myservo.attach(9);
 }
 void loop() {
   val = analogRead(potpin);
   val = map(val, 0, 1023, 0, 180);
   myservo.write(val);
   delay(15);
 }
• Task
myservo.write(90);
                        }}}
THANKS
 FOR
COMING
LECTURE
   10
Oral Exam
Graduation Project
• What To Do Next
                     Embedded
       C\C++                              Career
                      Systems
                                       Embedded
              C\C++                                                Career
                                        Systems
                     Statistics                   Numpy,
                                                              Machine        Deep
   Linear Algebra                     Python      Pandas,
                    Probability                               learning     learning   CV
                                                 Matplotlib
THANKS
 FOR
COMING