Menulis sketch program arduino
ternyata mudah, tapi bagaimana cara menggabungkan sketch demi sketch ya?
Ini Uda contohin ya... Yg pertama sketch program untuk menghidupkan
LED.
#define LED
13
#define tombol
6
int nilaitombol = 0;
void setup()
{
pinMode (LED,OUTPUT);
pinMode (tombol,INPUT);
}
void loop()
{
nilaitombol = digitalRead(tombol);
if (nilaitombol == HIGH)
{
digitalWrite(LED,
HIGH);
}
else
{
digitalWrite(LED,
LOW);
}
}
Nah
sketch di atas adalah sketch menghidupkan LED pada pin 13. Jadi ketika tombol
dipencet LED nyala, dan ketika tombol di lepas LEDnya mati. Ini kita semua udah
pasti tau ya. Coba sekarang kita kombine dengan pembacaan tegangan
#define potensiometer A0
float tegangan = 0;
int nilaiPotensio = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
nilaiPotensio = analogRead(potensiometer);
tegangan = nilaiPotensio
* (5.0 / 1023.0);
Serial.println(tegangan);
}
Diatas
kita punya sketch untuk pembacaan tegangan. Kita tambahin lagi ya untuk
penampilan di LCD 16 x 2. Langsung deh kita liat sketch yang di bawah. Tapi
sebelumnya kita pasang dulu LCDnya sesuai wiring diagram ya bray
Wiring
LCDnya
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
Selanjutnya
kita kopiin dulu, biar kerjanya jadi tambah enak dan relax, xixixix... eh
maksudnya kita kopiin sketch dibawah ke dalam arduino IDE kita. Berikut sketch
untuk penampilan LCD 16x2 nya
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
lcd.begin(16,
2);
lcd.print("hello,
world!");
}
void loop()
{
lcd.setCursor(0,
1);
lcd.print(“ “);
}
Nah dari
3 sketch di atas dapat kita gabungkan menjadi apa ya.... ayoo di bantu pak
tarno nya... :D.
Kita
dapat menggabungkan nya menjadi “pembaca tegangan dengan alarm pada nilai
tertentu” tentu saja ini bermanfaat bagi kita kalau di aplikasiin ke dalam pembacaan
gas sensor, misalnya LED akan nyala jika seseorang minum melebihi kadar alkohol
tertentu.
Atau LED
nyala kalau tegangan yang terbaca “undervoltage”. Atau dapat juga sebagai alarm
jika nilai dari cahaya yang diterima berkurang. Atau kadar air tanah mulai
kering. Atau apa ya.... silahkan di tambahin sendiri deh...
Sesuai
tujuan pertama dulu deh ya... kita akan “menyalakan LED jika tegangan dibawah
nilai tertentu”. Yuk kita gabungin...
Langkah
pertamanya kita copyin dulu semua inisialisasi program. Pernah kita bahas juga
ini. Tapi buat ngingatin aja bagi yang belum tau, inisialisasi program adalah
pengenalan variabel-variabel saat penulisan program.
#define LED
13
#define tombol
6
int nilaitombol = 0;
#define potensiometer A0
float tegangan = 0;
int nilaiPotensio = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Oke
fix... lanjuuuttt...
Selanjutnya
kita copyin setup programnya menjadi satu. Kita langsung tambahin aja ya dengan
inisialisasi program
#define LED
13
#define tombol
6
int nilaitombol = 0;
#define potensiometer A0
float tegangan = 0;
int nilaiPotensio = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
pinMode (LED,OUTPUT);
pinMode (tombol,INPUT);
Serial.begin(9600);
lcd.begin(16,
2);
lcd.print("hello,
world!");// lcd.print("tegangan:");
}
Kita
ganti ya tuisan dalam “hello, word!” menjadi
“tegangan”. Hapus
aja tanda ”//” sampai ke awal tulisan “lcd.print(”hello, word!”); di awal. Selanjutnya kita copyin looping
programnya. Tapi bagian ini mesti kita susun sesuai kebutuhan kita. Pertama
kita baca tegangannya dulu. Selanjutnya kita tampilkan pembacaannya di LCD.
Barangkali aja kita bisa improv tulisannya nanti. Habis tu kita buat
persyaratan kapan LED kita hidup dan matikan.
#define LED
13
#define tombol
6
int nilaitombol = 0;
#define potensiometer A0
float tegangan = 0;
int nilaiPotensio = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
pinMode (LED,OUTPUT);
pinMode (tombol,INPUT);
Serial.begin(9600);
lcd.begin(16,
2);
lcd.print("tegangan:");
}
void loop()
{ // Bagian satu pembacaan tegangan
nilaiPotensio = analogRead(potensiometer);
tegangan = nilaiPotensio
* (5.0 / 1023.0);
Serial.println(tegangan);
// Bagian dua penulisan di LCD
lcd.setCursor(0,
1);
lcd.print(“ “);
// Bagian tiga persyaratan
menyalakan LED
nilaitombol = digitalRead(tombol);
if (nilaitombol == HIGH)
{
digitalWrite(LED,
HIGH);
}
else
{
digitalWrite(LED,
LOW);
}
}
Nah
begini nih jadinya kalo digabungin
semuanya. Selanjutnya kita perbaiki dulu beberapa sketch biar cocok dengan
tujuan yang kita inginkan dari program kita.
Dari
looping di atas, bagian awal adalah pembacaan tegangan. Bagian selanjutnya
adalah penulisan tulisan kosong di baris ke dua kolom pertama. Baris ketiga
adalah persyaratan untuk menyalakan LED.
Yuk kita
perbaiki.
Bagian
satu..
Pembacaan
tegangan udah cocok deh kayaknya.
Bagian
dua..
Kita
mesti memprint nilai tegangan ke kolom ke dua. Jadi bagian ini kita robah bray.
Nih uda contohin
// Bagian dua penulisan di LCD
lcd.setCursor(0,
1);
lcd.print(tegangan);
Bagian
3..
Persyaratan
menyalakan LED. LED akan nyala kalau tegangan dibawah 2,5 volt dan mati lagi di
atas tegangan tersebut.berarti kita tidak memakai tombol untuk menyalakan dan
mematikan LED kan bray. Tinggal ilangin semua variabel tombol aja kan
// Bagian tiga persyaratan menyalakan LED
nilaitombol = digitalRead(tombol);
if (nilaitombol == HIGH)
{
digitalWrite(LED,
HIGH);
}
else
{
digitalWrite(LED,
LOW);
}
Kita
robah menjadi
// Bagian tiga persyaratan menyalakan LED
if (tegangan <= 2.5)
{
digitalWrite(LED,
HIGH);
}
else
{
digitalWrite(LED,
LOW);
}
Yuk kita
gabungin lagi, dan membuang semua yang tidak di perlukan di sketch program kita
#define LED
13
#define potensiometer A0
float tegangan = 0;
int nilaiPotensio = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
pinMode (LED,OUTPUT);
Serial.begin(9600);
lcd.begin(16,
2);
lcd.print("tegangan:");
}
void loop()
{ // Bagian satu pembacaan tegangan
nilaiPotensio = analogRead(potensiometer);
tegangan = nilaiPotensio
* (5.0 / 1023.0);
Serial.println(tegangan);
// Bagian dua penulisan di LCD
lcd.setCursor(0,
1);
lcd.print(tegangan);
// Bagian tiga persyaratan
menyalakan LED
if (tegangan <= 2.5)
{
digitalWrite(LED,
HIGH);
}
else
{
digitalWrite(LED,
LOW);
}
}
Coba
copyin lagi ya bray ke sketch programnya dan lihat keajaiban yang terjadi
setelah kita putar-putar potensiometer kita
baca juga: Menggabungkan Beberapa Sketch Program Arduino 2
baca juga: Menggabungkan Beberapa Sketch Program Arduino 3
baca juga: Menggabungkan Beberapa Sketch Program Arduino 2
baca juga: Menggabungkan Beberapa Sketch Program Arduino 3
Demikian
dulu ya brai tutorial penggabungan sketchnya. Lain kali kita tambahin lagi ya
contoh-contoh programnya. Atau kali aja teman-teman punya pertanyaan seputar
pembuatan sketch program dengan menggabungkan beberapa modul atau peralatan.
Silahkan tulis komen dibawah, Uda akan dengan senang hati menjawabnya. Selamat
mencoba...
Intip juga ide tugas akhir dari kami
Intip juga ide tugas akhir dari kami
25 komentar:
Untuk biaya jasa pembuatan program arduino uno brapa bg?
komennya di jasa pembuatan tugas akhir deh om, atau langsung WA ya...
Mau tanya dong kak, kalo kalo sketch beberapa sensor pengukuran untuk ditampilkan di display secara berhantian kayak gimana ya?
sepertinya tinggal ngasih delay(); aja deh @ilham.
kira2 konsepnya seperti ini.
inisialisasi program
void setup()
{
....
}
void loop()
{
program pembacaan sensor 1;
delay(2000); // tunda program yang ke 2 selaama 2 detik
program pembacaan sensor 2;
delay(2000);
}
begitu kira2 @ilham
kalau seandainya kita mau buat dua modul untuk rx tx gimana?? kan rx tx pada arduino cuma 1, terimakasih bang
@riweldo Sayuna...
Tinggal masukin library software serial. Kemudian kita set, pin yang mana yg akan kita jadiin Rx dan Tx nya. Jadi deh..
Mas, bisa nggak arduino membuat output hasil dari respon input?
bisa om... misalnya fuzzy logic.
Misalnya saja kita membuat wipper helem motor dengan input rain drop sensor. kalau hujannya lebat, wippernya bergerak kencang. kalau hujannya gerimis, wippernya bergerak pelan. rain drop sensornya membaca analog dari 0 - 1023 di terjemahin ke kecepatan wippernya. atau banyak lagi contoh2 yang lain...
Bang ini kan ada project wattmeter saya, dalam sumber AC dan DC tapi saya mau menampilkan salah satu sumber jika salah satu sumber di aliri sumber dc maupun ac
Ini kita kira2 aja nih, karna g tau gambarnya. Pertama kita bikin pendeteksi dulu. jadi yang AC kita pasang di pin A0, dan DC di pin A1. pin mana yg nilainya lebih dari 0 volt... jika salah satu port tersebut mendeteksi lebih dari 0V, itu input yg aktif. sementara pendeteksi arus kita pasang di pin A3. gitu aja tu @Muhammad Deazhar
makaish min
Alat pemisah lcd
Mas nanya, saya ada 2 program, satunya untuk sensor dan satunya untuk gerak servo, gmn caranya agar dua2 nya jalan sekaligus, misal saat servo gerak, sensor jg berhalan
Sebenarnya microcontroller seperti arduino menjalankan instruksi 1 per satu. Jika sensor mencapai nilai tertentu, servo bergerak X derajat. Begitu kan...
Seperti tutorial ini atau yg lainnya. Deklarasi kan sensornya, setup program, kemudian pada bagian looping.
If sensor bernilai x maka servo bergerak X derajat
Kalau menggabungkan scetch Rfid dan GPS neo 6 m gimana ya mas, jadi jika data rfid salah maka mengirimkan data gps dari sms
Om kalo menggabungkan 4 sketch sensor bagaimana ya programnya ? Misal sensornya Soil moisture, water level, sensor Arus, dan sensor ldr ?
yuhuuu...bermanfaat sekali
Pinset bengkok
hallo uda.. saya minta tolong bantuan nya saya bingung untuk menggabungkan 2 sketcth saya saat ini
yaitu program untuk memberi makan ayam, saya minta bantuan uda untuk merapikan dan membenar kan program saya , disini saya menggunakan board nodeMcu + blynk untuk menggunakan sensor ultrasonik , untuk membaca sisa pakan nya, sudah bisa , dan untuk menggabungkan dgn sketch RTC dan control Servo saya tidak Tau bagaimana cara nya didalam ini ada prgram relay nya saya tidak menggunakan nya mohon bantuan untuk menghapus ny , mohon bantuan nya
#include
DS3231 rtc(SDA,SCL);
const int relay=A3;
bool on=LOW;
bool off=HIGH;
String hari;
String waktu;
String tanggal;
void setup() {
rtc.begin();
Serial.begin(9600);
pinMode(relay,OUTPUT);
digitalWrite(relay,off);
//rtc.setDOW(MONDAY);
//rtc.setTime(15,24,0);
//rtc.setDate(19,10,2020);
}
void loop() {
hari=rtc.getDOWStr();
waktu=rtc.getTimeStr();
tanggal=rtc.getDateStr();
Serial.println(waktu);
if(waktu=="15:31:00"){
digitalWrite(relay,on);
delay(2000);
digitalWrite(relay,off);
}
delay(1000);
}
dan ini program Ultrasonik nya
/*
********************************************
prateek singh
www.prateeks.in
********************************************
*/
#define TRIGGER D0
#define ECHO D2
// NodeMCU Pin D0 > TRIGGER | Pin D2 > ECHO
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include
#include
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "e8mQTXcGcScCtKA7dtzq9_dxn20JVIAk";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "AndroidAP";
char pass[] = "00000000";
void setup() {
Serial.begin (9600);
Blynk.begin(auth, ssid, pass);
Blynk.begin(auth, ssid, pass, "blynk-cloud.com",8080);
pinMode(TRIGGER, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(BUILTIN_LED, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(TRIGGER, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER, LOW);
duration = pulseIn(ECHO, HIGH);
distance = (duration/2) / 29.1;
if (distance <=200) {
Blynk.virtualWrite(V0, 255);
}
else {
Blynk.virtualWrite(V0, 0);
}
if (distance <= 35) {
Blynk.virtualWrite(V1, 255);
}
else {
Blynk.virtualWrite(V1, 0);
}
if (distance <= 30) {
Blynk.virtualWrite(V2, 255);
}
else {
Blynk.virtualWrite(V2, 0);
}
if (distance <= 25) {
Blynk.virtualWrite(V3, 255);
}
else {
Blynk.virtualWrite(V3, 0);
}
if (distance <= 20) {
Blynk.virtualWrite(V4, 255);
}
else {
Blynk.virtualWrite(V4, 0);
}
Serial.print(distance);
Serial.println("Centimeter:");
Blynk.virtualWrite(V5, distance);
delay(200);
Blynk.run();
Serial.print(distance);
Serial.println("Centimeter:");
Blynk.virtualWrite(V6, distance);
delay(100);
Blynk.run();
}
saya mau nanya bg cara menggabungkan program sensor arus menggunakan relay dan lcd menggunakan keypad
saya mau nanya bg cara menggabungkan program sensor arus menggunakan relay dan lcd menggunakan keypad
saya mau nanya bg cara menggabungkan program sensor arus menggunakan relay dan lcd menggunakan keypad
Makadih banyak ya kak atas pemberian infonya sy tertarik dan mau sy praktek kan
Gan.saya lagi belajar buat progam buat nyalain servo dan jam dalam 1 arduino.apkah mngkin bisa...?
Terima kasih
@ mamah chyntia
Bisa banget pastinya kak.
Salam kenal Bang, bagaimana codingnya klo dari output sensor berat-1 ditambahkan/dijumlahkan output sensor berat-2 sehingga menjadi jumlah total (sensor berat-1 + sensor berat-2)
Sebelum dan sesudahnya banyak terima kasih Bang,
sya tunggu kabar baiknya yaaa.......
Wassalamua'laikum wr wb.
KAKKKK MAKASIH AJWSUWHWHWH AKHIRNYA STELAH NGOTAK-NGATIK TRUS LIAT INI DIA DONE JG WKWJIWWJWJSN T___T
Posting Komentar