int A = 7;
int B = 8;
int C = 9;
int D = 10;
int E = 11;
int F = 12;
int G = 13;
int satuan=10;
int tahan = 10;
float potensiometer = A0;
int nilai_potensiometer;
int pernah;
void setup() {
pinMode (A, OUTPUT);
pinMode (B, OUTPUT);
pinMode (C, OUTPUT);
pinMode (D, OUTPUT);
pinMode (E, OUTPUT);
pinMode (F, OUTPUT);
pinMode (G, OUTPUT);
pinMode (potensiometer, INPUT);
Serial.begin(9600);
}
void seven_segmen() {
if (satuan == 9)
{
digitalWrite (7, 1); // segmen 9
digitalWrite (8, 1);
digitalWrite (9, 1);
digitalWrite (10, 1);
digitalWrite (11, 0);
digitalWrite (12, 1);
digitalWrite (13, 1);
delay(500);
}
if (satuan == 8)
{
digitalWrite (7, 1); // segmen 8
digitalWrite (8, 1);
digitalWrite (9, 1);
digitalWrite (10, 1);
digitalWrite (11, 1);
digitalWrite (12, 1);
digitalWrite (13, 1);
delay(500);
}
if (satuan == 7)
{
digitalWrite (7, 1); // seven segmen 7
digitalWrite (8, 1);
digitalWrite (9, 1);
digitalWrite (10, 0);
digitalWrite (11, 0);
digitalWrite (12, 0);
digitalWrite (13, 0);
delay(500);
}
if (satuan == 6)
{
digitalWrite (7, 1); //seven segmen 6
digitalWrite (8, 0);
digitalWrite (9, 1);
digitalWrite (10, 1);
digitalWrite (11, 1);
digitalWrite (12, 1);
digitalWrite (13, 1);
delay(500);
}
if (satuan == 5)
{
digitalWrite (7, 1); //seven segmen 5
digitalWrite (8, 0);
digitalWrite (9, 1);
digitalWrite (10, 1);
digitalWrite (11, 0);
digitalWrite (12, 1);
digitalWrite (13, 1);
delay(500);
}
if (satuan == 4)
{
digitalWrite (7, 0); // untuk seven segmen 4
digitalWrite (8, 1);
digitalWrite (9, 1);
digitalWrite (10, 0);
digitalWrite (11, 0);
digitalWrite (12, 1);
digitalWrite (13, 1);
delay(500);
}
if (satuan == 3)
{
digitalWrite (7, 1); // untuk seven segmen 3
digitalWrite (8, 1);
digitalWrite (9, 1);
digitalWrite (10, 1);
digitalWrite (11, 0);
digitalWrite (12, 0);
digitalWrite (13, 1);
delay(500);
}
if (satuan == 2)
{
digitalWrite (7, 1); // untuk seven segmen 2
digitalWrite (8, 1);
digitalWrite (9, 0);
digitalWrite (10, 1);
digitalWrite (11, 1);
digitalWrite (12, 0);
digitalWrite (13, 1);
delay(500);
}
if (satuan == 1)
{
digitalWrite (7, 0); // untuk seven segmen 1
digitalWrite (8, 1);
digitalWrite (9, 1);
digitalWrite (10, 0);
digitalWrite (11, 0);
digitalWrite (12, 0);
digitalWrite (13, 0);
delay(500);
}
if (satuan == 0)
{
digitalWrite (7, 1); // untuk seven segmen 0
digitalWrite (8, 1);
digitalWrite (9, 1);
digitalWrite (10, 1);
digitalWrite (11, 1);
digitalWrite (12, 1);
digitalWrite (13, 0);
delay(500);
}
}
void loop() {
//variabel penampung nilai potensiometer);
int nilai_potensiometer=analogRead(potensiometer);
Serial.println(nilai_potensiometer);
float voltage = nilai_potensiometer * (5.0 / 1023.0); // Mengkonversi nilai analog menjadi tegangan (0-5V)
//
Serial.print("Nilai ADC: ");
Serial.print(nilai_potensiometer); // Mencetak nilai ADC
Serial.print(", Tegangan: ");
Serial.print(voltage, 3); // Mencetak tegangan
Serial.println(" volt");
delay(1000); // Tunggu 1 detik sebelum membaca ulang
//a) Apabila nilai ADC potensio menunjukkan nilai antara 0-150, maka 7 segmen akan
//menampilkan angka 5
if ( nilai_potensiometer>=0 && nilai_potensiometer<=150) {
seven_segmen();
satuan=5;
pernah=1;
}
//b) Apabila nilai ADC potensio menunjukkan nilai antara 151-300, maka 7 segmen akan
//menampilkan angka 6
if ( nilai_potensiometer>=151 && nilai_potensiometer<=300) {
seven_segmen();
satuan=6;
pernah=1;
}
//c) Apabila nilai ADC potensio menunjukkan nilai antara 301-450, maka 7 segmen akan
//menampilkan angka 7
if ( nilai_potensiometer>=301 && nilai_potensiometer<=450) {
seven_segmen();
satuan=7;
pernah=1;
}
//d) Apabila nilai ADC potensio menunjukkan nilai antara 601-750, maka 7 segmen akan
//menampilkan angka 8
if ( nilai_potensiometer>=601 && nilai_potensiometer<=750) {
seven_segmen();
satuan=8;
pernah=1;
}
//e) Apabila nilai ADC potensio menunjukkan nilai antara 751-900, maka 7 segmen akan
//menampilkan angka 9
if ( nilai_potensiometer>=751 && nilai_potensiometer<=900) {
seven_segmen();
satuan=9;
pernah=1;
}
//f) Apabila nilai ADC potensio menunjukkan nilai lebih besar dari 900, maka 7 segmen
//akan menampilkan angka dengan hitungan mundur sebanyak 1 kali putaran dari 9 //sampai 0 dengan delay 500 ms.
//g) Setiap perubahan nilai ADC potensio ditampilkan pada serial monitor.
if (nilai_potensiometer > 900 && pernah==1) {
satuan=9;
seven_segmen();
for(int i=11; i>0; i--){
satuan--;
seven_segmen();
delay(500);
}
pernah=0;
}
delay(100);
}