analog input output
TRANSCRIPT
ANALOG IO
A. Analog Input
1. Hubungkan pin A0 dengan potensiometer 20K ohm sebagai simulasi sensor seperti pada
gambar 3.1
2. Buatlah sketch seperti berikut :
int sensorPin = A0;
int val = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
val = analogRead(sensorPin);
Serial.println(val);
}
3. Verify, upload dan buka Serial Monitor.
4. Putar potensiometer, dan perhatikan nilai pada Serial Monitor.
No Posisi Potensiometer Nilai Yang Terbaca Serial
Monitor
1 Minimum ( 0 ohm) 0
2 Tengah (10 Kohm) 538
3 Maksimum (20 Kohm) 1023
B. Membaca Tegangan
1. Masih dengan rangkaian pada Gambar 3.1, buatlah sketch berikut :
int sensorPin = A0;
int val = 0;
float voltage;
void setup()
{
Serial.begin(9600);
}
void loop()
{
val = analogRead(sensorPin);
voltage = (5.0/1023.0)* val;
Serial.print("Data:");
Serial.print(val);
Serial.print(" ");
Serial.print("Vin:");
Serial.println(voltage);
}
2. Verify, upload dan buka Serial Monitor.
3. Putar potensiometer, dan perhatikan nilai pada Serial Monitor.
No Posisi Potensiometer Nilai yang terbaca di serial monitor
Data (decimal) Vin(volt)
1 Minimum ( 0 ohm) 0 0 V
2 Tengah (10 Kohm) 536 2.62 V
3 Maksimum (20 Kohm) 1023 5 V
C. Analog Output
1. Hubungkan pin A0 dengan potensiometer 20K ohm sebagai simulasi sensor dan LED pada pin
9
2. Buatlah sketch seperti berikut :
int ledPin = 9;
int analogPin = A0;
int val = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
val = analogRead(analogPin);
analogWrite(ledPin, val / 4);
}
4. Verify dan upload jika program sudah benar.
5. Putar potensiometer, dan perhatikan intensitas cahaya pada LED.
No Posisi Potensiometer Intensitas cahaya LED
1 Minimum ( 0 ohm) Mati
2 Tengah (10 Kohm) Redup
3 Maksimum (20 Kohm) Cerah
TUGAS DAN PERTANYAAN
1. Dengan menggunakan rangkaian pada Gambar 3.1, buatlah sketch dengan ketentuan sebagai
berikut :
· Baca input analog dari pin A0, simpan nilainya pada sebuah variable.
· Nyalakan dan padamkan LED pin 13 dengan interval waktu sesuai nilai variable diatas.
Jawab :
int led=9;
int analog=A0;
int val=0;
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop()
{
val=analogRead(analog);
digitalWrite(led, HIGH);
delay(val);
digitalWrite(led, LOW);
delay(val);
Serial.print("delay:");
Serial.println(val);
}
2. Buatlah kesimpulan dari percobaan ini !
o Nilai Val = 0, diberi nilai 0 agar outputnya dimulai dari 0 maka nilai outputnya presisi, jika
dimulai dari val = 10, maka nilai yang dihitung dari 10, 0 sampai 10nya tidak terbaca.
o Nilai analogRead adalah dari 0 sampai 1023
o Nilai analgWrite adalah dari 0 sampai 255
o 9600 baud adalah kecepatan transfer datanya . jadi dia mengirim 9600 bit per second. Jika
diprogramnya ditulis 9600 sedangkan serial monitornya bukan 9600, maka datanya tidak
sampai. Kecepatan data dengan kecepatan nerimanya harus sama.
o Maksud dari analogWrite(lePin, val / 4), untuk mengatur kecerahan cahaya lednya. Dibagi
4 agar terlihat perbedaan kecerahan cahayanya ketika potensio ditekan.
o Delay digunakan ntuk membuat led berkedip.
o Delay(val), artinya lama delaynya sesuai dengan nilai val nya, yaitu antara 0-1023.
Semakin besar nilai valnnya, maka delaynya semakin lama.