WSPR: Arduni DS1302 Timer - LED Monitor Status
Jump to navigation
Jump to search
Code
// time RTC sync // pin PIN_AUD - kuning - audio SD // pin PIN_PTT - merah - PTT // pin PIN_SYN - hijau - NTP sync // // file WAV WSPR diambil dari rekaman wsjt-x #include <Time.h> #include "TMRpcm.h" #include <SD.h> #include <DS1302.h> // Init the DS1302 // DS1302 rtc([CE/RST], [I/O], [CLOCK]); DS1302 rtc(8, 7, 6); Time waktu; const int CS_PIN = 4; const int PIN_AUD = 13; const int PIN_PTT = 1; TMRpcm audio; void setup() { pinMode(PIN_AUD, OUTPUT); // LED kuning - blinking audio OK pinMode(PIN_PTT, OUTPUT); // LED merah - PTT ON digitalWrite(PIN_AUD, LOW); digitalWrite(PIN_PTT, LOW); // Set the clock to run-mode, and disable the write protection rtc.halt(false); rtc.writeProtect(true); audio.speakerPin = 9; audio.setVolume(3); pinMode(CS_PIN, OUTPUT); if (!SD.begin(CS_PIN)) digitalWrite(PIN_AUD, HIGH); } void loop() { waktu = rtc.getTime(); // int dataJam = waktu.hour; // int dataMenit = waktu.min; // int dataDetik = waktu.sec; if(audio.isPlaying()==0) digitalWrite(PIN_PTT, LOW); else digitalWrite(PIN_PTT, HIGH); if( waktu.min==0 ) if(audio.isPlaying()==0) { if (!SD.begin(CS_PIN)) digitalWrite(PIN_AUD, HIGH); digitalWrite(PIN_PTT, HIGH); audio.play("YC0MLC.WAV"); delay(90L*1000); } if( waktu.min==30 ) if(audio.isPlaying()==0) { if (!SD.begin(CS_PIN)) digitalWrite(PIN_AUD, HIGH); digitalWrite(PIN_PTT, HIGH); audio.play("YC0MLC.WAV"); delay(90L*1000); } delay(10*1000); }