Engelden kaçan araba ve bluetoothla çalışan araba yapmak istiyorum. yaptım da. ama kod kısmında anlayamadığım hatalar alıyorum, yardım edebilen olursa çok sevinirim..
******************************* KOD****************
#include <Servo.h>
Servo servom
#define button 13 // buton pini olarak tanımladım
int buttonState = 0; // push butonu yaylı buton gibi kullanmak için
boolean on=false;
int echoPin = 2;
int trigPin = 7; // echo ve trig pinlerini tanımladım
int mesafe;
int sure;
int motorA1 = 9; // L298N IN1 girişi
int motorA2 = 6; // L298N IN2 girişi
int motorB1 = 5; // L298N IN3 girişi
int motorB2 = 3; // L298N IN4 girişi
int state; // Bluetooth cihazından gelecek sinyalin değişkeni
int vSpeed = 255; // Standart Hız, 0-255 arası değer alabilir
void setup() {
servom.attach(11);
pinMode(button,INPUT);
pinMode(motorA1,OUTPUT);
pinMode(motorA2,OUTPUT);
pinMode(motorB1,OUTPUT);
pinMode(motorB2,OUTPUT);
Serial.begin(9600);
}
void loop() {
buttonState = digitalRead(button);
if (buttonState == HIGH) {
if(on==true){
on=false;
} else{
on=true;
}
}
int mesafeR = 0; // engelden kaçan robot için
int mesafeL = 0;
// ****************Bluetooth İçin*************************
if (on == true){
if(Serial.available()>0){
state = Serial.read();
}
/* Uygulamadan ayarlanabilen 4 hız seviyesi.(Değerler 0-255 arasında olmalı)*/
if (state == '0'){
vSpeed=0;}
else if (state == '1'){
vSpeed=100;}
else if (state == '2'){
vSpeed=180;}
else if (state == '3'){
vSpeed=200;}
else if (state == '4'){
vSpeed=255;}
/********İleri*********/
//Gelen veri F ise araba ileri gider.
if (state == 'F') {
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, 0);
}
/*******İleri Sol*********/
//Gelen veri G ise araba ileri sol(çapraz) gider.
else if (state == 'G') {
analogWrite(motorA1,vSpeed );
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed/3);
analogWrite(motorB2, 0);
}
/*******İleri Sağ*********/
//Gelen veri I ise araba ileri sağ(çapraz) gider.
else if (state == 'I') {
analogWrite(motorA1, vSpeed/3);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, 0);
}
/********Geri*********/
//Gelen veri B ise araba geri gider.
else if (state == 'B') {
analogWrite(motorA1, 0);
analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0);
analogWrite(motorB2, vSpeed);
}
/*******Geri Sol*********/
//Gelen veri H ise araba geri sol(çapraz) gider
else if (state == 'H') {
analogWrite(motorA1, 0);
analogWrite(motorA2, vSpeed/3);
analogWrite(motorB1, 0);
analogWrite(motorB2, vSpeed);
}
/*******Geri Sağ*********/
//Gelen veri J ise araba geri sağ(çapraz) gider
else if (state == 'J') {
analogWrite(motorA1, 0);
analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0);
analogWrite(motorB2, vSpeed/3);
}
/**********Sol**********/
//Gelen veri L ise araba sola gider.
else if (state == 'L') {
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, vSpeed/2);
analogWrite(motorB1, 0);
analogWrite(motorB2, 0);
}
/**********Sağ**********/
//Gelen veri R ise araba sağa gider
else if (state == 'R') {
analogWrite(motorA1, 0);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, vSpeed/2);
}
/*********Stop**********/
//Gelen veri S ise arabayı durdur.
else if (state == 'S'){
analogWrite(motorA1, 0);
analogWrite(motorA2, 0);
analogWrite(motorB1, 0);
analogWrite(motorB2, 0);
}
}
}
else {
// *****************ENGELDEN KAÇAN ROBOT****************//
ileri();
if(mesafe <= 20) //mesafe 20cmden küçük eşitse
{
dur();
delay(200);
mesafeR = sagaBak();
delay(300);
mesafeL = solaBak();
delay(300);
if(mesafeR>=mesafeL)
{
sag();
dur();
}
else
{
sol();
dur();
}
}
ileri();
//tekrar yeni mesafe ölçümü alıyoruz
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
gecenSure= pulseIn(echoPin, HIGH);
mesafe= (gecenSure/2) / 29.1;
}
// Kod karmaşasından kaçınmak için geri, ileri sağ ve sol şeylerini tanımladık
void geri(){
analogWrite(motorA1, 0);
analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0);
analogWrite(motorB2, vSpeed);
delay(400);
}
void sag(){
analogWrite(motorA1, 0);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, vSpeed/2);
delay(400);
}
void sol(){
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, vSpeed/2);
analogWrite(motorB1, 0);
analogWrite(motorB2, 0);
delay(400);
}
void ileri(){
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, 0);
delay(400);
}
void dur(){
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, 0);
delay(400);
}
void sagaBak(){
servom.write(0); //servoyu tam sağa çevir
delay(500);
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
sure= pulseIn(echoPin, HIGH);
mesafe=(sure/2) / 29.1;
delay(100);
servom.write(100); //servoyu ortala
return mesafe;
delay(100);
}
void solaBak(){
servom.write(180); //servo tam sola
delay(500);
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
sure= pulseIn(echoPin, HIGH);
mesafe=(sure/2) / 29.1;
delay(100);
servom.write(100); //servoyu ortala
return mesafe;
delay(100);
}
*************************ALDIĞIM HATALAR***************************
KOD_V2:4:1: error: expected initializer before 'int'
int buttonState = 0; // push butonu yaylı buton gibi kullanmak için
^~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: In function 'void setup()':
KOD_V2:19:1: error: 'servom' was not declared in this scope
servom.attach(11);
^~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:19:1: note: suggested alternative: 'Servo'
servom.attach(11);
^~~~~~
Servo
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: In function 'void loop()':
KOD_V2:29:3: error: 'buttonState' was not declared in this scope
buttonState = digitalRead(button);
^~~~~~~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:29:3: note: suggested alternative: 'button'
buttonState = digitalRead(button);
^~~~~~~~~~~
button
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: At global scope:
KOD_V2:136:2: error: expected unqualified-id before 'else'
else {
^~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: In function 'void sagaBak()':
KOD_V2:217:3: error: 'servom' was not declared in this scope
servom.write(0); //servoyu tam sağa çevir
^~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:217:3: note: suggested alternative: 'Servo'
servom.write(0); //servoyu tam sağa çevir
^~~~~~
Servo
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:228:10: warning: return-statement with a value, in function returning 'void' [-fpermissive]
return mesafe;
^~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: In function 'void solaBak()':
KOD_V2:233:3: error: 'servom' was not declared in this scope
servom.write(180); //servo tam sola
^~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:233:3: note: suggested alternative: 'Servo'
servom.write(180); //servo tam sola
^~~~~~
Servo
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:244:10: warning: return-statement with a value, in function returning 'void' [-fpermissive]
return mesafe;
^~~~~~
exit status 1
expected initializer before 'int'
Arduino kod hatasi aliyorum. Bakabilir misiniz
1
●60
- 27-02-2021, 17:37:48Kimlik doğrulama veya yönetimden onay bekliyor.
- 27-02-2021, 22:26:49Servo servom kodu ; ile bitmeli. Fonksiyondan return ile değer döndürecekseniz void kullanmayın. Değer döndüreceğiniz tiple oluşturun. void solaBak() yerine int solaBak() gibi yani.Sinoper5767 adlı üyeden alıntı: mesajı görüntüleEngelden kaçan araba ve bluetoothla çalışan araba yapmak istiyorum. yaptım da. ama kod kısmında anlayamadığım hatalar alıyorum, yardım edebilen olursa çok sevinirim..
******************************* KOD****************
#include <Servo.h>
Servo servom
#define button 13 // buton pini olarak tanımladım
int buttonState = 0; // push butonu yaylı buton gibi kullanmak için
boolean on=false;
int echoPin = 2;
int trigPin = 7; // echo ve trig pinlerini tanımladım
int mesafe;
int sure;
int motorA1 = 9; // L298N IN1 girişi
int motorA2 = 6; // L298N IN2 girişi
int motorB1 = 5; // L298N IN3 girişi
int motorB2 = 3; // L298N IN4 girişi
int state; // Bluetooth cihazından gelecek sinyalin değişkeni
int vSpeed = 255; // Standart Hız, 0-255 arası değer alabilir
void setup() {
servom.attach(11);
pinMode(button,INPUT);
pinMode(motorA1,OUTPUT);
pinMode(motorA2,OUTPUT);
pinMode(motorB1,OUTPUT);
pinMode(motorB2,OUTPUT);
Serial.begin(9600);
}
void loop() {
buttonState = digitalRead(button);
if (buttonState == HIGH) {
if(on==true){
on=false;
} else{
on=true;
}
}
int mesafeR = 0; // engelden kaçan robot için
int mesafeL = 0;
// ****************Bluetooth İçin*************************
if (on == true){
if(Serial.available()>0){
state = Serial.read();
}
/* Uygulamadan ayarlanabilen 4 hız seviyesi.(Değerler 0-255 arasında olmalı)*/
if (state == '0'){
vSpeed=0;}
else if (state == '1'){
vSpeed=100;}
else if (state == '2'){
vSpeed=180;}
else if (state == '3'){
vSpeed=200;}
else if (state == '4'){
vSpeed=255;}
/********İleri*********/
//Gelen veri F ise araba ileri gider.
if (state == 'F') {
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, 0);
}
/*******İleri Sol*********/
//Gelen veri G ise araba ileri sol(çapraz) gider.
else if (state == 'G') {
analogWrite(motorA1,vSpeed );
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed/3);
analogWrite(motorB2, 0);
}
/*******İleri Sağ*********/
//Gelen veri I ise araba ileri sağ(çapraz) gider.
else if (state == 'I') {
analogWrite(motorA1, vSpeed/3);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, 0);
}
/********Geri*********/
//Gelen veri B ise araba geri gider.
else if (state == 'B') {
analogWrite(motorA1, 0);
analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0);
analogWrite(motorB2, vSpeed);
}
/*******Geri Sol*********/
//Gelen veri H ise araba geri sol(çapraz) gider
else if (state == 'H') {
analogWrite(motorA1, 0);
analogWrite(motorA2, vSpeed/3);
analogWrite(motorB1, 0);
analogWrite(motorB2, vSpeed);
}
/*******Geri Sağ*********/
//Gelen veri J ise araba geri sağ(çapraz) gider
else if (state == 'J') {
analogWrite(motorA1, 0);
analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0);
analogWrite(motorB2, vSpeed/3);
}
/**********Sol**********/
//Gelen veri L ise araba sola gider.
else if (state == 'L') {
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, vSpeed/2);
analogWrite(motorB1, 0);
analogWrite(motorB2, 0);
}
/**********Sağ**********/
//Gelen veri R ise araba sağa gider
else if (state == 'R') {
analogWrite(motorA1, 0);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, vSpeed/2);
}
/*********Stop**********/
//Gelen veri S ise arabayı durdur.
else if (state == 'S'){
analogWrite(motorA1, 0);
analogWrite(motorA2, 0);
analogWrite(motorB1, 0);
analogWrite(motorB2, 0);
}
}
}
else {
// *****************ENGELDEN KAÇAN ROBOT****************//
ileri();
if(mesafe <= 20) //mesafe 20cmden küçük eşitse
{
dur();
delay(200);
mesafeR = sagaBak();
delay(300);
mesafeL = solaBak();
delay(300);
if(mesafeR>=mesafeL)
{
sag();
dur();
}
else
{
sol();
dur();
}
}
ileri();
//tekrar yeni mesafe ölçümü alıyoruz
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
gecenSure= pulseIn(echoPin, HIGH);
mesafe= (gecenSure/2) / 29.1;
}
// Kod karmaşasından kaçınmak için geri, ileri sağ ve sol şeylerini tanımladık
void geri(){
analogWrite(motorA1, 0);
analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0);
analogWrite(motorB2, vSpeed);
delay(400);
}
void sag(){
analogWrite(motorA1, 0);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, vSpeed/2);
delay(400);
}
void sol(){
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, vSpeed/2);
analogWrite(motorB1, 0);
analogWrite(motorB2, 0);
delay(400);
}
void ileri(){
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, 0);
delay(400);
}
void dur(){
analogWrite(motorA1, vSpeed);
analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed);
analogWrite(motorB2, 0);
delay(400);
}
void sagaBak(){
servom.write(0); //servoyu tam sağa çevir
delay(500);
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
sure= pulseIn(echoPin, HIGH);
mesafe=(sure/2) / 29.1;
delay(100);
servom.write(100); //servoyu ortala
return mesafe;
delay(100);
}
void solaBak(){
servom.write(180); //servo tam sola
delay(500);
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
sure= pulseIn(echoPin, HIGH);
mesafe=(sure/2) / 29.1;
delay(100);
servom.write(100); //servoyu ortala
return mesafe;
delay(100);
}
*************************ALDIĞIM HATALAR***************************
KOD_V2:4:1: error: expected initializer before 'int'
int buttonState = 0; // push butonu yaylı buton gibi kullanmak için
^~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: In function 'void setup()':
KOD_V2:19:1: error: 'servom' was not declared in this scope
servom.attach(11);
^~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:19:1: note: suggested alternative: 'Servo'
servom.attach(11);
^~~~~~
Servo
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: In function 'void loop()':
KOD_V2:29:3: error: 'buttonState' was not declared in this scope
buttonState = digitalRead(button);
^~~~~~~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:29:3: note: suggested alternative: 'button'
buttonState = digitalRead(button);
^~~~~~~~~~~
button
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: At global scope:
KOD_V2:136:2: error: expected unqualified-id before 'else'
else {
^~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: In function 'void sagaBak()':
KOD_V2:217:3: error: 'servom' was not declared in this scope
servom.write(0); //servoyu tam sağa çevir
^~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:217:3: note: suggested alternative: 'Servo'
servom.write(0); //servoyu tam sağa çevir
^~~~~~
Servo
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:228:10: warning: return-statement with a value, in function returning 'void' [-fpermissive]
return mesafe;
^~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino: In function 'void solaBak()':
KOD_V2:233:3: error: 'servom' was not declared in this scope
servom.write(180); //servo tam sola
^~~~~~
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:233:3: note: suggested alternative: 'Servo'
servom.write(180); //servo tam sola
^~~~~~
Servo
C:UserstekneDesktopCAS PROJEMMMMKOD_V2KOD_V2.ino:244:10: warning: return-statement with a value, in function returning 'void' [-fpermissive]
return mesafe;
^~~~~~
exit status 1
expected initializer before 'int'
Beğeniler
Değerlendirmeler