Elliot Türkinson
Kilopat
- Katılım
- 28 Kasım 2020
- Mesajlar
- 4.320
- Makaleler
- 2
- Çözümler
- 74
Daha fazla
- Cinsiyet
- Erkek
Selamünaleyküm cümleten.
Son zamanlarda satranca sarmıştım, sağ olsun YouTube durur mu her yer satranç maçlarıyla doldu ama neyse ki bu durumdan şikayetçi değilim.
Turnuva maçlarında kullanılan saat dikkatimi çekti ve kendi kendime "acaba yapabilir miyim?" dedim ve işe koyuldum ortaya oldukça ilkel bir şey çıktı paylaşmak istedim.
Malzeme olarak:
Ayrıca az önce baktim satranç saatleri de öyle ucuz şeyler değilmiş.
Kodu aşağıda paylaşıyorum kod hakkında yorum yaparsanız işte "şu şu şekilde daha iyi olabilirdi.", "şunun yerine bunu kullansan daha kolay olurdu." vb. gibi yorumlar bana çok şey katar.
Projenin son hali: Rehber: Arduino ile satranç saati nasıl yapılır?
Son zamanlarda satranca sarmıştım, sağ olsun YouTube durur mu her yer satranç maçlarıyla doldu ama neyse ki bu durumdan şikayetçi değilim.
Turnuva maçlarında kullanılan saat dikkatimi çekti ve kendi kendime "acaba yapabilir miyim?" dedim ve işe koyuldum ortaya oldukça ilkel bir şey çıktı paylaşmak istedim.
Malzeme olarak:
- Arduino Uno (klon)
- 16x2 i2C LCD.
- 2 adet buton.
- 2 adet 10k direnç.
- Jumper ve minik breadboard.
Ayrıca az önce baktim satranç saatleri de öyle ucuz şeyler değilmiş.
Kodu aşağıda paylaşıyorum kod hakkında yorum yaparsanız işte "şu şu şekilde daha iyi olabilirdi.", "şunun yerine bunu kullansan daha kolay olurdu." vb. gibi yorumlar bana çok şey katar.
C++:
#include <LCD_I2C.h>
LCD_I2C lcd(0x27, 16, 2);
#define but1 2
#define but2 3
bool but1_state;
int min = 29;
int sec = 60;
int min2 = 29;
int sec2 = 60;
unsigned long new_time;
unsigned long old_time;
void timer1() {
if (digitalRead(but1) == 1) {
but1_state = !(but1_state);
while (digitalRead(but1) == 1) {
delay(100);
if (digitalRead(but1) == 0)
break;
}
}
if (digitalRead(but2) == 1) {
but1_state = !(but1_state);
while (digitalRead(but2) == 1) {
delay(100);
if (digitalRead(but2) == 0)
break;
}
}
switch (but1_state) {
case 0:
lcd.setCursor(9, 0);
lcd.print("min");
lcd.setCursor(13, 0);
lcd.print("sec");
lcd.setCursor(0, 0);
lcd.print("min");
lcd.setCursor(4, 0);
lcd.print("sec");
new_time = (millis() / 1000);
if (old_time < new_time) {
sec2--;
old_time = new_time;
lcd.clear();
}
if (sec2 < 1) {
min2--;
sec2 = 60;
}
lcd.setCursor(9, 1);
lcd.print(min2);
lcd.setCursor(13, 1);
lcd.print(sec2);
lcd.setCursor(0, 1);
lcd.print(min);
lcd.setCursor(4, 1);
lcd.print(sec);
break;
case 1:
lcd.setCursor(0, 0);
lcd.print("min");
lcd.setCursor(4, 0);
lcd.print("sec");
lcd.setCursor(9, 0);
lcd.print("min");
lcd.setCursor(13, 0);
lcd.print("sec");
new_time = (millis() / 1000);
if (old_time < new_time) {
sec--;
old_time = new_time;
lcd.clear();
}
if (sec < 1) {
min--;
sec = 60;
}
lcd.setCursor(0, 1);
lcd.print(min);
lcd.setCursor(4, 1);
lcd.print(sec);
lcd.setCursor(9, 1);
lcd.print(min2);
lcd.setCursor(13, 1);
lcd.print(sec2);
break;
}
}
void setup() {
lcd.begin();
lcd.backlight();
pinMode(but1, INPUT);
pinMode(but2, INPUT);
}
void loop() {
timer1();
}
Projenin son hali: Rehber: Arduino ile satranç saati nasıl yapılır?
Son düzenleyen: Moderatör: