Komunikasi serial memungkinkan komputer memberikan perintah pada board Arduino atau juga sebaliknya. Dengan Serial Monitor Arduino IDE, memungkinkan komputer menerima atau mengirimkan data ke Arduino. Pada tutorial Arduino kali ini akan diulas tentang bagaimana mengendalikan nilai PWM melalui Serial Monitor Arduino IDE. Perlu diketahui bahwa data yang dikirimkan oleh komputer ke Arduino masih berupa data character. Sehingga perlu diubah terlebih dahulu dari data string atau character menjadi integer.
Source Code
Berikut ini adalah source code (sketch) Arduino untuk mengendalikan PWM melalui Serial Monitor.
/*
Program mengatur nilai PWM
melalui Serial Monitor Arduino IDE
Loki Lang
*/
String inputString = "";
void setup()
{
pinMode(9, OUTPUT);
Serial.begin(9600);
Serial.println("Mengubah input string menjadi integer");
Serial.println("Untuk mengendalikan nilai PWM");
delay(1000);
}
void loop()
{
while(Serial.available() > 0)
{
int inputChar = Serial.read();
if(isDigit(inputChar))
{
inputString += (char)inputChar;
}
if(inputChar == '\n')
{
int lang = inputString.toInt();
if(lang > 255)
{
lang = 255;
}
Serial.println("Nilai PWM maximum 255");
Serial.print("Nilai PWM di pin digital 9: ");
Serial.println(lang);
analogWrite(9, lang);
inputString = "";
}
}
delay(1000);
}
Program mengatur nilai PWM
melalui Serial Monitor Arduino IDE
Loki Lang
*/
String inputString = "";
void setup()
{
pinMode(9, OUTPUT);
Serial.begin(9600);
Serial.println("Mengubah input string menjadi integer");
Serial.println("Untuk mengendalikan nilai PWM");
delay(1000);
}
void loop()
{
while(Serial.available() > 0)
{
int inputChar = Serial.read();
if(isDigit(inputChar))
{
inputString += (char)inputChar;
}
if(inputChar == '\n')
{
int lang = inputString.toInt();
if(lang > 255)
{
lang = 255;
}
Serial.println("Nilai PWM maximum 255");
Serial.print("Nilai PWM di pin digital 9: ");
Serial.println(lang);
analogWrite(9, lang);
inputString = "";
}
}
delay(1000);
}
Berikut ini adalah sedikit penjelasan singkat mengenai source code (sketch) tersebut.
- Variable inputString digunakan untuk menampung kumpulan data character yang akan diubah menjadi integer
- Variable inputChar merupakan data pembacaan serial dari komputer
- Variable lang merupakan hasil nilai integer, yang akan digunakan sebagai output nilai PWM pin digital 9 Arduino, selain pin 9 pin lainnya yang dapat digunakan untuk menghasilkan output PWM ialah pin 3, 5, 6, 10, dan 11
- Untuk isDigit(), digunakan untuk melakukan pemeriksaan apakah data input dari komputer berupa bilangan atau bukan
- Untuk toInt(), digunakan untuk mengubah suatu data menjadi menjadi data integer
Untuk penerapan nilai PWM tersebut, bisa digunakan untuk mengendalikan tingkat terang redup dari suatu lampu atau kecepatan motor.