// Memasukan pustaka yang diperlukan:
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
// Mendefinisikan jenis perangkat keras, ukuran, nomor pin keluaran:
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 4 // Definisi jumlah display yang terhubung
#define CLK_PIN 13 // CLK atau SCK
#define DATA_PIN 11 // DATA atau MOSI
#define CS_PIN 10 // CS atau SS
// Membuat instan baru dari class MD_Parola dengan hardware koneksi SPI:
MD_Parola ziDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
#include <LiquidCrystal_I2C.h> //masukkan library liquidCrystal_I2C.h
LiquidCrystal_I2C lcd(0x27, 16, 2); //gunakan variable lcd sebagai obyek lcd
const int pinBuzzer1=11;
const int pinBuzzer2=12;
const int pinBuzzer3=13;
const int pinBuzzer4=10;
const int buttonPin1 = 0;
const int buttonPin2 = 1;
const int buttonPin3 = 2;
const int buttonPin4 = 3;
const int trigPin = 6;
const int echoPin = 7;
long duration;
int jarakCm;
int jarakInch;
void setup(){
// Iinisialisasi objek:
ziDisplay.begin();
// Mengatur kecerahan (brightness) display (0-15):
ziDisplay.setIntensity(0);
// Membersihkan display;
ziDisplay.displayClear();
ziDisplay.displayText
(" TUBES MIKRO ", PA_CENTER, 50, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
lcd.begin(16,2);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
pinMode(pinBuzzer1, OUTPUT);
pinMode(pinBuzzer2, OUTPUT);
pinMode(pinBuzzer3, OUTPUT);
pinMode(pinBuzzer4, OUTPUT);
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
pinMode(buttonPin4, INPUT_PULLUP);
}
void loop(){
if (ziDisplay.displayAnimate()) {
ziDisplay.displayReset();
}
lcd.setCursor(3,0);
lcd.print("RUSDIN");
delay(1000);
lcd.clear();
lcd.setCursor(5,1);
lcd.print("21650058");
delay(1000);
lcd.clear();
if (digitalRead(buttonPin1) == LOW) {
playTone(pinBuzzer1, 330, 500); // Nada E
delay(100);
}
if (digitalRead(buttonPin2) == LOW) {
playTone(pinBuzzer2, 392, 500); // Nada G
delay(100);
}
if (digitalRead(buttonPin3) == LOW) {
playTone(pinBuzzer3, 494, 500); // Nada B
delay(100);
}
if (digitalRead(buttonPin4) == LOW) {
playTone(pinBuzzer4, 523, 500); // Nada C
delay(100);
}
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
jarakCm = duration * 0.034 / 2;
jarakInch = duration * 0.0133 / 2;
Serial.print("Jarak: ");
Serial.print(jarakCm);
Serial.println(" cm");
Serial.print("JarakInch: ");
Serial.print(jarakInch);
Serial.println(" inch");
delay(500);
}
void playTone(int buzzerPin, int frequency, int duration) {
tone(buzzerPin, frequency, duration);
delay(duration); // Menunggu sampai nada selesai sebelum melanjutkan
noTone(buzzerPin); // Mematikan nada
}