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