The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Modul ini merupakan panduan komprehensif yang dibangunkan khusus untuk Program Perkongsian Ilmu: "Hand-On IoT Rekabentuk Sistem Berasaskan ESP32-Blynk Siri 1" Bersama Pelajar Diploma Vokasional Malaysia. Program ini merupakan kolaborasi strategik antara Program Teknologi Elektronik, Kolej Vokasional Batu Pahat dan para pakar daripada Fakulti Pendidikan Teknikal dan Vokasional (FPTV), Universiti Tun Hussein Onn Malaysia (UTHM).

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by KHAIRUIMAN MAHAMUD, 2026-02-27 08:47:03

Modul Hand-On IOT Rekabentuk Sistem Berasaskan ESP32 Blynk

Modul ini merupakan panduan komprehensif yang dibangunkan khusus untuk Program Perkongsian Ilmu: "Hand-On IoT Rekabentuk Sistem Berasaskan ESP32-Blynk Siri 1" Bersama Pelajar Diploma Vokasional Malaysia. Program ini merupakan kolaborasi strategik antara Program Teknologi Elektronik, Kolej Vokasional Batu Pahat dan para pakar daripada Fakulti Pendidikan Teknikal dan Vokasional (FPTV), Universiti Tun Hussein Onn Malaysia (UTHM).

Teknik Kawalan Output Digital PWM


Frequency = time to complete 1 cyclevoltage(v)3.3V1 period, tDuty Cycle = ON time for 1 cycle in %50% DC 75% DCDC 100% ? DC 75% ?time(s)50100× 3.3? = 1.65?75100× 3.3? = 2.475?100100× 3.3? = 3.3?Teknik Kawalan Output Digital PWM


Pemasangan Arduino IDEArduino Integrated Development Environment (IDE) ialahperisian open source, direka untuk memudahkan prosespengaturcaraan mikropengawal Arduino.Ia menyediakan interface mesra untuk menulis, menyusun(compile), dan memuat naik kod, membolehkan pengguna membinaprojek elektronik interaktif dengan mudah.Klik untuk muat turun Arduino 2.3.6 untuk WindowsKlik untuk muat turun Arduino 2.3.6 untuk Windows


Sahkan Pemasangan Pemacu (Driver)1. Klik bar carian dan taip “Device Manager.”2. Buka Device Manager.3. Kembangkan bahagian “Ports (COM & LPT)”.4. Cari label seperti “Arduino Uno (COMx)”.5. Jika ia tidak muncul, pemacu (driver) perludipasang.6. Pemasangan pemacu tidak diperlukan jikaArduino Uno adalah asli (genuine).


Kelebihan Arduino IDEFeature Arduino IDE 2.x Arduino IDE 1.x (Legacy)User Interface Modern, responsive UI built with Theia and Electron; includessidebar navigation, dark mode, and high-DPI support.Classic Java-based UI; minimalistic and lightweight.Code EditingOffers code autocompletion, syntax highlighting, and real-timeerror detection; features like \"Go to Definition\" and hover-overtooltips enhance code navigation.Basic text editor with syntax highlighting; lacks advanced codenavigation features.Serial Monitor & PlotterIntegrated into the main window; allows simultaneous viewing ofcode and serial output; includes a Serial Plotter for real-time datavisualization.Separate Serial Monitor window; lacks integrated Serial Plotter.Library & Board ManagementEnhanced Library and Board Managers with improved search andinstallation processes; better support for third-party boards andlibraries.Basic Library and Board Managers with limited searchcapabilities.Cloud Integration Seamless integration with Arduino Cloud; allows syncing sketchesacross devices and collaboration.No cloud integration features.Performance & StabilityFaster compilation times and more stable performance, especiallyfor larger projects; regular updates and active maintenance.Stable for small projects; may experience slower compilationtimes; minimal updates as it's no longer actively maintained.


Menyediakan board ESP32 1. Buka perisian Arduino IDE2. Klik File > Preferences dan taip pada bahagian AdditionalBoard Manager:https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json


Menyediakan board ESP32 3. Klik ikon Boards Manager.


Menyediakan board ESP32 4. Taip esp32 dan pasang versi terkini.Selepaspemasangan, sambungkan USB ke ESP32.5. Walau bagaimanapun, selepas pemasangan,Arduino IDE masih tidak mengenal pastiperkakasan (port) kerana pemacu (driver)belum dipasang.12


