Dostlar merhaba sizden bir proje konusunda yardım almak istiyorum. Arduino'da segment display ile bir proje yaptım. Bu proje de anahtarı açınca sayaç yukarı doğru ilerliyor. Kapatınca ise geriye doğru sayıyor. Fakat anahtar kapanınca sayaç 9 rakamı(son rakama) gelip ileri veya geri sayıyor. Ben bunu mesela 5 sayısın da kapatıldı, oradan itibaren geri veya ileri saymasını istiyorum yardımcı olursanız sevinirim.
C++:
void setup(){
for (int i=2;i<=8;i++) pinMode(i, OUTPUT);
pinMode(9, INPUT);//1 ileri 0 geri seçme anahtarı.
}
void loop(){
sifir(); delay(1000);
bir(); int don = 1; delay(1000);
iki();int don = 2; delay(1000);
uc();int don = 3; delay(1000);
dort();int don = 4; delay(1000);
bes();int don = 5; delay(1000);
alti();int don = 6;delay(1000);
yedi();int don = 7; delay(1000);
sekiz();int don = 8; delay(1000);
dokuz();int don = 9; delay(1000);
if (digitalRead(9)==1) yukarisay();
if (digitalRead(9)==0)asagisay(};
void yukarisay(){
sifir(); delay(1000);
bir(); delay(1000);
iki(); delay(1000);
uc(); delay(1000);
dort(); delay(1000);
bes(); delay(1000);
alti(); delay(1000);
yedi(); delay(1000);
sekiz(); delay(1000);
dokuz(); delay(1000);
}
void asagisay(){
if()
dokuz(); delay(1000);
sekiz(); delay(1000);
yedi(); delay(1000);
alti(); delay(1000);
bes(); delay(1000);
dort(); delay(1000);
uc(); delay(1000);
iki(); delay(1000);
bir(); delay(1000);
sifir(); delay(1000);
}
void sifir() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 1); //e
digitalWrite(7, 1); //f
digitalWrite(8, 0); //g
}
void bir() {
digitalWrite(2, 0); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 0); //d
digitalWrite(6, 0); //e
digitalWrite(7, 0); //f
digitalWrite(8, 0); //g
}
void iki() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 0); //c
digitalWrite(5, 1); //d
digitalWrite(6, 1); //e
digitalWrite(7, 0); //f
digitalWrite(8, 1); //g
}
void uc() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 0); //e
digitalWrite(7, 0); //f
digitalWrite(8, 1); //g
}
void dort() {
digitalWrite(2, 0); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 0); //d
digitalWrite(6, 0); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}
void bes() {
digitalWrite(2, 1); //a
digitalWrite(3, 0); //b+
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 0); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}
void alti() {
digitalWrite(2, 1); //a
digitalWrite(3, 0); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 1); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}
void yedi() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 0); //d
digitalWrite(6, 0); //e
digitalWrite(7, 0); //f
digitalWrite(8, 0); //g
}
void sekiz() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 1); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}
void dokuz() {
digitalWrite(2, 1); //a
digitalWrite(3, 1); //b
digitalWrite(4, 1); //c
digitalWrite(5, 1); //d
digitalWrite(6, 0); //e
digitalWrite(7, 1); //f
digitalWrite(8, 1); //g
}