• Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
Kamis, Oktober 2, 2025
mikroavr.com
No Result
View All Result
  • Login
  • Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
  • Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
No Result
View All Result
mikroavr
No Result
View All Result
Home Project

Program Led Berjalan Dengan CodeVision AVR Atmega16/32

Jimmi Sitepu by Jimmi Sitepu
Mei 9, 2018
0 0
0
program led berjalan

program led berjalan

122
SHARES
26.9k
VIEWS
Share on FacebookShare on Twitter

LED Berjalan

Led Berjalan dengan codevision Avr. Untuk memulai belajar program codevision AVR, biasanya di mulai dengan memprogram push button, buat program blink, membaca ADC, menampilkan di LCD dan juga memprogram LED berjalan. Hal ini di lakukan untuk mengasah logaritma cara berpikir kita dalam memprogram. Sebenarnya tulisan ini muncul karena ada yang WhatsApp, bagaimana cara memprogram led berjalan dengan codevisionAVR. Jadi teringat waktu pertama kali belajar mikrokontroller, dengan memprogram LED berjalan.

Pada program LED berjalan ini, kita akan mengontrol nya melalui push button, push button di hubungkan ke PINB.0, PINB.1 dan PINB.2. Sementara LED dihubungkan ke PORTD, jadi ada 8 LED yang akan kita control di sini. Untuk Lebih jelas nya, mari lihat pembahasan selanjut nya di bawah ini,

READ ALSO

Sensor Tekanan Air Dan Udara Dengan Arduino

Data Logger Arduino, Simpan Data ke MikroSD atau SD Card

Rangkaian Led Berjalan

program led berjalan
program led berjalan

Pada rangkaian di atas, sangat jelas kita lihat kemana akan di hubungkan PUSH BUTTON sebagai input ke mikrokontroller dan LED di hubungkan ke PORTD. Ketika salah satu Push button di tekan, maka logika 0 akan di input kan ke inputan PIN nya. ketika Push button ini tidak ditekan maka PIN dalam kondisi HIGH, atau logika 1. Bagaiamana kah cara memprogram nya? yuk kita lihat pembahasan selanjut nya di bawah ini.

Program Led Berjalan dengan codeVisionAVR

Sebenarnya ada banyak cara memprogram LED ini, ada cara klasik dengan memprogram LED satu satu dengan delay waktu tertentu, tapi ada juga dengan function dan fungsi geser pada Bahasa C. Untuk mengasah logika berpikir kita, berikut adalah Program Keseleruhananya, mari kita lihat bersama-sama.


#include <mega16.h>
#include <delay.h>

#define SW_KIRI PINB.0    // SW_GESER = PINB.0 , GANTI VARIABLE
#define SW_KANAN PINB.1      // SW_OFF = PINB.1 , GANTI VARIABLE
#define SW_OFF PINB.2   


// Declare your global variables here
void geser_kiri(int tunda);  
void geser_kanan(int tunda);
int hold_kiri=0;  
int hold_kanan=0;


void main(void)
{

PORTD = 0X00;  //kondisi awal, led padam
DDRD = 0XFF;  //set sebagai output

PORTB = 0XFF; // set sebagai pull up
DDRB = 0X00; // set portb sebagai input

while (1)
      {
      // Place your code here
            if ( SW_KIRI == 0){  // JIKA DITEKAN PINB.0 
                hold_kiri = 1; // RUBAH NILAI hold_key = 1
                while ( hold_kiri == 1){ 
                    geser_kiri(10); 
                    if(SW_OFF == 0){ 
                        hold_kiri = 0; PORTD=0X00; 
                    } 
                    if ( SW_KANAN == 0){
                        hold_kanan = 1; break;
                    }
                }               
            }
            
            if (SW_KANAN == 0){
               hold_kanan = 1; // RUBAH NILAI hold_key = 1
                while ( hold_kanan == 1){ 
                    geser_kanan(10);  
                    if(SW_OFF == 0){ 
                        hold_kanan = 0; PORTD=0X00;
                    }
                    if ( SW_KIRI == 0){
                        hold_kiri = 1; break;
                    }
                }     
            }
               
      }
}