Pemasangan Pemacu USB• Pemacu CP2102 atau CH340 mesti dipasang kerana iamembolehkan komunikasi antara komputer dan mikropengawalmelalui USB dengan mewujudkan port COM maya.Untuk memuatturun pemacu tersebut, klik pautan di bawah:Klik untuk muat turun CH340Klik untuk muat turun CH340Klik untuk muat turun CP21xxKlik untuk muat turun CP21xx


Menguji kefungsian ESP32• Ubah jenis board kepada ESP32 Dev Module dan nombor portmengikut kesesuaian.


Menguji ESP32• Buat pendawaian mengikut skematik berikut:


Menguji ESP32• Tulis & upload aturcara untuk membuat kerlipan LED 1 Hz.void setup(){ pinMode(15,OUTPUT); }void loop(){ digitalWrite(15,HIGH); delay(1000); digitalWrite(15,LOW); delay(1000); }Bagaimana membuat kerlipan untuk 5 Hz?? =??=?????= ?????


Macro Constant• Menjadikan kod lebih mudah dibaca dan difahami• Memudahkan proses penyelenggaraan kod• Mengurangkan risiko kesilapan pengaturcaraan• Tidak menggunakan ruang memori semasa atur cara dijalankan#define led1 15void setup(){ pinMode(led1,OUTPUT);}void loop(){ digitalWrite(led1,HIGH);delay(200);digitalWrite(led1,LOW);delay(200);}


Function• Kaedah ini dikenali sebagai void function withno parameters.• Kod ini menggunakan subrutin jenis void tanpaargument, iaitu fungsi yang tidak menerimasebarang data masuk dan tidak memulangkansebarang nilai return.• Subrutin ini digunakan untuk melaksanakantugas tertentu berulang kali, dalam kes ini,mengawal nyalaan LED secara berkelip.#define led1 15void setup(){ pinMode(led1,OUTPUT);}void loop(){ kelip();}void kelip(){ digitalWrite(led1,HIGH);delay(200);digitalWrite(led1,LOW);delay(200);}


8-bit LED• Tambah komponen mengikut litar diberi. LED8 LED1


8-bit LED• Tambah komponen mengikut litar diberi.LED1 LED8Periksa continuity breadboard anda


Latihan 8-bit LED1. Buat kerlipan LED 8-bit pada frekuensi 5 Hz.2. Hasilkan corak kerlipan LED frekuensi 20 Hz ke arah kanan.3. Seterusnya, hasilkan corak kerlipan yang sama ke arah kiri.


Macro Definition• Kepentingan macro definition dalam pengaturcaraan:• Memendekkan kod yang berulang • Mengurangkan risiko kecuaian penulisan• Menambah kejelasan dan kebolehbacaan kod• Membolehkan pengurusan kod yang lebih sistematik• Digunakan meluas dalam sistem terbenam dan header files• Prestasi lebih baik untuk operasi ringkas


