15 Okt 2019

Membaca Sensor Cahaya

Membaca Sensor Cahaya

Pada latiahan 02 telah belajar menggunakan potensiometer, merupakan hambatan yang dapat berubah tergantung dari posisi putaran knob. Pada latihan sekarang akan menggunakan sebuah sensor cahaya (photoresistor), dimana nilai hambatan akan berubah-ubah bergantung dari intensitas cahaya yang diterima oleh sensor. Kita memerlukan rangkaian pembagi tegangan untuk bisa menggunakan photoresistor supaya perubahan hambatannya dapat menyebabkan perubahan tegangan dan dapat dibaca oleh Arduino.

Kebutuhan Komponen:

— 1 x Arduino UNO
— 1 x Photoresistor
— 1 x LED
— 1 x Resistor 10kΩ
— 1 x Resistor 330Ω

Komponen yang digunakan pada Shield:

1 x Photoresistor yang terhubung ke A1.
1 x LED yang terhubung ke D9.


Rangkaian:

Upload sketch:

Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 06 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.

Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_06

Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
   Latihan 06 Membaca Sensor Cahaya

   Use a photoresistor (light sensor) to control the brightnessof a LED.

   Version 1.0 9/2017 MK
*/

const int sensorPin = A1;
const int ledPin = 9;


int lightLevel;  // We'll also set up some global variables for the light level
int calibratedlightLevel; // used to store the scaled / calibrated lightLevel

void setup() {
  pinMode(ledPin, OUTPUT);    // Set up the LED pin to be an output.
}

void loop() {
  lightLevel = analogRead(sensorPin);  // reads the voltage on the sensorPin

  calibratedlightLevel = map(lightLevel, 0, 1023, 0, 255);  // scale the lightLevel from 0 - 1023 range to 0 - 255 range.
                                                  // the map() function applies a linear scale / offset.
                                                  // map(inputValue, fromMin, fromMax, toMin, toMax);

  analogWrite(ledPin, calibratedlightLevel);    // set the led level based on the input lightLevel.
}

Catatan kode:

calibratedlightLevel = map(lightLevel, 0, 1023, 0, 255);
Parameters

map(value, fromLow, fromHigh, toLow, toHigh)

value: nilai yang dipetakan

fromLow: batas bawah dari range nilai terbaca

fromHigh: batas atas dari range nilai terbaca

toLow: batas bawah dari range nilai diinginkan

toHigh: batas atas dari range nilai diinginkan

Ketika membaca sinyal analog menggunakan fungsi analogRead(), akan terbaca nilai dari angka 0 sampai 1023. Tapi jika kita ingin mengeluarkan output pada pin PWM menggunakan fungsi analogWrite(), nilai yang diset antara 0 sampai 255. Kita dapan memperkecil nilai yang mempunyai range besar menjadi range yang kecil atau sebaliknya menggunakan fungsi map().

Apa yang seharusnya kamu lihat:

Kamu akan melihat LED menyala lebih terang atau lebih redup tergantung dari intensitas cahaya yang terbaca oleh photoresistor. Jika tidak terjadi, pastikan sketch sudah masuk kedalam Arduino.


0 comments:

Posting Komentar