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);
Parametersmap(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()
.
0 comments:
Posting Komentar