Macro Definition#define led1 15 #define led2 2 #define led3 4 #define led4 16 #define led5 17 #define led6 5 #define led7 18 #define led8 19 #define LED2(x) digitalWrite(led2, x? HIGH:LOW) #define LED3(x) digitalWrite(led3, x? HIGH:LOW) #define LED4(x) digitalWrite(led4, x? HIGH:LOW) #define LED5(x) digitalWrite(led5, x? HIGH:LOW) #define LED6(x) digitalWrite(led6, x? HIGH:LOW) #define LED7(x) digitalWrite(led7, x? HIGH:LOW) #define LED8(x) digitalWrite(led8, x? HIGH:LOW) …#define LED1(x) digitalWrite(led1, x? HIGH:LOW)#define led1 15#define led2 2#define led3 4#define led4 16#define led5 17#define led6 5#define led7 18#define led8 19#define LED1(x) digitalWrite(led1, x? HIGH:LOW)#define LED2(x) digitalWrite(led2, x? HIGH:LOW)#define LED3(x) digitalWrite(led3, x? HIGH:LOW)#define LED4(x) digitalWrite(led4, x? HIGH:LOW)#define LED5(x) digitalWrite(led5, x? HIGH:LOW)#define LED6(x) digitalWrite(led6, x? HIGH:LOW)#define LED7(x) digitalWrite(led7, x? HIGH:LOW)#define LED8(x) digitalWrite(led8, x? HIGH:LOW)…void loop() { kelip(); }{ LED8(0); LED1(1); delay(50); LED1(0); LED2(1); delay(50); LED2(0); LED3(1); delay(50); LED3(0); LED4(1); delay(50); LED4(0); LED5(1); delay(50); LED5(0); LED6(1); delay(50); LED6(0); LED7(1); delay(50); LED7(0); LED8(1); delay(50); LED1(0); LED8(1); delay(50); LED8(0); LED7(1); delay(50); LED7(0); LED6(1); delay(50); LED6(0); LED5(1); delay(50); LED5(0); LED4(1); delay(50); LED4(0); LED3(1); delay(50); LED3(0); LED2(1); delay(50); LED2(0); LED1(1); delay(50); }void kelip()void loop(){ kelip();}void kelip(){ LED8(0); LED1(1); delay(50);LED1(0); LED2(1); delay(50);LED2(0); LED3(1); delay(50);LED3(0); LED4(1); delay(50);LED4(0); LED5(1); delay(50);LED5(0); LED6(1); delay(50);LED6(0); LED7(1); delay(50);LED7(0); LED8(1); delay(50);LED1(0); LED8(1); delay(50);LED8(0); LED7(1); delay(50);LED7(0); LED6(1); delay(50);LED6(0); LED5(1); delay(50);LED5(0); LED4(1); delay(50);LED4(0); LED3(1); delay(50);LED3(0); LED2(1); delay(50);LED2(0); LED1(1); delay(50);}


Data type dalam pengaturcaraan C• Menentukan jenis nilai yang disimpan (nombor, aksara, dll.)• Menentukan saiz memori yang digunakan• Menentukan operasi yang sah terhadap sesuatu nilai


Jenis Data Type Umum dalam CJenis Keterangan Contohint Nombor bulat int suhu = 25;char Aksara tunggal char huruf = 'A';float Nombor perpuluhan float suhu = 23.5;double Nombor perpuluhan lebih tepat double pi = 3.1416;bool Nilai logik true/false bool status = true;


Keperluan Data Type Khusus• Di dalam embedded system, data type perlu khusus kerana:• Penggunaan memori yang terhad• Prestasi pemprosesan• Keserasian perkakasan• Kejelasan dan kebolehbacaan kod


Keperluan Data Type KhususJenis Saiz Julat Nilai Guna Untukuint8_t 8 bit 0 hingga 255 Data binari, kawalan portint8_t 8 bit -128 hingga 127 Nombor bulat keciluint16_t 16 bit 0 hingga 65535 Counter, masa, sensorint16_t 16 bit -32,768 hingga 32,767uint32_t 32 bit 0 hingga ~4 bilion Pengiraan besarint32_t 32 bit Negatif dan positif besarfloat 32 bit Perpuluhan, jarang digunakan jika tiada FPU


Asas Control Structure: FOR• FOR digunakan untuk melaksanakan pengulangan berdasarkankiraan tertentu.• Sintaks umum:• Contoh for Loop:for (inisialisasi; syarat; kemaskini) {// blok arahan}for (int i = 0; i < 5; i++) {printf(\"Ulangan ke-%d\\", i);}Ulangan ke-0Ulangan ke-1Ulangan ke-2Ulangan ke-3Ulangan ke-4


Mengawal kerlipan LED: FOR• Buat kerlipan LED running light sebanyak 2 turutan. Setelah itu, lengahan masa sebanyak 3 saat sebelum mengulangi aturcara.…void loop() { for(uint8_t i=0;i<2;i++) { kelip(); }LED1(0); delay(3000); }……void loop(){ for(uint8_t i=0;i<2;i++){kelip();}LED1(0);delay(3000);}……void loop() { for(uint8_t i=0;i<2;i++) kelip(); LED1(0); delay(3000); }……void loop(){ for(uint8_t i=0;i<2;i++)kelip();LED1(0);delay(3000);}…Bagaimanakah cara untuk menghentikankitaran pengulangan loop()?


Asas Control Structure: WHILE• Digunakan untuk melaksanakan pengulangan berdasarkan syaratlogik yang diuji sebelum setiap kitaran ulangan.• Ciri-ciri:• Syarat diuji sebelum arahan dalam blok dijalankan.• Jika syarat tidak benar sejak awal, kod dalam blok tidak akandilaksanakan.• Sintaks umum:while (syarat) {// Arahan diulang selagi syarat benar}


Penggunaan while(1)• Digunakan untuk mencipta gelung infiniti yang membolehkansistem terus berjalan tanpa henti, seperti:• Membaca sensor secara berterusan (polling)• Menangani input pengguna• Menjalankan tugasan utama dalam program• Kenapa tidak guna FOR?• FOR lebih sesuai untuk pengulangan dengan bilangan tertentu• while(1) lebih sesuai untuk loop tanpa syarat tamat, iaitu sistem terusdilaksanakan selagi kuasa dibekalkan atau arahan BREAK diberi.


Mengawal kerlipan LED: WHILE• Buat kerlipan LED running light sebanyak 2 turutan. Setelah itu, LED1 berkelip dengan frekuensi 5Hz.…void loop() { for(uint8_t i=0;i<2;i++) kelip(); LED1(0); { LED1(1); delay(200); LED1(0); delay(200); }}… while(1)…void loop(){ for(uint8_t i=0;i<2;i++)kelip();LED1(0);while(1){ LED1(1); delay(200);LED1(0); delay(200);}}…3∞


Active Buzzer VS Passive Buzzer• Active Buzzer• Buzzer yang menghasilkan bunyi sendiri apabila dibekalkan voltan(biasanya 3.3V atau 5V).• Mempunyai oscillator dalaman, jadi hanya perlu HIGH/LOW signal.• Passive Buzzer• Tidak mempunyai oscillator dalaman.• Memerlukan isyarat frekuensi (PWM) untuk hasilkan bunyi.• Menghasilkan pelbagai bunyi bergantung kepada frekuensi diberikan.


Buzzer dalam aturcaraCiri Active Buzzer Passive BuzzerCara Kawalan digitalWrite(pin, HIGH/LOW) tone(pin, freq) atau PWMFleksibiliti Bunyi Hanya satu nada tetap Boleh hasilkan pelbagai frekuensi/nadaKegunaan Mudah, sesuai untuk notifikasi ringkas Sesuai untuk main melodi atau bunyi kompleksContoh Kod (Arduino) digitalWrite(buzzerPin, HIGH); tone(buzzerPin, 1000); // 1kHz toneKeperluan PWM Tidak perlu Perlu (tone atau analogWrite/frekuensi PWM)Bunyi tanpa Kod Ya (hanya sambung +V) Tidak, perlu kod PWM


Buzzer dalam aturcara• Tambah active buzzer mengikut litar diberi. LED8 LED1


Buzzer dalam aturcara• Tambah active / passive buzzer mengikut litar diberi. LED8 LED1


Buzzer dalam aturcara …#define led8 19 #define buzz 23 void setup() { … pinMode(led4,OUTPUT); pinMode(led8,OUTPUT); pinMode(buzz,OUTPUT); }void loop() { for(uint8_t i=0;i<2;i++) kelip(); LED1(0); tone(buzz,1000); delay(50); noTone(buzz); … ……#define led8 19#define buzz 23…void setup(){ …pinMode(led4,OUTPUT); pinMode(led8,OUTPUT);pinMode(buzz,OUTPUT);}void loop(){ for(uint8_t i=0;i<2;i++)kelip();LED1(0);tone(buzz,1000); delay(50);noTone(buzz);…Dengan menggunakan kaedah function, kawal bilangan dan kadar bunyi buzzer


Function• Kaedah ini dikenali sebagai void functionwith parameters.• Kod ini menggunakan subrutin jenis voiddengan argument, iaitu fungsi yangmenerima data masuk (parameter), tetapitidak memulangkan sebarang nilai (return).• Subrutin ini digunakan untuk melaksanakantugas tertentu secara fleksibel, di mananilai yang dihantar ke dalam fungsi akanmengawal cara fungsi itu bekerja.…void loop() { for(uint8_t i=0;i<2;i++) kelip(); LED1(0); beep(3,50); …}void beep(uint8_t bil, uint16_t tempoh) { for(uint8_t i=0;i<bil;i++) { tone(buzz,1000); delay(tempoh); noTone(buzz); delay(tempoh); }}……void loop(){ for(uint8_t i=0;i<2;i++)kelip();LED1(0);beep(3,50);…}void beep(uint8_t bil, uint16_t tempoh){ for(uint8_t i=0;i<bil;i++){ tone(buzz,1000); delay(tempoh);noTone(buzz); delay(tempoh);}}…


Kawalan voltan tinggi: Relay Module• Modul relay 2-saluran membolehkan mikropengawal mengawallitar voltan tinggi (seperti 240 VAC atau 12 VDC) secaraselamat menggunakan isyarat voltan rendah.• Logik Kawalan:• Logik Rendah (LOW): Relay ON• Logik Tinggi (HIGH): Relay OFF• Mengawal lampu AC, pam air, motor DC, dll.VccIN2IN1GndNONCCOM


Pendawaian Relay ModuleLED8 LED1


Pendawaian Relay Module LED8 LED1


Pengaturcaraan Relay Module…#define buzz 23 #define rly1 13 #define rly2 14 #define LED8(x) digitalWrite(led8, x? HIGH:LOW) #define RLY2(x) digitalWrite(rly2, x? LOW:HIGH) { … pinMode(rly1,OUTPUT); pinMode(rly2,OUTPUT); }…#define RLY1(x) digitalWrite(rly1, x? LOW:HIGH) void setup() …#define buzz 23#define rly1 13#define rly2 14…#define LED8(x) digitalWrite(led8, x? HIGH:LOW)#define RLY1(x) digitalWrite(rly1, x? LOW:HIGH)#define RLY2(x) digitalWrite(rly2, x? LOW:HIGH)void setup(){ …pinMode(rly1,OUTPUT); pinMode(rly2,OUTPUT);}…void loop() { RLY1(1); RLY2(0); for(uint8_t i=0;i<2;i++) kelip(); LED1(0); RLY1(0); RLY2(1); beep(3,50); while(1) { LED1(1); delay(200); LED1(0); delay(200); }}……void loop(){ RLY1(1); RLY2(0);for(uint8_t i=0;i<2;i++)kelip();LED1(0);RLY1(0); RLY2(1);beep(3,50);while(1){ LED1(1); delay(200);LED1(0); delay(200);}}…Kenapa LOW:HIGH??


Mini Projek: Kawalan Lampu Isyarat• Anda dikehendaki membangunkan sistem lampu isyarat menggunakan tigabuah LED untuk mewakili warna:• Lampu Hijau (Jalan)• Menyala selama 7 saat.• Kemudian berkelip selama 3 saat (0.5 saat ON, 0.5 saat OFF) untuk memberi amaran pertukaran.• Lampu Kuning (Bersedia)• Menyala tetap selama 3 saat sebagai amaran pertukaran ke merah.• Lampu Merah (Berhenti)• Menyala selama 7 saat.• Kemudian berkelip selama 3 saat (0.5 saat ON, 0.5 saat OFF) sebelum kembali ke hijau.• Ulangi kitaran secara berterusan.


Hari KeduaPengenalan kepada Blynk


Recap Hari Pertama1. Apakah definisi Internet of Things (IoT)?2. Sebutkan 3 tonggak Revolusi Industri 4.0 (IR4.0) yangberkaitan dengan IoT.3. Bandingkan protokol MQTT dan HTTP dalam IoT.4. Mengapa ESP32 lebih baik daripada ESP8266?5. Apakah fungsi optocoupler dalam kawalan output digital?6. Jelaskan konsep duty cycle dalam PWM.


Konsep Kawalan Digital Input• Pull-down resistor:• Suis terbuka: input pin berada pada LOW• Suis tertutup: input pin menjadi HIGH• Maka, keluarannya adalah active HIGH,isyarat aktif apabila HIGH• Pull-up resistor:• Suis terbuka: input pin berada pada HIGH• Suis tertutup: input pin menjadi LOW• Maka, keluarannya adalah active LOW,isyarat aktif apabila LOWPull-down RESActive HIGH Active LOWPull-up RES


Pendawaian Digital Input ESP32• Buat pendawaian PB berdasarkan kepada gambarajah berikut:Active LOWActive HIGHLED8 LED1


Pendawaian Digital Input ESP32 LED8 LED1PB1 PB2


Pendawaian Digital Input ESP32• Daripada litar, PB1 adalah active LOW. Oleh itu, ia memerlukaninternal pull_up resistor dari ESP32.• Manakala PB2 adalah active HIGH. Ia memerlukan internalpull_down resistor dari ESP32.• Perhatikan deklarasi pada bahagian setup untuk pinMode danbacaan dalam serial monitor bagi aturcara berikut.• PB1: Tak tekan-1 Tekan-0• PB2: Tak tekan-0 Tekan-1


Aturcara Active Low/High…#define rly2 14 #define pb1 27 #define pb2 26 #define RLY2(x) digitalWrite(rly2, x? LOW:HIGH) #define PB2 digitalRead(pb2) { … pinMode(pb1,INPUT_PULLUP); pinMode(pb2,INPUT_PULLDOWN); Serial.begin(9600); }…#define PB1 digitalRead(pb1) void setup() pinMode(rly1,OUTPUT); pinMode(rly2,OUTPUT);…#define rly2 14#define pb1 27#define pb2 26…#define RLY2(x) digitalWrite(rly2, x? LOW:HIGH)#define PB1 digitalRead(pb1)#define PB2 digitalRead(pb2)void setup() { …pinMode(rly1,OUTPUT); pinMode(rly2,OUTPUT);pinMode(pb1,INPUT_PULLUP);pinMode(pb2,INPUT_PULLDOWN);Serial.begin(9600);}void loop() { Serial.print(\"PB1:\"); Serial.print(PB1); Serial.print(\" PB2:\"); Serial.println(PB2); }…void loop(){ Serial.print(\"PB1:\");Serial.print(PB1);Serial.print(\" PB2:\");Serial.println(PB2);}…PB Idle


Formatted Data Handlingvoid loop() { Serial.print(\"PB1:\"); Serial.print(PB1); Serial.print(\" PB2:\"); Serial.println(PB2); }…void loop(){ Serial.print(\"PB1:\");Serial.print(PB1);Serial.print(\" PB2:\");Serial.println(PB2);}…Asas, mudah dibaca, tetapi menghantar output bersiri yang berasingan.Output yang lebih kemas menggunakan pemformatan string dan buffer — lebih sesuai untuk output .char tx2buf[100]; void loop() { sprintf(tx2buf,\"PB1:%d PB2:%d\",PB1,PB2); Serial.println(tx2buf); }char tx2buf[100];void loop(){ sprintf(tx2buf,\"PB1:%d PB2:%d\",PB1,PB2); Serial.println(tx2buf);}


Aturcara PB + LED• Apabila PB1 ditekan secara berterusan, LED bernombor ganjilakan menyala.• Apabila PB2 ditekan secara berterusan, LED bernombor genapakan menyala.• Apabila kedua-dua PB1 dan PB2 berada dalam keadaan tidakditekan (idle), semua LED akan berkelip pada frekuensi 10 Hz.


Aturcara PB + LED …char tx2buf[100]; void loop() { sprintf(tx2buf,\"PB1:%d PB2:%d\",PB1,PB2); Serial.println(tx2buf); { LED1(1); LED3(1); LED5(1); LED7(1); LED2(0); LED4(0); LED6(0); LED8(0); }if(PB2==1) { LED1(0); LED3(0); LED5(0); LED7(0); LED2(1); LED4(1); LED6(1); LED8(1); if(PB1==1 & PB2==0) LED2(0); LED4(0); LED6(0); LED8(0); }… if(PB1==0) …char tx2buf[100];void loop(){ sprintf(tx2buf,\"PB1:%d PB2:%d\",PB1,PB2); Serial.println(tx2buf);if(PB1==0){ LED1(1); LED3(1); LED5(1); LED7(1);LED2(0); LED4(0); LED6(0); LED8(0);}if(PB2==1){ LED1(0); LED3(0); LED5(0); LED7(0);LED2(1); LED4(1); LED6(1); LED8(1);}if(PB1==1 && PB2==0){ LED1(0); LED3(0); LED5(0); LED7(0);LED2(0); LED4(0); LED6(0); LED8(0);}}…PB1 & PB2 IdlePB2 ditekan(Active High)PB1 ditekan(Active Low)


Asas Control Structure: IF• Digunakan untuk melaksanakan sesuatu arahan berdasarkansyarat logik yang ditentukan.• Ciri-ciri:• Syarat diuji terlebih dahulu.• Jika syarat benar, kod dalam blok akan dilaksanakan.• Jika syarat tidak benar, kod dalam blok akan diabaikan.• Sintaks umum:if (syarat) {// arahan jika syarat benar}


Click to View FlipBook Version