kısmında hata veriyor.ne yaptıysam düzeltemedim. verdiği hata da şu:
C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino: In function 'void loop()': kendi_denemem:121:15: error: 'mesafe' was not declared in this scope int olcum = mesafe(maximumRange, minimumRange) ^~~~~~ C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino:121:15: note: suggested alternative: 'rename' int olcum = mesafe(maximumRange, minimumRange) ^~~~~~ rename kendi_denemem:136:19: error: 'maxrange' was not declared in this scope if (distance >= maxrange || distance <= minrange) ^~~~~~~~ kendi_denemem:136:43: error: 'minrange' was not declared in this scope if (distance >= maxrange || distance <= minrange) ^~~~~~~~ C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino:136:43: note: suggested alternative: 'distance' if (distance >= maxrange || distance <= minrange) ^~~~~~~~ distance C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino:137:12: warning: return-statement with a value, in function returning 'void' [-fpermissive] return 0; ^ C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino:138:10: warning: return-statement with a value, in function returning 'void' [-fpermissive] return distance; ^~~~~~~~ kendi_denemem:143:1: error: a function-definition is not allowed here before '{' token { ^ exit status 1 'mesafe' was not declared in this scope
Merhaba. Öncelikle forumda kodları öylece mesajın içine salıvermeniz okunaklı olmasını bayağı bir engellemiş.
quote:
// kodları alıntı şekilde paylaşırsanız daha güzel görünür. // Yanda kaydırma çubuğu çıksaydı daha iyi olurdu ama yeni sistemi tam olarak çözemedim henüz.
Ayrıca sekme(tab) kullanmanız kodları okumayı kolaylaştıracaktır. Göz atmak isteyen olursa kodların görünüşünü biraz düzenledim. Köşeli parantez ve noktalı virgül kullanımındaki hataları da düzelttim.
quote:
//motor #include <IRremote.h>
int RECV_PIN = 11; int sagileri = 7; int saggeri = 8; int solileri = 9; int solgeri = 10; int itsONled[] = {0,0,0,0,0};
//motor bitiş <-- bu satırdaki süslü parantezi sildim
//mesafe <-- bu satırdaki süslü parantezi sildim int olcum = mesafe(maximumRange, minimumRange);<-- bu satıra noktalı virgül ekledim melodi(olcum * 10); }
int mesafe(int maxrange, int minrange) <-- bu satırdaki noktalı virgülü sildim // bkz: Arduino - FunctionDeclaration { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration / 58.2; delay(50);
if (distance >= maxrange || distance <= minrange) return 0;
return distance; }
int melodi(int dly){ tone(buzzerPin, 440); delay(dly); noTone(buzzerPin); delay(dly); //mesafe bitiş <-- bu satırdaki süslü parantezi sildim }
Kodu biraz daha düzenledikten sonra derleme hâlâ hata vermeye devam ediyor ama en azından koddaki asıl sorunu buldum. IRremote.h kütüphanesi ve tone() ile noTone() fonksiyonları aynı zamanlayıcıyı(Timer2) kullandıkları için bir çakışma oluşuyormuş. tone ve noTone satırlarını yorum hâline getirince derleme hatasız tamamlanıyor.
Düzeltmek için kütüphanenin kaynak kodlarında değişiklik yapmışlar ama bu diğer projelerin çalışmasını da etkileyecektir, değişiklik yapmadan önce ne yaptığınızı bildiğinize emin olun. (bkz: tone() function and IRRemote master library. (arduino.cc))
//motor
#include <IRremote.h>
int RECV_PIN = 11;
int sagileri = 7;
int saggeri = 8;
int solileri = 9;
int solgeri = 10;
int itsONled[] = {0,0,0,0,0};
#define code1 33150 //ileri
#define code2 4590 //geri
#define code3 16830 //sağ
#define code4 2550 //sol
IRrecv irrecv(RECV_PIN);
decode_results results;
//mesafe
#define echoPin 6
#define trigPin 7
#define buzzerPin 8
int maximumRange = 30;
int minimumRange = 0;
void setup() {
{//motor
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(sagileri, OUTPUT);
pinMode(saggeri, OUTPUT);
pinMode(solileri, OUTPUT);
pinMode(solgeri, OUTPUT);
}
{//mesafe
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
}
}
void loop() {
{//motor
if (irrecv.decode(&results)) {
unsigned int value = results.value;
switch(value) {
case code1:
if(itsONled[1] == 1) {
digitalWrite(sagileri, LOW);
digitalWrite(solileri, LOW);
digitalWrite(saggeri, LOW);
digitalWrite(solgeri, LOW);
itsONled[1] = 0;
} else {
digitalWrite(sagileri, HIGH);
digitalWrite(solileri, HIGH);
digitalWrite(saggeri, LOW);
digitalWrite(solgeri, LOW);
itsONled[1] = 1;
}
break;
case code2:
if(itsONled[2] == 1) {
digitalWrite(sagileri, LOW);
digitalWrite(solileri, LOW);
digitalWrite(saggeri, LOW);
digitalWrite(solgeri, LOW);
itsONled[2] = 0;
} else {
digitalWrite(sagileri, LOW);
digitalWrite(solileri, LOW);
digitalWrite(saggeri, HIGH);
digitalWrite(solgeri, HIGH);
itsONled[2] = 1;
}
break;
case code3:
if(itsONled[3] == 1) {
digitalWrite(sagileri, LOW);
digitalWrite(solileri, LOW);
digitalWrite(saggeri, LOW);
digitalWrite(solgeri, LOW);
itsONled[3] = 0;
} else {
digitalWrite(sagileri, LOW);
digitalWrite(solileri, HIGH);
digitalWrite(saggeri, HIGH);
digitalWrite(solgeri, LOW);
itsONled[3] = 1;
}
break;
case code4:
if(itsONled[4] == 1) {
digitalWrite(sagileri, LOW);
digitalWrite(solileri, LOW);
digitalWrite(saggeri, LOW);
digitalWrite(solgeri, LOW);
itsONled[4] = 0;
} else {
digitalWrite(sagileri,HIGH);
digitalWrite(solileri, LOW);
digitalWrite(saggeri, LOW);
digitalWrite(solgeri, HIGH);
itsONled[4] = 1;
}
break;
}
Serial.println(value);
irrecv.resume();
}
}//motor bitiş
{//mesafe
int olcum = mesafe(maximumRange, minimumRange)
melodi(olcum * 10);
}
int mesafe(int maxrange, int minrange);
{
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration / 58.2;
delay(50);
if (distance >= maxrange || distance <= minrange)
return 0;
return distance;
}
int melodi(int dly)
{
tone(buzzerPin, 440);
delay(dly);
noTone(buzzerPin);
delay(dly);
}//mesafe biitiş
}
kısmında hata veriyor.ne yaptıysam düzeltemedim. verdiği hata da şu:
C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino: In function 'void loop()':
kendi_denemem:121:15: error: 'mesafe' was not declared in this scope
int olcum = mesafe(maximumRange, minimumRange)
^~~~~~
C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino:121:15: note: suggested alternative: 'rename'
int olcum = mesafe(maximumRange, minimumRange)
^~~~~~
rename
kendi_denemem:136:19: error: 'maxrange' was not declared in this scope
if (distance >= maxrange || distance <= minrange)
^~~~~~~~
kendi_denemem:136:43: error: 'minrange' was not declared in this scope
if (distance >= maxrange || distance <= minrange)
^~~~~~~~
C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino:136:43: note: suggested alternative: 'distance'
if (distance >= maxrange || distance <= minrange)
^~~~~~~~
distance
C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino:137:12: warning: return-statement with a value, in function returning 'void' [-fpermissive]
return 0;
^
C:\Users\\Desktop\kendi_denemem\kendi_denemem.ino:138:10: warning: return-statement with a value, in function returning 'void' [-fpermissive]
return distance;
^~~~~~~~
kendi_denemem:143:1: error: a function-definition is not allowed here before '{' token
{
^
exit status 1
'mesafe' was not declared in this scope
ne yapmam gerek yardımcı olur musunuz.