// Library untuk mengendalikan Motor DC
#include <AFMotor.h>
// Inisialisasi objek Motor DC
AF_DCMotor motor(1);
// Pin LED
const int ledPin = 2;
// Pin Push Button
const int buttonPin = 3;
// Pin 7 Segment
const int segmentPins[] = {4, 5, 6, 7, 8, 9, 10};
// Deklarasi array untuk angka yang ditampilkan di 7 Segment
const byte numbers[] = {
B11000000, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};
int count = 0; // Jumlah barang terhitung
void setup() {
// Mengatur pin-mode LED dan Push Button
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
// Mengatur pin-mode 7 Segment
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// Memulai Serial Communication
Serial.begin(9600);
// Memulai motor dengan kecepatan 0
motor.setSpeed(0);
motor.run(RELEASE);
}
void loop() {
// Membaca status Push Button
int buttonState = digitalRead(buttonPin);
// Menghidupkan atau mematikan LED berdasarkan status Push Button
digitalWrite(ledPin, buttonState);
// Menghitung jumlah barang jika Push Button ditekan
if (buttonState == LOW) {
count++;
delay(500); // Delay untuk menghindari multiple counting
}
// Menampilkan jumlah barang di 7 Segment
displayNumber(count);
}
// Fungsi untuk menampilkan angka pada 7 Segment
void displayNumber(int number) {
// Mematikan semua segmen
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], HIGH);
}
// Mengubah angka menjadi digit 7 Segment
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], bitRead(numbers[number], i));
}
}