Cari Kode

Pelajaran 14/31-4: Contoh pemetaan() kode Arduino 1

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

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()

Gambar

Sunfounder car assembled
Sunfounder car assembled
919-Lesson 14/31-4: Arduino coding map() example 1
Bahasa: C++
/*
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() {

 
 }
 

Sumber daya & referensi

Berkas📁

Panduan Pengguna