Membuat LED berkedip adalah salah satu cara sederhana untuk menunjukkan kemampuan pewaktuan pada mikroprosesor.
Berikut ini beberapa teknik yang dapat dilakukan:
- interupsi timer
- delay arduino standar
- delay dari FreeRTOS
Delay Standar Arduino
Delay pada Arduino dijelaskan di https://www.arduino.cc/reference/en/language/functions/time/delay/
Pada software Arduino standar seperti Arduino Nano dan UNO, delay ini diimplementasikan dengan loop software.
Contoh software yang menggunakan delay ini adalah contoh software Blink pada Arduino (https://www.arduino.cc/en/tutorial/blink)
Diagram alir program Blink ini adalah sebagai berikut
![](https://elektrologi.iptek.web.id/wp-content/uploads/2020/05/flowchart-kedip-delay-1.jpg)
Delay pada FreeRTOS
FreeRTOS memungkinkan software Arduino memiliki beberapa loop pada waktu yang bersamaan.
Porting FreeRTOS untuk Arduino UNO dan Nano dapat dilihat di https://github.com/feilipu/Arduino_FreeRTOS_Library
Library FreeRTOS ini dapat diinstall di Arduino IDE dari menu Tools -> Manage Libraries. Kemudian search dengan kata kunci FreeRTOS.
![Proses instalasi library FreeRTOS](https://elektrologi.iptek.web.id/wp-content/uploads/2020/05/freertos-library-install.jpg)
Sebagai contoh, berikut ini diagram alir (flowchart) sebuah program yang membuat LED berkedip dengan 3 buah loop. Masing-masing LED memiliki frekuensi yang berbeda.
![Lampu kedip dengan FreeRTOS](https://elektrologi.iptek.web.id/wp-content/uploads/2020/05/flowchart-kedip-delay-freertos.jpg)
Source code dapat dilihat di https://github.com/waskita/embedded/tree/master/atmega-blink-freertos
Fungsi FreeRTOS yang dipakai adalah
- xTaskCreate untuk membuat task baru
- xTaskGetTickCount untuk mendapatkan tick di OS pada suatu saat
- vTaskDelayUntil untuk membuat delay
![Arduino dengan LED berkedip](https://elektrologi.iptek.web.id/wp-content/uploads/2020/05/arduino-kedip-IMG_4259-600x376.jpg)
Berikut ini demo perangkat keras Arduino Nano tersebut
Interupsi Timer
under construction
Pingback: Arsitektur Perangkat Lunak pada Sistem Embedded - Elektrologi