void geser_kiri(int tunda){
    int i;      
    int led = 0x01; 
    for ( i = 0; i < 8; i++){   
        PORTD = led; 
        delay_ms(tunda);
        led <<=1;   
        if ( SW_OFF == 0){
           hold_kiri = 0;PORTD=0X00; break;
        }
    }
}

void geser_kanan(int tunda){
    int i;      
    int led = 0x80; 
    for ( i = 0; i < 8; i++){  
        PORTD = led; 
        delay_ms(tunda);
        led >>=1;    
        if ( SW_OFF == 0){
           hold_kanan = 0;PORTD=0X00; break;
        }
    }
}

Pada Program di atas, tombol PINB.0 akan menggeser ke kiri, kemudian PINB.1 akan menggeser ke kanan, dan terakhir adalah PINB.2 untuk mematikan LED. Mungkin teman-teman penasaran, apa sih tujuan hold_kiri dan hold_kanan pada program di atas? Karena Tombol yang diguanakan mengguanakan tombol reset, maka perlu hold, agar kita cukup sekali tekan saja, led tetap berjalan.

Untuk video pengujian nya bisa teman teman lihat pada video di bawah ini,

Jika ingin respon perubahan LED lebih cepat, sebenarnya kita gunakan interupsi external pada mikrokontroller, mungkin lain waktu kita bahas.

Semoga Tulisan dapat memmbantu,

Thanks

Tags: atmega16cvavr
Share122Tweet
Previous Post

Fungsi digitalWrite pada Arduino, Contoh Rangkaian dan Program nya

Next Post

Penyiraman Tanaman Otomatis Berbasis Arduino dengan Sensor Kelembaban Tanah

Jimmi Sitepu

Jimmi Sitepu

Hobbyist Embedded System, Robotic, IOT and write all about them. So we have nice quote "Learning and Sharing"

Related Posts

Arduino

Sensor Tekanan Air Dan Udara Dengan Arduino

Desember 20, 2020
Data Logger Arduino, Simpan Data ke MikroSD atau SD Card
Arduino

Data Logger Arduino, Simpan Data ke MikroSD atau SD Card

Juli 19, 2019
monitoring listrik
Arduino

Monitoring Arus Listrik dengan Internet

Oktober 4, 2020
Pendeteksi Banjir Berbasis Arduino dan GSM
Arduino

Pendeteksi Banjir Berbasis Arduino dan GSM

April 24, 2019
Membuat Robot Sederhana dengan Arduino dan Ultrasonik, Lengkap dengan Pengujian dan Coding nya
Project

Membuat Robot Sederhana dengan Arduino dan Ultrasonik, Lengkap dengan Pengujian dan Coding nya

Oktober 11, 2018
Cara Mudah Program HT1621 LCD Pertamini, dengan Library HT1621 Arduino
Arduino

Cara Mudah Program HT1621 LCD Pertamini, dengan Library HT1621 Arduino

Februari 26, 2022
Next Post
penyiraman tanaman otomatis berbasis arduino

Penyiraman Tanaman Otomatis Berbasis Arduino dengan Sensor Kelembaban Tanah

fungsi analogRead arduino

Fungsi analogRead pada Pemrograman Arduino sebagai ADC untuk Sensor

Please login to join discussion

Tulisan Terbaru

sensor URM14 Arduino

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

Juli 7, 2022
4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
Mendapatkan Waktu Akurat dengan NTP GPS

Mendapatkan Waktu Akurat dengan NTP GPS

Mei 8, 2022
Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

April 14, 2022
Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Maret 9, 2022
ethernet arduino

Arduino Ethernet Tutorial, Project dengan Arduino Uno dan Mega

Februari 24, 2022

Browse by Category

  • Arduino
  • Ebook
  • ESP32
  • IOT
  • jasa
  • Komponen
  • PCB
  • Produk
  • program Arduino
  • Project
  • Rangkaian
  • Sensor
  • Tips
  • Uncategorized

Recent News

sensor URM14 Arduino

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

Juli 7, 2022
4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
  • About US
  • Blog
  • MIKROAVR

© 2020 mikroavr.com - Learning and sharing.

Welcome Back!

Sign In with Google
OR

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

No Result
View All Result
  • About US
  • Blog
  • MIKROAVR

© 2020 mikroavr.com - Learning and sharing.