> For the complete documentation index, see [llms.txt](https://weenslab.gitbook.io/pages/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weenslab.gitbook.io/pages/proyek-arduino/kumpulan-proyek/rangkaian-button.md).

# Rangkaian Button

## State Floating pada GPIO Input

Jika kita mengkonfigurasi sebuah pin GPIO di mikrokontroler sebagai input, dan pin tersebut tidak terhubung dengan apapun, maka pin tersebut berada dalam kondisi floating. Kondisi floating yaitu berarti logika yang terbaca tidak terdefinisi dengan jelas, bisa logika 0 atau 1. Ataupun bisa juga terjadi dimana level tegangannya berada di antara $$V\_{IH}$$ dan $$V\_{IL}$$. Electrical noise dari mesin-mesin besar dapat menyebabkan pin floating berubah-ubah nilainya.

Oleh karena itu, kita perlu menjaga input pin tersebut pada nilai logika 0 atau 1 dengan resistor pull-down atau pull-up. Ketika kita menggunakan resistor pull-down, maka pin tersebut terhubung ke GND, maka pin tersebut memiliki nilai 0. Ketika kita menggunakan resistor pull-up, maka pin tersebut terhubung ke tegangan supply, maka pin tersebut memiliki nilai 1.

Rangkaian dengan resistor pull-down disebut juga rangkaian active-high, sedangkan dan rangkaian dengan resistor pull-up disebut juga rangkaian active-low.

## Rangkaian Active-High

Pada rangkaian active-high, button dihubungkan di antara tegangan supply dan GPIO input. Berikut ini cara kerja rangkaian active-high:

* Ketika button pada posisi open, maka tegangan terbaca pada GPIO adalah 3.3µV (logika LOW).
* Keitka button pada posisi close, maka tegangan terbaca pada GPIO adalah 3.3V (logika HIGH).

<figure><img src="/files/qNElx6ZnYonuHyPu7bbx" alt=""><figcaption></figcaption></figure>

Kondisi di dalam chip mikrokontroller ketika GPIO dikonfigurasi sebagain input dapat dimodelkan dengan resistor yang nilainya sangat besar (1 GΩ). Sehingga, untuk menghitung nilai tengangan pada GPIO input dapat menggunakan rumus pembagi tegangan.

## Rangkaian Active-Low

Pada rangkaian active-low, button dihubungkan di antara GPIO input dan GND. Berikut ini cara kerja rangkaian active-low:

* Ketika button pada posisi open, maka tegangan terbaca pada GPIO adalah 3.3V (logika HIGH).
* Ketika button pada posisi close, maka tegangan terbaca pada GPIO adalah 0V (logika LOW).

<figure><img src="/files/7UjhvQYs93lxP5PabVOC" alt=""><figcaption></figcaption></figure>

Kondisi di dalam chip mikrokontroller ketika GPIO dikonfigurasi sebagain input dapat dimodelkan dengan resistor yang nilainya sangat besar (1 GΩ). Sehingga, untuk menghitung nilai tengangan pada GPIO input dapat menggunakan rumus pembagi tegangan.

## Menentukan Nilai Resistor

Nilai resistor yang biasa digunakan yaitu $$3.3kΩ−10kΩ$$. Untuk design yang membutuhkan low power, maka nilai resistor yang biasa digunakan yaitu $$50kΩ−100kΩ$$. Nilai resistor yang kecil disebut dengan istilah strong pull-down/pull-up, dan nilai resistor yang besar disebut dengan istilah weak pull-down/pull-up.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://weenslab.gitbook.io/pages/proyek-arduino/kumpulan-proyek/rangkaian-button.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
