#Include SoftwareSerial
#Include SoftwareSerial
h"
#include "DFRobotDFPlayerMini.h"
#include "U8glib.h"
#define buton1 4
#define buton2 12
#define buton3 13
#define kat1 A0
#define kat2 A1
#define kat3 A2
int kat1led=5;
int kat2led=7;
int kat3led=6;
//-------------------------------------------------------
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);
//-------------------------------------------------------
DFRobotDFPlayerMini player;
//-------------------------------------------------------------
int hangikat=0;
int atilacakadimsayisi=120;
int geriatilacakadimsayisi=100;
bool katikisoyle=false;
bool katikitetik=false;
void setup() {
pinMode(buton1,INPUT);
pinMode(buton2,INPUT);
pinMode(buton3,INPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(kat1led,OUTPUT);
pinMode(kat2led,OUTPUT);
pinMode(kat3led,OUTPUT);
Serial.begin(9600);
softwareSerial.begin(9600);
if (player.begin(softwareSerial)) {
Serial.println("OK");
player.play(1);
} else {
//-----------------------------------------------------
void loop() {
int buton1kontrol=digitalRead(buton1);
int buton2kontrol=digitalRead(buton2);
int buton3kontrol=digitalRead(buton3);
if(buton1kontrol==HIGH){
birincikatagit();
}else if(buton2kontrol==HIGH){
ikincikatagit();
}else if(buton3kontrol==HIGH){
ucuncukatagit();
}else{
void birincikatagit(){
int kat1mi=analogRead(kat1);
int kat2mi=analogRead(kat2);
int kat3mi=analogRead(kat3);
if(kat1mi<100){
digitalWrite(kat1led,HIGH);
digitalWrite(kat2led,LOW);
digitalWrite(kat3led,LOW);
player.play(2);
if(kat2mi<100){
digitalWrite(kat2led,HIGH);
player.play(3);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat1);
if(hangikat<100){
player.play(2);
break;
}else{
geriadimat(atilacakadimsayisi);
digitalWrite(kat1led,HIGH);
digitalWrite(kat2led,LOW);
digitalWrite(kat3led,LOW);
if(kat3mi<100){
digitalWrite(kat3led,HIGH);
player.play(4);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat1);
kat2mi=analogRead(kat2);
if(hangikat<100){
break;
}else{
digitalWrite(kat3led,LOW);
digitalWrite(kat2led,HIGH);
player.play(3);
katikisoyle=true;
geriadimat(atilacakadimsayisi);
player.play(2);
digitalWrite(kat1led,HIGH);
digitalWrite(kat2led,LOW);
digitalWrite(kat3led,LOW);
katikisoyle=false;
void ikincikatagit(){
int kat1mi=analogRead(kat1);
int kat2mi=analogRead(kat2);
int kat3mi=analogRead(kat3);
if(kat1mi<100){
digitalWrite(kat1led,HIGH);
player.play(2);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat3);
if(hangikat<100){
break;
}else{
ileriadimat(atilacakadimsayisi);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat2);
if(hangikat<100){
break;
}else{
geriadimat(atilacakadimsayisi);
player.play(3);
digitalWrite(kat1led,LOW);
digitalWrite(kat2led,HIGH);
digitalWrite(kat3led,LOW);
if(kat2mi<100){
digitalWrite(kat1led,LOW);
digitalWrite(kat2led,HIGH);
digitalWrite(kat3led,LOW);
player.play(3);
}
if(kat3mi<100){
digitalWrite(kat3led,HIGH);
player.play(4);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat2);
if(hangikat<100){
break;
}else{
geriadimat(atilacakadimsayisi);
player.play(3);
digitalWrite(kat1led,LOW);
digitalWrite(kat2led,HIGH);
digitalWrite(kat3led,LOW);
void ucuncukatagit(){
int kat1mi=analogRead(kat1);
int kat2mi=analogRead(kat2);
int kat3mi=analogRead(kat3);
if(kat1mi<100){
digitalWrite(kat1led,HIGH);
player.play(2);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat3);
kat2mi=analogRead(kat2);
if(hangikat<100){
break;
}else{
if(kat2mi<100){
katikitetik=true;
digitalWrite(kat1led,LOW);
digitalWrite(kat2led,HIGH);
player.play(3);
katikisoyle=true;
ileriadimat(atilacakadimsayisi);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat3);
if(hangikat>100){
break;
}else{
ileriadimat(atilacakadimsayisi);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat3);
if(hangikat<100){
break;
}else{
geriadimat(atilacakadimsayisi);
katikisoyle=false;
katikitetik=false;
player.play(4);
digitalWrite(kat1led,LOW);
digitalWrite(kat2led,LOW);
digitalWrite(kat3led,HIGH);
if(kat2mi<100){
digitalWrite(kat2led,HIGH);
player.play(3);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat3);
if(hangikat<100){
break;
}else{
ileriadimat(atilacakadimsayisi);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat3);
if(hangikat>100){
break;
}else{
ileriadimat(atilacakadimsayisi);
for(int i=0;i<10000;i++){
hangikat=analogRead(kat3);
if(hangikat<100){
break;
}else{
geriadimat(atilacakadimsayisi);
player.play(4);
digitalWrite(kat1led,LOW);
digitalWrite(kat2led,LOW);
digitalWrite(kat3led,HIGH);
if(kat3mi<100){
digitalWrite(kat1led,LOW);
digitalWrite(kat2led,LOW);
digitalWrite(kat3led,HIGH);
player.play(4);
}
void draw(String mesaj,String mesaj2) { // Ekran görsel yerleşimini ve
yazdırılacak metnin düzenlendiği bölüm.
u8g.print(mesaj);
u8g.setFont(u8g_font_profont12);
u8g.setPrintPos(0, 56);
u8g.print(mesaj2);
u8g.firstPage();
do {
draw(mesaj1,mesaj2);
} while (u8g.nextPage());
delay(25);
void adim1() {
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(bekleme);
void adim2() {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(bekleme);
}
void adim3() {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(bekleme);
void adim4() {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(bekleme);
adim1();
adim2();
adim3();
adim4();
adim4();
adim3();
adim2();
adim1();