Arduino projemde takıldığım bir kaç sorunum var ilk kez bir uygulama yapıyorum kodlarımda sorularım ekranda hepsi gözükmüyor 7. veya 8.sorudan sonra sorular serial ekranda görüntülenmiyor nedeni ne olabılır yardımcı olursanız sevinirim . Kodlar şu şekide;
int bolgem=0 ;
int cevap = 0;
const String soru1 = "Yildiz daglari hangi bolgemizdedir?";
const String soru2 = "Samsun hangi bolgemizde yer almaktadir?";
const String soru3 = "Turkiye'nin en buyuk golu nerededir?";
const String soru4 = "Balikli gol hangi bolgemizdedir?";
const String soru5 = "Catalhoyuk hangi bolgemizdedir?";
const String soru6 = "Jips ve kalker olusumu en cok hangi bolgemizde gorulur?";
const String soru7 = "Daglar hangi bolgemizde kiyiya dik uzanir?";
const String soru8 = "Saroz korfezi hangi bolgemizdedir?";
const String soru9 = "Cay ve findik en cok hangi bolgemizde yetisir?";
const String soru10 = "Buyukbas hayvancilik en cok hangi bolgemizde yapilmaktadir?";
const String soru11 = "Habur sinirkapisi hangi bolgemizdedir?";
const String soru12 = "Anitkabir hangi bolgemizdedir?";
const String soru13 = "Manavgat selalesi hangi blgemizdedir?";
const String soru14 = "Incir en cok hangi bolgemizde yetisir?";
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
String soru[] = {soru1, soru2, soru3, soru4, soru5, soru6, soru7, soru8, soru9, soru10, soru11, soru12, soru13, soru14};
for (int i = 0; i < 14; i++) {
Serial.println(soru[i]);
delay(1000);
while (cevap != 1) {
if (digitalRead(2) == HIGH) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
bolgem = 2 ;
}
else if (digitalRead(3) == HIGH) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
bolgem = 3 ;
}
else if (digitalRead(4) == HIGH) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
bolgem = 4 ;
}
else if (digitalRead(5) == HIGH) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
bolgem = 5 ;
}
else if (digitalRead(6) == HIGH) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
bolgem = 6 ;
}
else if (digitalRead(7) == HIGH) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
bolgem = 7 ;
}
else if (digitalRead(8) == HIGH) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
bolgem = 1 ;
}
else{}
if ((soru[i] == soru1 || soru[i] == soru8) && bolgem == 1) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
Serial.println("Dogru Cevap :)");
cevap = 1 ;
}
else if ((soru[i] == soru2 || soru[i] == soru9 ) && bolgem == 2) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
Serial.println("Dogru Cevap :)");
cevap = 1 ;
}
else if ((soru[i] == soru3 || soru[i] == soru10) && bolgem == 3) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
Serial.println("Dogru Cevap :)");
cevap = 1 ;
}
else if ((soru[i] == soru4 || soru[i] == soru11) && bolgem == 4) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
Serial.println("Dogru Cevap :)");
cevap = 1 ;
}
else if ((soru[i] == soru5 || soru[i] == soru12) && bolgem == 5) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
Serial.println("Dogru Cevap :)");
cevap = 1 ;
}
else if ((soru[i] == soru6 || soru[i] == soru13) && bolgem == 6) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
Serial.println("Dogru Cevap :)");
cevap = 1 ;
}
else if ((soru[i] == soru7 || soru[i] == soru14) && bolgem == 7) { // Hangi coğrafi bölgeye(butona) basıldığını tutar.
Serial.println("Dogru Cevap :)");
cevap = 1 ;
}
else {
Serial.println("Lutfen Dogru Bolgeyi Seciniz!!!");
delay(3000);
}
}
cevap = 0;
delay(2000);
}
}
Programı arduinoya atarken herhangi bir hata veriyor mu?
Ayrıca sorular hem ROM bellekte hem RAM bellekte yer işgal ediyor mevcut durumda. Hafıza yetmemiş olabilir o yüzden soruyorum.
hayır hata vermıyor aslında soruları daha kısa yazdığımızda garip şekilde çalıştı sorun şu an düzeldi ama yenı bır sorunum var bu soruların rastgele gelmesını nasıl saglayabılırım denedım bır kaç çözüm fakat ya kodlara hata verıyor yada hata olmasa da istediğim gibi çalışmıyor bunu nasıl yapabılırım yardımcı olabılır mısınız @cemkoc
Demek ki sorun hafıza ile ilgiliymiş ki soruları kısaltınca çözüldü. Her karakter belirli bir yer kaplıyor haliyle.
Bildiğim kadarıyla Arduino'da random fonksiyonu var. Rastgele sayı üretir verdiğiniz değerler aralığında. Bunu deneyebilirsiniz.
@cemkoc ben denedim bunu fakat kodlarıma uyarlamıyorum
@esraozcelik if (random(9) == 1)
derseniz 0-8 arasında bir değer getirir ve bu sorgu da bu değerin 1 olma olasılığı içindir. Her soru numarası için birer if yaratın.
@cemkoc tamamdır teşekkürler denicem