Pelajaran 14/31-4: Contoh pemetaan() kode Arduino 1
Tutorial ini adalah bagian dari seri pemrograman Arduino dan berfokus pada penggunaan praktis fungsi map(). Dalam pelajaran ini, Anda akan belajar cara mengonversi nilai persentase (0–100) menjadi nilai PWM (Pulse Width Modulation) (0–255) untuk mengontrol kecerahan LED. Alih-alih menghitung secara manual bahwa 60% sama dengan 153, fungsi map() menangani konversi linier untuk Anda, membuat kode Anda lebih bersih dan lebih intuitif.
Teknik ini sangat penting untuk banyak aplikasi dunia nyata di mana Anda perlu menerjemahkan pembacaan sensor atau input pengguna ke dalam rentang yang berbeda. Misalnya, Anda dapat menggunakannya untuk:
- Mengontrol kecepatan motor DC berdasarkan pembacaan potensiometer.
- Menampilkan nilai mentah sensor suhu pada skala 0-100%.
- Memetakan koordinat joystick ke sudut motor servo.
- Menyesuaikan kecerahan LED berdasarkan sensor cahaya sekitar.
- Mengonversi pembacaan analog 0-5V menjadi nilai digital 0-1023 atau sebaliknya.
Perangkat Keras/Komponen
Untuk mengikuti proyek ini, Anda akan membutuhkan komponen berikut:
- Papan Arduino (Uno, Nano, dll.)
- Sebuah LED
- Resistor 220-ohm
- Kabel jumper
- Breadboard (opsional, tetapi disarankan)
Panduan Pengkabelan
Dalam video, instruktur mendemonstrasikan proyek menggunakan pengaturan kabel dari pelajaran sebelumnya tentang peredupan LED. Rangkaiannya sederhana: hubungkan anoda (kaki panjang) LED ke resistor 220-ohm, dan hubungkan ujung lain resistor tersebut ke pin digital 3 pada Arduino. Hubungkan katoda (kaki pendek) LED langsung ke pin ground (GND) pada Arduino.
Penjelasan Kode
Kode untuk contoh ini sangat ringkas, dengan logika inti berada dalam fungsi setup(). Mari kita uraikan bagian-bagian yang dapat dikonfigurasi oleh pengguna.
int LEDpin = 3; //defind pin untuk LED
Baris ini mendefinisikan pin Arduino yang terhubung ke LED Anda. Dalam contoh ini, diatur ke pin 3, yang merupakan pin yang mendukung PWM, diperlukan untuk output analog. Anda dapat mengubah angka ini jika Anda menghubungkan LED ke pin PWM yang berbeda.
int b=8;//60% kecerahan
Ini adalah variabel kunci yang akan Anda ubah untuk menguji tingkat kecerahan yang berbeda. Ini mewakili kecerahan yang diinginkan sebagai persentase. Komentar dalam kode mengatakan "60%", tetapi nilainya diatur ke 8 untuk tujuan demonstrasi dalam video. Anda dapat mengubah ini menjadi bilangan bulat apa pun antara 0 dan 100. Misalnya, mengatur b = 60 akan mewakili tingkat kecerahan 60%.
int brightness = map(b, 0, 100, 0,255);
Ini adalah inti dari pelajaran ini. Fungsi map() mengambil nilai persentase Anda (b) dan mengonversinya dari rentang aslinya (0 hingga 100) ke rentang target baru (0 hingga 255). Hasilnya disimpan dalam variabel brightness, yang kemudian digunakan untuk menulis nilai analog ke pin LED.
analogWrite(LEDpin, brightness);// nyalakan LED dengan kecerahan 60%
Terakhir, baris ini mengirim nilai yang dipetakan ke pin LED menggunakan analogWrite(). Ini mengatur siklus kerja LED, secara efektif mengontrol kecerahannya. Keindahan pendekatan ini adalah Anda hanya perlu mengubah variabel b untuk mengontrol LED, dan fungsi map() menangani semua perhitungan yang diperlukan.
Proyek Langsung/Demonstrasi
Dalam video, instruktur mengunggah kode dan mendemonstrasikan efek mengubah variabel b. Ketika b diatur ke 8, monitor serial mencetak nilai yang dipetakan 20, dan LED terlihat redup. Mengubah b menjadi 90 menghasilkan nilai yang dipetakan 229, membuat LED jauh lebih terang. Mengatur b ke 100 memetakan ke 255, yang merupakan kecerahan penuh. Demonstrasi praktis ini dengan jelas menunjukkan bagaimana fungsi map() menyederhanakan proses pengendalian output analog dengan nilai persentase yang ramah pengguna.
Proyek terkait dari video ini
- Pelajaran 14/31-1: Arduino Millis (tanpa delay) dan fungsi map | SunFounder Robojax
- Pelajaran 14/31-2: Pemrograman Arduino millis() contoh 2 dengan event
- Pelajaran 14/31-3: Pemrograman Arduino millis() contoh 3 dengan tombol tekan
- Pelajaran 14/31-5: Pemrograman Arduino map() contoh 2
Bab
- [00:00] Pengenalan Kursus Arduino oleh Robojax
- [01:19] Apa itu millis() dan mengapa menggunakannya
- [05:46] Contoh 1: Menggunakan millis() untuk event terjadwal
- [08:29] Contoh 2: Menggunakan millis() dengan tombol tekan
- [12:14] Contoh 3: Mendeteksi penekanan tombol kedua setelah penundaan
- [17:20] Pengenalan fungsi map()
- [19:47] Penjelasan kode untuk contoh map()
- [20:41] Demonstrasi langsung fungsi map()
/*
Lesson 14/31: Arduino coding map( ) example-1
Get this code and watch video Download and resource page https://robojax.com/RJT597
YouTube video https://www.youtube.com/watch?v=lqgzQohNiIM
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
int LEDpin = 3; //defind pin for LED
void setup() {
Serial.begin(9600);//initialize serial monitor with 9600 baud
pinMode(LEDpin, OUTPUT);//set pin as output
int b=8;//60% brightness
int brightness = map(b, 0, 100, 0,255);
Serial.println(brightness);//print it on serial monitor
analogWrite(LEDpin, brightness);// turn the LED on with 60% brightness
}
void loop() {
}
Hal-hal yang mungkin Anda butuhkan
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Sumber daya & referensi
-
DokumentasiDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
EksternalPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Berkas📁
Panduan Pengguna
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB