Bel sekolah digital dimanfaatkan untuk menentukan waktu pertukaran kegiatan di sekolah-sekolah. Jadwal untuk sebuah sekolah berbeda dengan sekolah lainnya, baik perbedaan tingkat sekolah maupun zona waktunya. Selain itu terdapat juga perbedaan jadwal untuk masing masing hari, seperti senin pertama setiap bulan untuk upacara dan hari lainnya yang mempunyai kekhususan waktu. Bel sekolah digital berbasis arduino atau mikrokontroller lain memiliki kemampuan penjadwalan jam pelajaran tersebut. selain itu bel sekolah digital arduino juga mudah dalam pengembangan nantinya.
Dalam perancangan bel sekolah arduino ini dibatasi hanya sampai pengaplikasian tabel database arduino fleksibel yang bisa disesuaikan dengan kebutuhan. Bel sekolah berbasis arduino ini hanya berupa penerapan dasar saja yang bisa dikombinasikan dengan aplikasi Bel Sekolah fungsional lainnya.
Untuk pengembangannya bisa saja perangkat bel sekolah otomatis berbasis arduino ini ditambahkan sistem entri data dari bluetooth, wifi, PC dll. juga bisa ditambahkan sistem output multimedia seperti alarm, suara, running text, DMD dan lain-lain.
Kelebihan perancangan ini adalah:
- Tabel database jadwal fleksibel
- Pembacaan RTC dengan interupsi sehingga menghemat resource
- Pemanfaatan sleep mode
Komponen yang digunakan:
- Arduino Uno
- RTC DS3231
berikut skema / rangkaian bel sekolah dengan arduino:
dan program/sketch Arduino:
#include <DS3232RTC.h> #include <avr/sleep.h> #define SQWPin 12 struct Waktu { byte jam; byte menit; }; struct TabelMataPelajaran { byte aktif; Waktu waktu; byte hariAktif; byte mingguAktif; byte kegiatan; }; enum _kegiatan { JamPelajaran1, JamPelajaran2, JamPelajaran3, JamPelajaran4, JamPelajaran5, JamPelajaran6, JamPelajaran7, JamPelajaran8, JamPelajaran9, JamPelajaran10, JamPelajaran11, JamPelajaran12, JamPelajaran13, JamPelajaran14, JamPelajaran15, Masuk, Upacara, Istirahat, SelesaiIstirahat, Kepramukaan, Khusus, Pulang, PulangJumat, PulangSabtu }; volatile bool interupsiDetik; byte indexMataPelajaran; #define hariAktifSenin 1<<6 #define hariAktifSelasa 1<<5 #define hariAktifRabu 1<<4 #define hariAktifKamis 1<<3 #define hariAktifJumat 1<<2 #define hariAktifSabtu 1<<1 #define hariAktifMinggu 1<<7 String namaHari[] = {"Minggu","Senin","Selasa","Rabu","Kamis","Jum;at","Sabtu"}; #define _hariAktif(Sen,Sel,Rab,Kam,Jum,Sab,Mgu) (Mgu<<7)|(Sen<<6)|(Sel<<5)|(Rab<<4)|(Kam<<3)|(Jum<<2)|(Sab<<1) #define _mingguAktif(Mgu1,Mgu2,Mgu3,Mgu4,Mgu5) (Mgu1<<7)|(Mgu2<<6)|(Mgu3<<5)|(Mgu4<<4)|(Mgu5<<3) #define _waktu(Jam, Menit) {Jam, Menit} #define Aktif 1 #define TidakAktif 0 TabelMataPelajaran jadwalBelajar[35]; Waktu waktu; tmElements_t tm; void setup() { byte i = 0; //Senin jadwalBelajar[i++] = {Aktif, _waktu( 6, 45 ), hariAktifSenin, _mingguAktif(1,0,0,0,0), Upacara}; jadwalBelajar[i++] = {Aktif, _waktu( 6, 45 ), hariAktifSenin, _mingguAktif(0,1,1,1,1), JamPelajaran1}; jadwalBelajar[i++] = {Aktif, _waktu( 6, 45 ), _hariAktif(0,1,1,1,1,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran1}; jadwalBelajar[i++] = {Aktif, _waktu( 7, 30 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran2}; jadwalBelajar[i++] = {Aktif, _waktu( 8, 15 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran3}; jadwalBelajar[i++] = {Aktif, _waktu( 9, 0 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran4}; jadwalBelajar[i++] = {Aktif, _waktu( 9, 45 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), Istirahat}; jadwalBelajar[i++] = {Aktif, _waktu( 10, 15 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran5}; jadwalBelajar[i++] = {Aktif, _waktu( 11, 0 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran6}; jadwalBelajar[i++] = {Aktif, _waktu( 11, 45 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), Istirahat}; jadwalBelajar[i++] = {Aktif, _waktu( 12, 30 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran7}; jadwalBelajar[i++] = {Aktif, _waktu( 13, 15 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran8}; jadwalBelajar[i++] = {Aktif, _waktu( 14, 0 ), _hariAktif(1,1,1,0,0,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran9}; jadwalBelajar[i++] = {Aktif, _waktu( 14, 45 ), _hariAktif(1,1,1,0,0,0,0), _mingguAktif(1,1,1,1,1), JamPelajaran10}; jadwalBelajar[i++] = {Aktif, _waktu( 14, 0 ), hariAktifKamis, _mingguAktif(1,1,1,1,1), Kepramukaan}; jadwalBelajar[i++] = {Aktif, _waktu( 14, 45 ), hariAktifKamis, _mingguAktif(1,1,1,1,1), Khusus}; jadwalBelajar[i++] = {Aktif, _waktu( 15, 30 ), _hariAktif(1,1,1,1,0,0,0), _mingguAktif(1,1,1,1,1), Pulang}; jadwalBelajar[i++] = {Aktif, _waktu( 7, 25 ), hariAktifJumat, _mingguAktif(1,1,1,1,1), JamPelajaran2}; jadwalBelajar[i++] = {Aktif, _waktu( 8, 5 ), hariAktifJumat, _mingguAktif(1,1,1,1,1), JamPelajaran3}; jadwalBelajar[i++] = {Aktif, _waktu( 8, 45 ), hariAktifJumat, _mingguAktif(1,1,1,1,1), JamPelajaran4}; jadwalBelajar[i++] = {Aktif, _waktu( 9, 25 ), hariAktifJumat, _mingguAktif(1,1,1,1,1), Istirahat}; jadwalBelajar[i++] = {Aktif, _waktu( 9, 55 ), hariAktifJumat, _mingguAktif(1,1,1,1,1), JamPelajaran5}; jadwalBelajar[i++] = {Aktif, _waktu( 10, 35 ), hariAktifJumat, _mingguAktif(1,1,1,1,1), JamPelajaran6}; jadwalBelajar[i++] = {Aktif, _waktu( 11, 15 ), hariAktifJumat, _mingguAktif(1,1,1,1,1), PulangJumat}; indexMataPelajaran = i; Serial.begin(9600); Serial.println("Bel Sekolah menggunakan tabel database flexibel berbaasis Arduino"); Serial.println("Bisa ditambahkan input bluetooth, wifi, PC, komputer dll"); Serial.println("Bisa ditambahkan output multimedia seperti suara, alarm, running text, dmd dll"); Serial.println("https://www.project.semesin.com"); byte ControlRegister; RTC.readRTC(0x0E,&ControlRegister,1); ControlRegister &= ~(0x07<<2); RTC.writeRTC(0x0E, &ControlRegister,1); *digitalPinToPCMSK(SQWPin) |= bit (digitalPinToPCMSKbit(SQWPin)); PCIFR |= bit (digitalPinToPCICRbit(SQWPin)); PCICR |= bit (digitalPinToPCICRbit(SQWPin)); set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable(); ////Set waktu sekali saja // tm.Day = 1; // tm.Month = 4; // tm.Year = CalendarYrToTm(2018); // tm.Hour = 15; // tm.Minute = 24; // tm.Second = 00; // // time_t t = makeTime(tm); // tm.Wday = dayOfWeek(t); // RTC.write(tm); // TampilkanWaktu(); } ISR (PCINT0_vect) { if(digitalRead(SQWPin)) { interupsiDetik = true; } } void loop() { if(interupsiDetik) { interupsiDetik = false; RTC.read(tm); if(tm.Second == 0) { TampilkanWaktu();//*** byte hariKeDiTanggal1 = (((tm.Wday + 8) - (tm.Day % 7)) % 7); byte SeninKe = ((tm.Day + 7 - hariKeDiTanggal1) / 7); byte mingguKe = ((tm.Day + 8 - hariKeDiTanggal1) / 7) + 1; for(byte i=0; i<indexMataPelajaran ;i++) { if(jadwalBelajar[i].aktif) { if((jadwalBelajar[i].waktu.jam == tm.Hour) && (jadwalBelajar[i].waktu.menit == tm.Minute) && (jadwalBelajar[i].hariAktif & (1<<(8-tm.Wday))) && (jadwalBelajar[i].mingguAktif & (1<<(8-SeninKe)))) { TampilkanWaktu(); //Bisa ditambahkan sistem output switch(jadwalBelajar[i].kegiatan) { case JamPelajaran1: Serial.println("Jam Pelajaran 1"); break; case JamPelajaran2: Serial.println("Jam Pelajaran 2"); break; case JamPelajaran3: Serial.println("Jam Pelajaran 3"); break; case JamPelajaran4: Serial.println("Jam Pelajaran 4"); break; case JamPelajaran5: Serial.println("Jam Pelajaran 5"); break; case JamPelajaran6: Serial.println("Jam Pelajaran 6"); break; case JamPelajaran7: Serial.println("Jam Pelajaran 7"); break; case JamPelajaran8: Serial.println("Jam Pelajaran 8"); break; case JamPelajaran9: Serial.println("Jam Pelajaran 9"); break; case JamPelajaran10: Serial.println("Jam Pelajaran 10"); break; case JamPelajaran11: Serial.println("Jam Pelajaran 11"); break; case JamPelajaran12: Serial.println("Jam Pelajaran 12"); break; case JamPelajaran13: Serial.println("Jam Pelajaran 13"); break; case JamPelajaran14: Serial.println("Jam Pelajaran 14"); break; case JamPelajaran15: Serial.println("Jam Pelajaran 15"); break; case Masuk: Serial.println("Masuk"); break; case Upacara: Serial.println("Upacara"); break; case Istirahat: Serial.println("Istirahat"); break; case SelesaiIstirahat: Serial.println("Selesai istirahat"); break; case Kepramukaan: Serial.println("Kepramukaan"); break; case Khusus: Serial.println("Khusus"); break; case Pulang: Serial.println("Jam pelajaran telah selesai, sampai jumpa esok hari"); break; case PulangJumat: Serial.println("Jam pelajaran telah selesai, sampai jumpa minggu depan"); break; case PulangSabtu: Serial.println("Jam pelajaran telah selesai, sampai jumpa minggu depan"); break; default: Serial.println("Lainnya"); break; } } } } } } delay(100);//Selesaikan Serial nge print, hapus saja jika tidak diperlukan sleep_mode(); } void TampilkanWaktu() { Serial.print("Waktu = "); print2digits(tm.Hour); Serial.write(':'); print2digits(tm.Minute); Serial.write(':'); print2digits(tm.Second); Serial.print(", Tanggal = "); Serial.print(namaHari[tm.Wday-1]); Serial.write(' '); Serial.print(tm.Day); Serial.write('/'); Serial.print(tm.Month); Serial.write('/'); Serial.print(tmYearToCalendar(tm.Year)); Serial.println(); } void print2digits(int number) { if (number >= 0 && number < 10) { Serial.write('0'); } Serial.print(number); }
contoh Bel Sekolah Arduino Uno dengan output modul mini MP3 DFPlayer (library DFPlayer_Mini_Mp3.h) dan software serial : Bel_Sekolah_tanpa_interupsi.ino
Bel sekolah bluetooth dengan kontrol android : disini
maaf om, boleh minta library ny gak?
aku pake lib ds3231 malah error
Library yang saya pake dalam memprogram DS3231:
https://www.project.semesin.com/wp-content/uploads/2018/04/DS3232RTC.zip
tanya gan, dari rtc ke pin 12 itu harus dipasang yah, biasanya scl dan sda saja
dari RTC namanya pin SQW (square wave) berlaku untuk DS1307 dan DS3231, bila disetting aktif, pin ini akan mengeluarkan pulsa sebesar 1Hz, 4096Hz, 8192Hz atau 32768Hz, dalam sketch ini bertindak sebagai interrupt/reqeust.
Tujuan membaca sinyal SQW (1Hz) adalah agar pembacaan detik oleh arduino hanya ketika detik RTC telah berubah ditandai dengan RTC low->high, jadi resource arduino tidak boros.
Untuk perintah menyalakan alarm menggunakan DFPlayer, kodingnya diset dimananya mas? kasih contoh sketcnya dong mas….
Contoh penggunaan output Mini MP3 DFPlayer
nah…. pas saya include DFpnya malah jadi eror mas… gimana tuh?
pesan eror:
libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin): In function `SoftwareSerial::read()’:
(.text+0x0): multiple definition of `__vector_3′
sketch\Bel_2.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino/Genuino Uno.
terjadi karena bentrok antara interupt yang digunakan
Software serial dan
baris program ini
alternatif pemecahan:
* Tanpa menggunakan softwareSerial tetapi menggunakan HardwareSerial (Serial biasa pin 0 dan 1)
kelemahannya bongkar pasang pin tx saat upload.
* Menghapus baris *digitalPinToPCMSK(SQWPin) |= bit (digitalPinToPCMSKbit(SQWPin)); (dan 2 lainnya)
artinya menghilangkan fungsi SQW => pembacaan RTC pada umumnya
void loop() {
RTC.read(tm);
delay(1000); //perkiraan 1 detik
}
* Memindahkan pin SQW ke jalur pinChange interupsi selain _vector_3
catatan:
pin SQW pada RTC berfungsi membangkitkan gelombang 1Hz (1 pulsa per detik) yang dideteksi melalui interupsi. Kegunaanya sebagai sinyal bahwa rtc detik telah berubah, yang akhirnya untuk menghemat clock (resources) arduino, dari pada menggunakan fungsi delay() atau millis().
ini saya kasih contoh tanpa interupsi
Bel_Sekolah_tanpa_interupsi.ino
nb:belum ditest pake harware, hanya compile sukses.
halo mas gmn kabarnya?
lngsung ke laptop yaaaa…..ni kisahnya saya nyoba bkin sket sndri buat alarm. Dapet kendala pas di program relay. awal arduino menyala,relay lngsung on. padahal pngennya on pas waktu alarmnya aja. Bisa bntuin koreksi mas?
<#include
#include
#include
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
DS3231 rtc(SDA, SCL);
Time t;
#define inrelay 8
#define buz 11
int Hor;
int Min;
int Sec;
void setup()
{
Wire.begin();
rtc.begin();
Serial.begin(9600);
pinMode(inrelay, OUTPUT) ;
pinMode(buz, OUTPUT);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print(“ALARM”);
lcd.setCursor(0,1);
lcd.print(“JAM “);
// Buat set jamnya tp gak aq pake soalnya dah di set sebelumnya
//rtc.setDOW(WEDNESDAY); // Set hari
//rtc.setTime(12, 0, 0); // Set jamnya
//rtc.setDate(1, 1, 2014); // Set tanggal
delay(2000);
}
void loop()
{
t = rtc.getTime();
Hor = t.hour;
Min = t.min;
Sec = t.sec;
lcd.setCursor(0,0);
lcd.print(“Time: “);
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print(“Date: “);
lcd.print(rtc.getDateStr());
if( Hor == 8 && (Min == 55 || Min == 56)) //ini durasi waktu alarmnya mas contoh jam 8.55 selama 1 menit
{
Buzzer();
Buzzer();
lcd.clear();
lcd.print(“WAKTUNYA”);
lcd.setCursor(0,1);
lcd.print(“MAKAN”);
Buzzer();
Buzzer();
}
delay(1000);
}
void Buzzer()
{
digitalWrite(buz,HIGH);
delay(500);
digitalWrite(buz, LOW);
delay(500);
}
>
saya bingung ama koding relaynya mas… kebalik mulu. kasih contoh ya mas thanks
Inisialisasi Relay (umumnya inverting mode)
Aktifasi relay
halo mas gmn kabarnya?
lngsung ke laptop yaaaa…..ni kisahnya saya nyoba bkin sket sndri buat alarm. Dapet kendala pas di program relay. awal arduino menyala,relay lngsung on. padahal pngennya on pas waktu alarmnya aja. Bisa bntuin koreksi mas?
relaynya kok kelip2 jg mas? kalau dibikin nyala trus gk kedip2 gmn mas?
untuk penambahan jadwalnya gmn mas?
saya coba
malah eror di bagian yg ini
tambahkan Hx dan Mx untuk masing-masing jadwal (x=nomor jadwal)
if(
( Hor == H1 && (Min == M1 || Min == M1+1)) ||
( Hor == H2 && (Min == M2 || Min == M2+1)) ||
( Hor == Hx && (Min == Mx || Min == Mx+1))
……..
}
atau buat dalam array jadwal
ternyata untuk menyalakan relay tanpa putus selama 1 mnit durasi alarm harus seperti ini mas…… trus digit low nya ditaruh dmn ya mas agar relay mati setelah durasi alarm 1 menit?
Oh ternyata diginikan bs mati
ada efek jeleknya gk klo pake ini?
boleh saja begitu, namun tidak efektif
boleh ksih contoh yg efektif mz? tambahin 2 jadwal utk on dan off nya.
1. bagaimana jika kita ingin delaynya 37 detik saja?
2. apa yang terjadi jika jadwal ‘on’ berikutnya 30 detik lagi?
3. apa yang dilakukan jika ingin mematikan buzzer secara manual?
kelemahannya ternyata tdk bs input digit 8 dan 9, muncul pesan” invalid digit in octal constant”
nilai angka jangan dimulai dengan angka nol,
kalo mulai dengan ‘0’ misalnya pada ’08’, ’09’ akan dianggap bilangan oktal basis 8 bukan basis 10
mas mau nanya, utk setting waktu jadwal pelajarannya yg mana mz? misal jadwal pelajaran pertama adalah jam 07.00 sampai jam 09.00 dengan keluar output keterangan jam pelajaran pada running text
jadwalBelajar[i].waktu.jam
jadwalBelajar[i].waktu.menit
disetting pada baris
Mksudnya gmn mas? bisa kasih contoh beserta keterangannya?
itu jam dan menit mulai,
untuk jam dan menit selesai berarti akan sama dengan jadwal berikutnya yang aktif.
izin copas mas lagi ada tugas projek hehe 🙂
Assalamu’alaikum wrwb,
Alhamdulillah belajar project JWS nya sudah berhasil dan sudah terpampang di masjid kampung saya, semoga Jariyahnya juga mengalir ke mas Asep ila yaumil qiyamah.
sekarang saya semangat untuk belajar membuat bel sekolah arduino ini semoga nanti bisa saya aplikasikan di sekolah tempat saya mengajar, yang selama ini masih menggunakan aplikasi bel dengan laptop. Tutorial bel sekolah ini sudah saya coba tapi ada kendala kenapa ketika sudah masuk waktu sesuai dg yang disetting koq gak ada bunyi dari rangkaian bel ini.
apa mungkin koneksi pin ada yang salah ya mas? ini pin yang saya hubungkan sudah sesuai:
RTCDS3231 SDA ke pin A4 arduino,
SCL ke pin A5 arduino
SQW ke pin 12
MP3 DFPlayer: RX ke pin 10 arduino
TX ke pin 11 arduino
2 pin Spk_1 dan Spk_2 sudah terhubung ke speaker.
SD card sudah terisi audio MP3 sesuai pesan bel masuk dan istirahat dengan nama file: 1.mp3, 2.mp3, 3.mp3, dst.
apakah karena nama filenya mp3 yang salah ya? Mohon pencerahannya, trimakasih
Wassalamu’alaikum wrwb.
Kalo mp3 menggunakan tf player nama file nya 0000.mp3 dst
Kalo mp3 menggunakan mp3 shield nama file nya track0000.mp3 dst
catatan : sebelum dicoba di bel sekolah, coba dengan program example dahulu
ya mas ini kalo dicoba pakai sketch xamplenya bisa bunyi normal, tapi kenapa ya kalo pakai sketch bel masih belum aktif suaranya?
sebelumnya memang ada masalah bentrok interupsi,
kalo masalah nga bunyi ini detailnya seperti apa (pin, serial/softserial)
cat: coba juga play mp3 dalam setup()
gan kalau input jadwalnya menggunakan keypad gimana?
Bisa tetapi agak rumit tentunya, karena banyaknya item yang harus di setting
kira kira jumlah hari x jumlah item jam pelajaran x (jam, menit, index pelajaran, dan variabel dinamis)
Ass Maaf gan sya lagi buat tugas akhir membuat bell otomatis, alat yg saya pke arduino, rtc ds1307, dfplayermini, lcd 16×2, speaker saya bingung di rangkaian nya menghubungkan antar pin nya, bisa tolong gambarin conroh rangkaian nya min? Tolong
Arduino memiliki pin-pin yang fleksibel dan pin khusus (seperti i2c, spi, hardware serial)
jadi kalo merakit rangkaian tidak terlalu sulit, hanya antara fisik rangkaian dan sketch harus sama posisi pinnya.
dalam kasus ini ds1307 (I2C) posisi pin (wajib) di SCL dan SDA
LCD 16×2 terserah mau dipasang dimana
DF player mini terserah mau dipasang dimana (untuk uno semua pin bisa digunakan sebagai softserial)
Kira kira ada alat yang kurang ga min?
Tergantung kebutuhan seperti apa
saya coba buat core program saja, banyak variasi yang bisa dibuat
Untuk df player mini pin yg di gunakan yg mana aja min?
Saya biasanya pake rx=2 tx=3
om ini output nya apa ya ?
Keluaran-nya di serial monitor
minta skema rangkain dan library nya gan
Rangkaian proyek ini minimal saja, dengan arduino dan rtc ds3231 skema seperti di artikel
library DS3232RTC-master.zip
update bel sekolah bluetooth dengan kontrol android : disini
kalo mau ditambahin relay buat nyalaian power ampli, sketchnya taruh dimana ya?
dalam bracket setara baris 174, jika program mencapai baris ini berarti ada jadwal yang masuk
gan gak jalan kenapa ya diem di
Serial.println(“Bel Sekolah menggunakan tabel database flexibel berbaasis Arduino”);
Serial.println(“Bisa ditambahkan input bluetooth, wifi, PC, komputer dll”);
Serial.println(“Bisa ditambahkan output multimedia seperti suara, alarm, running text, dmd dll”);
Serial.println(“https://www.project.semesin.com”);
cek rangkaian rtc, pin sqw terhubung ke pin 12
gan…ini ada yang harus dirubah lagi gak ya
mohon izin mencoba dan memakai sketch nya…
terima kasih sebelumnya
menambahkan input melalui bluetooth agar jadwal bs dirubah gmn mas??
contoh jadinya kira2 seperti ini https://www.project.semesin.com/2018/10/15/bel-sekolah-arduino-dengan-kontrol-android/
Permisi mas mau tanya saya ingin menampilkan waktu RTC pada LCD saat saya coba mengapa detiknya tidak berjalan mas, hanya menit dan jam yang berjalan, mohon solusinya mas
sketch ini menggunakan pinSQW sebagai interupsi detik,
::pastikan pin sqw rtc terhubung ke pin 12 arduino
kemudian tambahkan kode lcd dalam scope interupsiDetik
if(interupsiDetik)
{
interupsiDetik = false;
RTC.read(tm);
****
tambahkan disini
****
if(tm.Second == 0) //<< scope menit {
Permisi mas mau tanya, kode lcd dalam scope interupsi detik itu yang dimana ya mas.terimakasih
if(interupsiDetik)
{
interupsiDetik = false;
RTC.read(tm);
TampilkanWaktu();
if(tm.Second == 0) //< < scope menit {
Terimakasih mas, maaf mas mau tanya lagi kode lcd itu memanggil void TampilkanWaktu ya mas
iya, bisa seperti itu (contoh komen atas)
Terimakasih banyak ilmunya mas
Permisi mas maaf saya mau tanya lagi seandainya saya ingin membuat pemanggil guru saat pergantian pelajaran, bisakah saya masukkan fungsi baru seperti ‘if’ ke dalam case pada jam pelajaran tertentu atau memasukkan fungsi di luar switch case
dalam konteks programming
1. ‘if’ ke dalam case : bisa
2. fungsi di luar switch case : bisa
Terimakasih mas, Tapi apakah case itu dapat menunggu atau bejalan sampai fungsi itu selesai baru kembali menampilkan waktu ?
bisa, dan memang seperti itu
Pak misalnya saya menggunakan relay, saat case jam pertama relay aktif tapi saat case itu berhenti dia tetap aktif atau kembali ke posisi awal ?
Terus saya ingin mematikan relaynya di case lain seperti apa…
Terimakasih
1? tetap aktif
2? bisa dimatikan di case lain
Terimakasih mas
Permisi mas, maaf saya mau tanya untuk mode tidur pada LCD itu di mulai saat apa ya mas?
mode tidur itu seperti apa ya,
kalo sketch di halaman ini, kalo tidak ada jadwal, maka akan ditampilkan “–:–“