KURSUS ASAS ARDUINO SIRI 2
4 OGOS 2024
Ts.Mohd Fakharul Helmi bin Mohamad Saad
Pensyarah
Kolej Komuniti Bandar Baharu
Kementerian PendidikanTinggi
1
JADUAL KURSUS
Objektif
Kursus
Pada akhir pengajaran peserta dapat :
1. Pendedahan kepada kemahiran yang berteras IR4.0
2. Mengaplikasikan Arduino pada projek yang diberikan.
Masa
Tarikh/Hari
8.00 Pg –
8.30Pg
(1/2jam)
8.30 Pg –
9.30Pg
( 1 jam)
9.30Pg-1.00ptg
(2 1/2jam)
1.00ptg
-
2.00ptg
2.00ptg-
3.00ptg
(1Jam)
3.00PTG –
5.00Ptg
(2Jam)
4 OGOS 2024
/ AHAD
Pendaftara
n /Sarapan
Pagi
Teori
Chapter 1 :
Introduction
Chapter 2 :
How To start
Amali
Chapter 3 : Hands-
on Activity
Amali 1-4 : On Led
Amali 5 : Input
Digital
Amali 6.1-6.3:
Analog Input
REHAT
Amali
Amali 7 -9:
Servo Motor
Amali 10:
Lcd Display
Amali 11:
Ultra Sonic
Sensor
Projek 1
▪ Bersurai
2
Apa itu Arduino?
❑Arduino - CIP MicroController (Mikro-Pengawal) yang boleh diprogramkan
dan mempunyai RAM dan Program-Memory.
❑Board Arduino hanya mempunyai circuit support seperti Voltage-
Regulator dan Serial-USB Programming Chip.
❑Menggunakan Chip MicroController AtMEGA328P
❑Arduino boleh diprogramkan sehingga 10,000 kali melalui Software Arduino
IDE yang PERCUMA dan Software ini boleh di-Download secara percuma di
lawan-web https://www.arduino.cc/en/software/
CHAPTER 1 : INTRODUCTION
3
AtMEGA328P
HARDWARE
SOFTWARE
OPEN SOURCE ARDUINO
SOFTWARE (IDE)
INTEGRATED DEVELOPMENT
ENVIRONMENT
4
APLIKASI MICRO CONTROLLER
5
Input/Output
Output
Input
6
ARDUINO UNO
ARDUINO LEONARDO
ARDUINO YUN
ARDUINO MICRO
ARDUINO ESPLORA
ARDUINO DUE
ARDUINO
PRODUCT
FAMILY
2005 - 2018
7
Microcontroller vs Microprocessor
Parameters Microcontroller Microprocessor
cost Cheap Expensive
Speed Slow (In MHz range) Fast (InGHz Range)
Purpose Special General
Dependency Single Chip has almost all
component
Need extra components to
be able to interact
Resources Limited Unlimited
8
ARDUINO UNO
9
POWER MANAGEMENT
10
ARDUINO UNO SPECIFICATION
❑ Microcontroller: ATmega328P
❑ Operating Voltage: 5V
❑ Input Voltage (recommended): 7-12V
❑ Inout Voltage (limit): 6-20V
❑ Digital I/O Pins: 14 (of which 6 provide PWM output)
❑ PWM Digital I/O Pins: 6
❑ Analog Input Pins: 6
❑ DC Current per I/O Pin: 20 mA
❑ DC current for 3.3V Pin: 50 mA
❑ Flash Memory: 32 KB (ATmega328P)
❑ SRAM: 2 KB (ATmega328P)
❑ EEPROM: 1 KB (ATmega328P)
❑ Clock Speed: 16 MHz
❑ LED_BUILTIN: 13
❑ Length: 68.6 mm
❑ Width: 58.4 mm
❑ Weight: 25 g
11
CHAPTER 2 : HOW TO START ???
Menggunakan simulationSTART
•https://www.tinkercad.com/dashboard
•Proteus
•Fritzing
12
AMALI 1- ON LED
int LED=12;
void setup()
{
pinMode(LED,OUTPUT);
}
void loop()
{
digitalWrite(LED,HIGH);
}
13
ARDUINO
SOFTWARE
INTERFACE
https://www.arduino.cc/en/software/
14
ASAS DALAM CODING ARDUINO
• Defining Area dan Sub-
Routine Area hanya
merupakan kawasan untuk
coding-coding supportive
dan tambahan pada
penggunaan-penggunaan
yang lebih advance.
• Terutamanya bila mula
menggunakan Library
Arduino.
• Void Setup() dan Void
Loop() merupakan 2
komponen utama dalam
struktur coding.
• IDE tidak dapat upload
program dalam Arduino jika 2
komponen ini tiada.
20
KAEDAH ARDUINO SCAN CODING
21
int LED=12;
void setup()
{
pinMode(LED,OUTPUT);
}
void loop()
{
digitalWrite(LED,HIGH);
}
DEFINING AREA,
PENETAPAN KAKI PIN
PENETAPAN INPUT /
OUTPUT
PENETAPAN ON / OFF
22
int LED=12;
void loop()
{
digitalWrite(LED,HIGH);
}
void setup()
{
pinMode(LED,OUTPUT);
}
PROGRAM STRUCTURE& CURRENT FLOW
5V
23
int LED=12;
void loop()
{
digitalWrite(LED,LOW);
}
void setup()
{
pinMode(LED,OUTPUT);
}
PROGRAM STRUCTURE& CURRENT FLOW
0V
24
PORTCONFIGURATION/ SELECTION
25
COMPILE UPLOAD
26
LIGHT EMITTING DIODE (LED)
Light-emitting diode (LED) ialah peranti semikonduktor yang
mengeluarkan cahaya apabila arus elektrik melaluinya
CHAPTER 3 : HANDS-ON
ACTIVITY
27
AMALI 1- ON LED
Pin 12
GND
28
LITAR SKEMATIK
AMALI 1- ON LED
int LED=12;
void setup()
{
pinMode(LED,OUTPUT);
}
void loop()
{
digitalWrite(LED,HIGH);
}
29
AMALI 2 –BLINK LED
int LED=12;
void setup()
{
pinMode(LED,OUTPUT);
}
void loop()
{
digitalWrite(LED,HIGH);
delay(500);
digitalWrite(LED,LOW);
delay(500);
}
30
AMALI 2.1 BLINK LED WITH RELAY
Pin 12
GND
LOAD (KIPAS
/LAMPU
240VAC)
5V
GND
Pin 7
SIG PIN 7 Arduino
VCC 5V Arduino
GND GND Arduino
31
AMALI 2 –BLINK LED WITH RELAY
int LED=12;
int RELAY=7;
void setup()
{
pinMode(LED,OUTPUT);
pinMode(RELAY,OUTPUT);
}
void loop()
{
digitalWrite(LED,HIGH);
digitalWrite(RELAY,HIGH);
delay(500);
digitalWrite(LED,LOW);
digitalWrite(RELAY,LOW);
delay(500);
}
CODING YANG DITAMBAH
32
AMALI 3 – BLINK 2 LED
Pin 12 &11
Pin GND
33
AMALI 3 – BLINK 2 LED
int LED1=12;
int LED2=11;
void setup()
{
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
}
void loop()
{
digitalWrite(LED1,HIGH);
digitalWrite(LED2,LOW);
delay(500);
digitalWrite(LED1,LOW);
digitalWrite(LED2,HIGH);
delay(500);
}
34
AMALI 4 – LED RUNNING
int LED1=2;
int LED2=3;
int LED3=4;
int LED4=5;
void setup()
{
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
}
void loop()
{
delay(20);
digitalWrite(LED1, HIGH);
delay(20);
digitalWrite(LED1, LOW);
delay(20);
digitalWrite(LED2, HIGH);
delay(20);
digitalWrite(LED2, LOW);
delay(20);
digitalWrite(LED3, HIGH);
delay(20);
digitalWrite(LED3, LOW);
delay(20);
digitalWrite(LED4, HIGH);
delay(20);
digitalWrite(LED4, LOW);
delay(20);
}
https://www.tinkercad.com/things/gHNu8LT3FTU
Pin 2,3,4,5
Pin GND
35
PUSH BUTTON
• Push Button - ialah mekanisme kecil yang tertutup yang melengkapkan litar elektrik
apabila kita menekannya.
• Apabila ia dihidupkan, spring logam kecil di dalamnya bersentuhan dengan dua wayar,
membolehkan elektrik mengalir.
• Apabila ia dimatikan, spring ditarik balik, sentuhan terputus, dan arus tidak akan
mengalir.
36
BREAD BOARD
37
AMALI 5 – INPUT DIGITAL
Pin 5V & GND
Pin 12
Pin 2
Perintang 10Kohm
38
LITAR SKEMATIK
AMALI 5 – INPUT DIGITAL
int LED=12;
int BUTTON=2;
void setup()
{
pinMode(LED,OUTPUT);
pinMode(BUTTON,INPUT);
}
void loop()
{
if (digitalRead(2)==HIGH)
{
digitalWrite(LED,HIGH);
}
else
digitalWrite(LED,LOW);
} 39
• Potentiometer ialah peranti mekanikal ringkas yang menyediakan
jumlah rintangan yang berbeza-beza apabila tombolnya dipusing.
POTENTIOMETER
40
AMALI 6.1 – (ANALOG INPUT)
int nilaiSensor;
void setup() {
Serial.begin(9600);
pinMode(A1, INPUT);
delay(100);
}
void loop() {
nilaiSensor = analogRead(A1);
Serial.println(nilaiSensor);
delay(20);
}
Pin 5V & GND
Pin A1
41
AMALI 6.2– (ANALOG INPUT) fungsi Mapping
Mapping – mengubah satu RANGE data, kepada RANGE data yang baru.
Sebagai contoh, Analog Input Potentiometer range data dari 0~1023.
Dengan data tersebut, kita mungkin mahu mengawal kelajuan satu motor yang
dipandu oleh Motor Controller.
Kebanyakan Motor Controller memerlukan input kawalan PWM, dan PWM
Output dari pin-pin PWM Arduino dapat dikawal dengan memberikan value
dari 0~255 dalam coding.
Mapping
42
AMALI 6.2– (ANALOG INPUT) fungsi Mapping
int dataSensor;
int dataBaru;
void setup() {
Serial.begin(9600);
pinMode(A1,INPUT);
delay(100);
}
void loop() {
dataSensor = analogRead(A1);
dataBaru = map(dataSensor,0, 1023, 0,255);
Serial.print(“dataBaru=”);
Serial.println(dataBaru);
delay(20);
}
43
AMALI 6.3– (ANALOG INPUT)
Terang/Malap LED & PWM Output
int dataSensor;
int dataBaru;
void setup() {
Serial.begin(9600);
pinMode(A1,INPUT);
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
delay(100);
}
void loop() {
dataSensor = analogRead(A1);
dataBaru = map(dataSensor, 0, 1023, 0, 255);
Serial.print(“dataBaru=”);
Serial.println(dataBaru);
analogWrite(3, dataBaru);
analogWrite(5, dataBaru);
analogWrite(6, dataBaru);
delay(20);
}
Coding tambahan
44
AMALI 7 – SERVO MOTOR
Pin 5V, GND
Pin 7
48
LITAR SKEMATIK
AMALI 7 – SERVO MOTOR
#include <Servo.h>
int servoPin = 7;
Servo Servo1;
void setup()
{
Servo1.attach(servoPin);
}
void loop()
{
Servo1.write(180);
}
49
AMALI 8 – SERVO MOTOR DENGAN DELAY
#include <Servo.h>
int servoPin = 7;
Servo Servo1;
void setup()
{
Servo1.attach(servoPin);
}
void loop()
{
Servo1.write(90);
delay(500);
Servo1.write(0);
delay(500);
Servo1.write(180);
delay(500);
}
50
AMALI 9 – PUSH BUTTON DAN SERVO
Pin 5V, GND
Pin 7
51
Pin 3
5V,PWM, GND
AMALI 9 –PUSH BUTTON DAN SERVO
#include <Servo.h>
int servoPin = 7;
Servo Servo1;
const int BUTTON=3;
int val=0;
void setup()
{
Servo1.attach(servoPin);
pinMode(BUTTON,INPUT);
}
void loop()
{
val=digitalRead(BUTTON);
if(val==LOW)
{
Servo1.write(180);
}
else
{
Servo1.write(0);
}
}
52
SIMPLE PROJECT 1 (PAGAR KESELAMATAN) RBT D5
Pin 5V, GND
Motor Servo
Pembaz
Suis
https://www.tinkercad.com/things/0mpx2lIeqWx
Pin 7= PEMBAZ
Pin 6 = LED (TUTUP)
Pin 5 = LED (BUKA)
Pin 3 = SUIS
Pin 9 = PWM SERVO
Led
Tutup
Led
Buka
53
#include <Servo.h> // library servo
Servo Servo1; // declare nama Servo
int servoPin = 9; // setkan pin servo
int BUTTON=3; // setkan nama suis
int BUZZER =7; // setkan nama BUZZER
int LEDB =5; //setkan nama LED TUTUP
int LEDT =6; //setkan nama LED BUKA
int val=0; // setkan nilai mula 0
void setup()
{
Servo1.attach(servoPin);
pinMode(BUTTON,INPUT);
pinMode(BUZZER,OUTPUT); setkan i/o
pinMode(LEDB,OUTPUT);
pinMode(LEDT,OUTPUT);
}
void loop()
{
val=digitalRead(BUTTON);
if(val==LOW)
{
Servo1.write(90);
digitalWrite(BUZZER,LOW);
digitalWrite(LEDB,LOW);
digitalWrite(LEDT,HIGH);
}
else
{
Servo1.write(0);
digitalWrite(BUZZER,HIGH);
digitalWrite(LEDB,HIGH);
digitalWrite(LEDT,LOW);
}
}
54
SIMPLE PROJECT 2 (PAGAR KESELAMATAN AUTOMATIK)
Pin 5V, GND
Motor Servo
Pembaz
INFRARED
SENSOR
Pin 7= PEMBAZ
Pin 6 = LED (TUTUP)
Pin 5 = LED (BUKA)
Pin 3 = OUTPUT INFRA SENSOR
Pin 9 = PWM SERVO
Led
Tutup
Led
Buka
55
OUT GND VCC
#include <Servo.h> // library servo
Servo Servo1; // declare nama Servo
int servoPin = 9; // setkan pin servo
int SENSOR=3; // setkan nama suis
int BUZZER =7; // setkan nama BUZZER
int LEDB =5; //setkan nama LED TUTUP
int LEDT =6; //setkan nama LED BUKA
int val=0; // setkan nilai mula 0
void setup()
{
Servo1.attach(servoPin);
pinMode(SENSOR,INPUT);
pinMode(BUZZER,OUTPUT); setkan i/o
pinMode(LEDB,OUTPUT);
pinMode(LEDT,OUTPUT);
}
void loop()
{
val=digitalRead(SENSOR);
if(val==HIGH)
{
Servo1.write(90);
digitalWrite(BUZZER,LOW);
digitalWrite(LEDB,LOW);
digitalWrite(LEDT,HIGH);
}
else
{
Servo1.write(0);
digitalWrite(BUZZER,HIGH);
digitalWrite(LEDB,HIGH);
digitalWrite(LEDT,LOW);
}
}
56
LCD I2C 16x2 DISPLAY
• Peranti elektronik yang digunakan untuk memaparkan data dan mesej
dikenali sebagai LCD 16×2.
• Mempunyai 16 Lajur & 2 Baris boleh memaparkan 32 aksara (16×2=32)
secara keseluruhan & setiap aksara akan dibuat dengan 5×8 (40) Titik Piksel.
• Jadi jumlah piksel dalam LCD ini boleh dikira sebagai 32 x 40 = 1280 piksel
57
58
AMALI 10 - LCD DISPLAY
Pin 4=YELLOW-SDA
Pin 5= GREEN-SCL
Pin 5V
LCD Display
Arduino Uno
59
INSTALL LIBRARY LCD (I2C)
Ikuti langkah-langkah berikut untuk meng-Install Library ini:
LANGKAH #1:
Download Library I2C dari Frank de Brabander yang latest
dari link di bawah:
Library LiquidCrystal I2C Updated dari Frank de Brabander
atau dari GitHub:
Library dari GitHub
LANGKAH #2:
Dari Arduino IDE, Navigasi ke
Sketch > Include Library > Add .Zip libraries…
LANGKAH #3:
Pilih Folder atau .Zip file yang telah anda download, dan
kemudian tekan “Open”.
Setelah selesai, Library sudah ready untuk digunakan.
60
AMALI 10 –LCD DISPLAY
#include <Wire.h> // includekan library I2C. (Library ini sedia ada dalam IDE)
#include <LiquidCrystal_I2C.h> // includekan library LiquidCrystal_I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // berikan nama objek "lcd" untuk dikaitkan
dengan library
// set-kan address I2c dan nyatakan jenis/
size LCD 16X2
void setup()
{
Wire.begin(); // mulakan I2C
lcd.begin(); // mulakan LCD
lcd.backlight(); // pasangkan BackLight Hijau/Biru bergantung pada jenis LCD
}
61
AMALI 10 –LCD DISPLAY (SAMBUNGAN)
void loop()
{
lcd.clear(); // clearkan/padamkan paparan Screen LCD
lcd.setCursor(0, 0); // setkan Cursor print LCD pada koordinat 0,0
lcd.print(“TAHNIAH"); //printkan message untuk di paparkan
lcd.setCursor(2, 1); // setkan Cursor print LCD pada koordinat 2, 1
lcd.print(“JOM BELAJAR"); // printkan message untuk di paparkan
delay(2000); // berikan sedikit delay untuk paparan 2 saat
lcd.clear(); // clearkan/padamkan paparan Screen LCD
lcd.setCursor(3, 0);
lcd.print(“ARDUINO");
lcd.setCursor(0, 1);
lcd.print("MUDAH JA");
delay(2000);
} 62
ULTRA SONIC SENSOR (HC-SR04)
• Sensor Ultrasonic ialah alat yang mengukur jarak ke objek
menggunakan gelombang bunyi ultrasonik.
63
AMALI 11 –DISTANCE SENSOR DAN LCD
Pin 11=echo
Pin 10=trig
Pin 4=SDA
Pin 5= SCL
Pin 5V
64
AMALI 11 –DISTANCE SENSOR DAN LCD
#include <Wire.h> // includekan library I2C. (Library ini sedia ada dalam IDE)
#include<LiquidCrystal_I2C.h> // includekan library LiquidCrystal_I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // berikan nama objek "lcd" untuk dikaitkan dengan library
// set-kan address I2c dan nyatakan jenis/size LCD 16X2
 Declare trigPin pada pin 10
 Declare echoPin pada pin 11
void setup()
{
 setkan trigPin sebagai Output
pinMode(echoPin,INPUT);  setkan echoPin sebagai input
Wire.begin(); // mulakan I2C
lcd.begin(); // mulakan LCD
lcd.backlight(); // pasangkan BackLight Hijau/
Biru bergantung pada jenis LCD
lcd.print("JARAK TARGET:"); // printkan message untuk
di paparkan
delay(2000); //berikan sedikit delay untuk paparan 2 saat
}
65
AMALI 11 –DISTANCE SENSOR DAN LCD (SAMBUNGAN)
void loop()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print(distance);
lcd.print("cm");
delay(2000);
}
standard coding untuk
Ultrasonic sensor
66
71

Nota Arduino 11111111111111111111111.pdf

  • 1.
    KURSUS ASAS ARDUINOSIRI 2 4 OGOS 2024 Ts.Mohd Fakharul Helmi bin Mohamad Saad Pensyarah Kolej Komuniti Bandar Baharu Kementerian PendidikanTinggi 1
  • 2.
    JADUAL KURSUS Objektif Kursus Pada akhirpengajaran peserta dapat : 1. Pendedahan kepada kemahiran yang berteras IR4.0 2. Mengaplikasikan Arduino pada projek yang diberikan. Masa Tarikh/Hari 8.00 Pg – 8.30Pg (1/2jam) 8.30 Pg – 9.30Pg ( 1 jam) 9.30Pg-1.00ptg (2 1/2jam) 1.00ptg - 2.00ptg 2.00ptg- 3.00ptg (1Jam) 3.00PTG – 5.00Ptg (2Jam) 4 OGOS 2024 / AHAD Pendaftara n /Sarapan Pagi Teori Chapter 1 : Introduction Chapter 2 : How To start Amali Chapter 3 : Hands- on Activity Amali 1-4 : On Led Amali 5 : Input Digital Amali 6.1-6.3: Analog Input REHAT Amali Amali 7 -9: Servo Motor Amali 10: Lcd Display Amali 11: Ultra Sonic Sensor Projek 1 ▪ Bersurai 2
  • 3.
    Apa itu Arduino? ❑Arduino- CIP MicroController (Mikro-Pengawal) yang boleh diprogramkan dan mempunyai RAM dan Program-Memory. ❑Board Arduino hanya mempunyai circuit support seperti Voltage- Regulator dan Serial-USB Programming Chip. ❑Menggunakan Chip MicroController AtMEGA328P ❑Arduino boleh diprogramkan sehingga 10,000 kali melalui Software Arduino IDE yang PERCUMA dan Software ini boleh di-Download secara percuma di lawan-web https://www.arduino.cc/en/software/ CHAPTER 1 : INTRODUCTION 3
  • 4.
    AtMEGA328P HARDWARE SOFTWARE OPEN SOURCE ARDUINO SOFTWARE(IDE) INTEGRATED DEVELOPMENT ENVIRONMENT 4
  • 5.
  • 6.
  • 7.
    ARDUINO UNO ARDUINO LEONARDO ARDUINOYUN ARDUINO MICRO ARDUINO ESPLORA ARDUINO DUE ARDUINO PRODUCT FAMILY 2005 - 2018 7
  • 8.
    Microcontroller vs Microprocessor ParametersMicrocontroller Microprocessor cost Cheap Expensive Speed Slow (In MHz range) Fast (InGHz Range) Purpose Special General Dependency Single Chip has almost all component Need extra components to be able to interact Resources Limited Unlimited 8
  • 9.
  • 10.
  • 11.
    ARDUINO UNO SPECIFICATION ❑Microcontroller: ATmega328P ❑ Operating Voltage: 5V ❑ Input Voltage (recommended): 7-12V ❑ Inout Voltage (limit): 6-20V ❑ Digital I/O Pins: 14 (of which 6 provide PWM output) ❑ PWM Digital I/O Pins: 6 ❑ Analog Input Pins: 6 ❑ DC Current per I/O Pin: 20 mA ❑ DC current for 3.3V Pin: 50 mA ❑ Flash Memory: 32 KB (ATmega328P) ❑ SRAM: 2 KB (ATmega328P) ❑ EEPROM: 1 KB (ATmega328P) ❑ Clock Speed: 16 MHz ❑ LED_BUILTIN: 13 ❑ Length: 68.6 mm ❑ Width: 58.4 mm ❑ Weight: 25 g 11
  • 12.
    CHAPTER 2 :HOW TO START ??? Menggunakan simulationSTART •https://www.tinkercad.com/dashboard •Proteus •Fritzing 12
  • 13.
    AMALI 1- ONLED int LED=12; void setup() { pinMode(LED,OUTPUT); } void loop() { digitalWrite(LED,HIGH); } 13
  • 14.
  • 20.
    ASAS DALAM CODINGARDUINO • Defining Area dan Sub- Routine Area hanya merupakan kawasan untuk coding-coding supportive dan tambahan pada penggunaan-penggunaan yang lebih advance. • Terutamanya bila mula menggunakan Library Arduino. • Void Setup() dan Void Loop() merupakan 2 komponen utama dalam struktur coding. • IDE tidak dapat upload program dalam Arduino jika 2 komponen ini tiada. 20
  • 21.
  • 22.
    int LED=12; void setup() { pinMode(LED,OUTPUT); } voidloop() { digitalWrite(LED,HIGH); } DEFINING AREA, PENETAPAN KAKI PIN PENETAPAN INPUT / OUTPUT PENETAPAN ON / OFF 22
  • 23.
    int LED=12; void loop() { digitalWrite(LED,HIGH); } voidsetup() { pinMode(LED,OUTPUT); } PROGRAM STRUCTURE& CURRENT FLOW 5V 23
  • 24.
    int LED=12; void loop() { digitalWrite(LED,LOW); } voidsetup() { pinMode(LED,OUTPUT); } PROGRAM STRUCTURE& CURRENT FLOW 0V 24
  • 25.
  • 26.
  • 27.
    LIGHT EMITTING DIODE(LED) Light-emitting diode (LED) ialah peranti semikonduktor yang mengeluarkan cahaya apabila arus elektrik melaluinya CHAPTER 3 : HANDS-ON ACTIVITY 27
  • 28.
    AMALI 1- ONLED Pin 12 GND 28 LITAR SKEMATIK
  • 29.
    AMALI 1- ONLED int LED=12; void setup() { pinMode(LED,OUTPUT); } void loop() { digitalWrite(LED,HIGH); } 29
  • 30.
    AMALI 2 –BLINKLED int LED=12; void setup() { pinMode(LED,OUTPUT); } void loop() { digitalWrite(LED,HIGH); delay(500); digitalWrite(LED,LOW); delay(500); } 30
  • 31.
    AMALI 2.1 BLINKLED WITH RELAY Pin 12 GND LOAD (KIPAS /LAMPU 240VAC) 5V GND Pin 7 SIG PIN 7 Arduino VCC 5V Arduino GND GND Arduino 31
  • 32.
    AMALI 2 –BLINKLED WITH RELAY int LED=12; int RELAY=7; void setup() { pinMode(LED,OUTPUT); pinMode(RELAY,OUTPUT); } void loop() { digitalWrite(LED,HIGH); digitalWrite(RELAY,HIGH); delay(500); digitalWrite(LED,LOW); digitalWrite(RELAY,LOW); delay(500); } CODING YANG DITAMBAH 32
  • 33.
    AMALI 3 –BLINK 2 LED Pin 12 &11 Pin GND 33
  • 34.
    AMALI 3 –BLINK 2 LED int LED1=12; int LED2=11; void setup() { pinMode(LED1,OUTPUT); pinMode(LED2,OUTPUT); } void loop() { digitalWrite(LED1,HIGH); digitalWrite(LED2,LOW); delay(500); digitalWrite(LED1,LOW); digitalWrite(LED2,HIGH); delay(500); } 34
  • 35.
    AMALI 4 –LED RUNNING int LED1=2; int LED2=3; int LED3=4; int LED4=5; void setup() { pinMode(LED1,OUTPUT); pinMode(LED2,OUTPUT); pinMode(LED3,OUTPUT); pinMode(LED4,OUTPUT); } void loop() { delay(20); digitalWrite(LED1, HIGH); delay(20); digitalWrite(LED1, LOW); delay(20); digitalWrite(LED2, HIGH); delay(20); digitalWrite(LED2, LOW); delay(20); digitalWrite(LED3, HIGH); delay(20); digitalWrite(LED3, LOW); delay(20); digitalWrite(LED4, HIGH); delay(20); digitalWrite(LED4, LOW); delay(20); } https://www.tinkercad.com/things/gHNu8LT3FTU Pin 2,3,4,5 Pin GND 35
  • 36.
    PUSH BUTTON • PushButton - ialah mekanisme kecil yang tertutup yang melengkapkan litar elektrik apabila kita menekannya. • Apabila ia dihidupkan, spring logam kecil di dalamnya bersentuhan dengan dua wayar, membolehkan elektrik mengalir. • Apabila ia dimatikan, spring ditarik balik, sentuhan terputus, dan arus tidak akan mengalir. 36
  • 37.
  • 38.
    AMALI 5 –INPUT DIGITAL Pin 5V & GND Pin 12 Pin 2 Perintang 10Kohm 38 LITAR SKEMATIK
  • 39.
    AMALI 5 –INPUT DIGITAL int LED=12; int BUTTON=2; void setup() { pinMode(LED,OUTPUT); pinMode(BUTTON,INPUT); } void loop() { if (digitalRead(2)==HIGH) { digitalWrite(LED,HIGH); } else digitalWrite(LED,LOW); } 39
  • 40.
    • Potentiometer ialahperanti mekanikal ringkas yang menyediakan jumlah rintangan yang berbeza-beza apabila tombolnya dipusing. POTENTIOMETER 40
  • 41.
    AMALI 6.1 –(ANALOG INPUT) int nilaiSensor; void setup() { Serial.begin(9600); pinMode(A1, INPUT); delay(100); } void loop() { nilaiSensor = analogRead(A1); Serial.println(nilaiSensor); delay(20); } Pin 5V & GND Pin A1 41
  • 42.
    AMALI 6.2– (ANALOGINPUT) fungsi Mapping Mapping – mengubah satu RANGE data, kepada RANGE data yang baru. Sebagai contoh, Analog Input Potentiometer range data dari 0~1023. Dengan data tersebut, kita mungkin mahu mengawal kelajuan satu motor yang dipandu oleh Motor Controller. Kebanyakan Motor Controller memerlukan input kawalan PWM, dan PWM Output dari pin-pin PWM Arduino dapat dikawal dengan memberikan value dari 0~255 dalam coding. Mapping 42
  • 43.
    AMALI 6.2– (ANALOGINPUT) fungsi Mapping int dataSensor; int dataBaru; void setup() { Serial.begin(9600); pinMode(A1,INPUT); delay(100); } void loop() { dataSensor = analogRead(A1); dataBaru = map(dataSensor,0, 1023, 0,255); Serial.print(“dataBaru=”); Serial.println(dataBaru); delay(20); } 43
  • 44.
    AMALI 6.3– (ANALOGINPUT) Terang/Malap LED & PWM Output int dataSensor; int dataBaru; void setup() { Serial.begin(9600); pinMode(A1,INPUT); pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); delay(100); } void loop() { dataSensor = analogRead(A1); dataBaru = map(dataSensor, 0, 1023, 0, 255); Serial.print(“dataBaru=”); Serial.println(dataBaru); analogWrite(3, dataBaru); analogWrite(5, dataBaru); analogWrite(6, dataBaru); delay(20); } Coding tambahan 44
  • 45.
    AMALI 7 –SERVO MOTOR Pin 5V, GND Pin 7 48 LITAR SKEMATIK
  • 46.
    AMALI 7 –SERVO MOTOR #include <Servo.h> int servoPin = 7; Servo Servo1; void setup() { Servo1.attach(servoPin); } void loop() { Servo1.write(180); } 49
  • 47.
    AMALI 8 –SERVO MOTOR DENGAN DELAY #include <Servo.h> int servoPin = 7; Servo Servo1; void setup() { Servo1.attach(servoPin); } void loop() { Servo1.write(90); delay(500); Servo1.write(0); delay(500); Servo1.write(180); delay(500); } 50
  • 48.
    AMALI 9 –PUSH BUTTON DAN SERVO Pin 5V, GND Pin 7 51 Pin 3 5V,PWM, GND
  • 49.
    AMALI 9 –PUSHBUTTON DAN SERVO #include <Servo.h> int servoPin = 7; Servo Servo1; const int BUTTON=3; int val=0; void setup() { Servo1.attach(servoPin); pinMode(BUTTON,INPUT); } void loop() { val=digitalRead(BUTTON); if(val==LOW) { Servo1.write(180); } else { Servo1.write(0); } } 52
  • 50.
    SIMPLE PROJECT 1(PAGAR KESELAMATAN) RBT D5 Pin 5V, GND Motor Servo Pembaz Suis https://www.tinkercad.com/things/0mpx2lIeqWx Pin 7= PEMBAZ Pin 6 = LED (TUTUP) Pin 5 = LED (BUKA) Pin 3 = SUIS Pin 9 = PWM SERVO Led Tutup Led Buka 53
  • 51.
    #include <Servo.h> //library servo Servo Servo1; // declare nama Servo int servoPin = 9; // setkan pin servo int BUTTON=3; // setkan nama suis int BUZZER =7; // setkan nama BUZZER int LEDB =5; //setkan nama LED TUTUP int LEDT =6; //setkan nama LED BUKA int val=0; // setkan nilai mula 0 void setup() { Servo1.attach(servoPin); pinMode(BUTTON,INPUT); pinMode(BUZZER,OUTPUT); setkan i/o pinMode(LEDB,OUTPUT); pinMode(LEDT,OUTPUT); } void loop() { val=digitalRead(BUTTON); if(val==LOW) { Servo1.write(90); digitalWrite(BUZZER,LOW); digitalWrite(LEDB,LOW); digitalWrite(LEDT,HIGH); } else { Servo1.write(0); digitalWrite(BUZZER,HIGH); digitalWrite(LEDB,HIGH); digitalWrite(LEDT,LOW); } } 54
  • 52.
    SIMPLE PROJECT 2(PAGAR KESELAMATAN AUTOMATIK) Pin 5V, GND Motor Servo Pembaz INFRARED SENSOR Pin 7= PEMBAZ Pin 6 = LED (TUTUP) Pin 5 = LED (BUKA) Pin 3 = OUTPUT INFRA SENSOR Pin 9 = PWM SERVO Led Tutup Led Buka 55 OUT GND VCC
  • 53.
    #include <Servo.h> //library servo Servo Servo1; // declare nama Servo int servoPin = 9; // setkan pin servo int SENSOR=3; // setkan nama suis int BUZZER =7; // setkan nama BUZZER int LEDB =5; //setkan nama LED TUTUP int LEDT =6; //setkan nama LED BUKA int val=0; // setkan nilai mula 0 void setup() { Servo1.attach(servoPin); pinMode(SENSOR,INPUT); pinMode(BUZZER,OUTPUT); setkan i/o pinMode(LEDB,OUTPUT); pinMode(LEDT,OUTPUT); } void loop() { val=digitalRead(SENSOR); if(val==HIGH) { Servo1.write(90); digitalWrite(BUZZER,LOW); digitalWrite(LEDB,LOW); digitalWrite(LEDT,HIGH); } else { Servo1.write(0); digitalWrite(BUZZER,HIGH); digitalWrite(LEDB,HIGH); digitalWrite(LEDT,LOW); } } 56
  • 54.
    LCD I2C 16x2DISPLAY • Peranti elektronik yang digunakan untuk memaparkan data dan mesej dikenali sebagai LCD 16×2. • Mempunyai 16 Lajur & 2 Baris boleh memaparkan 32 aksara (16×2=32) secara keseluruhan & setiap aksara akan dibuat dengan 5×8 (40) Titik Piksel. • Jadi jumlah piksel dalam LCD ini boleh dikira sebagai 32 x 40 = 1280 piksel 57
  • 55.
  • 56.
    AMALI 10 -LCD DISPLAY Pin 4=YELLOW-SDA Pin 5= GREEN-SCL Pin 5V LCD Display Arduino Uno 59
  • 57.
    INSTALL LIBRARY LCD(I2C) Ikuti langkah-langkah berikut untuk meng-Install Library ini: LANGKAH #1: Download Library I2C dari Frank de Brabander yang latest dari link di bawah: Library LiquidCrystal I2C Updated dari Frank de Brabander atau dari GitHub: Library dari GitHub LANGKAH #2: Dari Arduino IDE, Navigasi ke Sketch > Include Library > Add .Zip libraries… LANGKAH #3: Pilih Folder atau .Zip file yang telah anda download, dan kemudian tekan “Open”. Setelah selesai, Library sudah ready untuk digunakan. 60
  • 58.
    AMALI 10 –LCDDISPLAY #include <Wire.h> // includekan library I2C. (Library ini sedia ada dalam IDE) #include <LiquidCrystal_I2C.h> // includekan library LiquidCrystal_I2C LiquidCrystal_I2C lcd(0x27, 16, 2); // berikan nama objek "lcd" untuk dikaitkan dengan library // set-kan address I2c dan nyatakan jenis/ size LCD 16X2 void setup() { Wire.begin(); // mulakan I2C lcd.begin(); // mulakan LCD lcd.backlight(); // pasangkan BackLight Hijau/Biru bergantung pada jenis LCD } 61
  • 59.
    AMALI 10 –LCDDISPLAY (SAMBUNGAN) void loop() { lcd.clear(); // clearkan/padamkan paparan Screen LCD lcd.setCursor(0, 0); // setkan Cursor print LCD pada koordinat 0,0 lcd.print(“TAHNIAH"); //printkan message untuk di paparkan lcd.setCursor(2, 1); // setkan Cursor print LCD pada koordinat 2, 1 lcd.print(“JOM BELAJAR"); // printkan message untuk di paparkan delay(2000); // berikan sedikit delay untuk paparan 2 saat lcd.clear(); // clearkan/padamkan paparan Screen LCD lcd.setCursor(3, 0); lcd.print(“ARDUINO"); lcd.setCursor(0, 1); lcd.print("MUDAH JA"); delay(2000); } 62
  • 60.
    ULTRA SONIC SENSOR(HC-SR04) • Sensor Ultrasonic ialah alat yang mengukur jarak ke objek menggunakan gelombang bunyi ultrasonik. 63
  • 61.
    AMALI 11 –DISTANCESENSOR DAN LCD Pin 11=echo Pin 10=trig Pin 4=SDA Pin 5= SCL Pin 5V 64
  • 62.
    AMALI 11 –DISTANCESENSOR DAN LCD #include <Wire.h> // includekan library I2C. (Library ini sedia ada dalam IDE) #include<LiquidCrystal_I2C.h> // includekan library LiquidCrystal_I2C LiquidCrystal_I2C lcd(0x27, 16, 2); // berikan nama objek "lcd" untuk dikaitkan dengan library // set-kan address I2c dan nyatakan jenis/size LCD 16X2 Declare trigPin pada pin 10 Declare echoPin pada pin 11 void setup() { setkan trigPin sebagai Output pinMode(echoPin,INPUT); setkan echoPin sebagai input Wire.begin(); // mulakan I2C lcd.begin(); // mulakan LCD lcd.backlight(); // pasangkan BackLight Hijau/ Biru bergantung pada jenis LCD lcd.print("JARAK TARGET:"); // printkan message untuk di paparkan delay(2000); //berikan sedikit delay untuk paparan 2 saat } 65
  • 63.
    AMALI 11 –DISTANCESENSOR DAN LCD (SAMBUNGAN) void loop() { lcd.clear(); lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,1); lcd.print(distance); lcd.print("cm"); delay(2000); } standard coding untuk Ultrasonic sensor 66
  • 64.