Yapay zekanın önerdiği kod çalışmıyor

ADAMABAKIYORUM

Femtopat
Katılım
3 Kasım 2024
Mesajlar
87
Daha fazla  
Cinsiyet
Erkek
Yapay zeka bana örnek olarak birkaç kod önerdi. Bazı sı çalışmıyor bazısı full buzzer ötüyor. Şema bu kod TÜBİTAK için.



Önerdiği kodlar.

Kod:
#define trig 9
#define echo 10.
#define buzzer 8

long dur;
int dist;
unsigned long prev = 0;
bool t = false;

void setup() {
 pinMode(trig, OUTPUT);
 pinMode(echo, INPUT);
 pinMode(buzzer, OUTPUT);
 Serial.begin(9600);
}

void loop() {
 digitalWrite(trig, LOW);
 delayMicroseconds(2);
 digitalWrite(trig, HIGH);
 delayMicroseconds(10);
 digitalWrite(trig, LOW);

 dur = pulseIn(echo, HIGH, 20000);
 dist = dur * 0.034 / 2;

 Serial.println(dist);

İf(dist == 0 || dist > 30) notone(buzzer), t = false;
Else if(dist > 15) {
if(millis()-prev>200) prev=millis(), t?noTone(buzzer),t=false:tone(buzzer,1000),t=true;
}
E

#Define trıg 9
#Define echo 10.
#Define buzzer 8

Long duration;
İnt distance;

Void setup() {
Pinmode(trıg, output);
Pinmode(echo, ınput);
Pinmode(buzzer, output);
Serial. Begin(9600);
}

Void loop() {
Digitalwrite(trıg, Low);
Delaymicroseconds(2);
Digitalwrite(trıg, hıgh);
Delaymicroseconds(10);
Digitalwrite(trıg, Low);

Duration = pulseın(echo, hıgh, 20000);
Distance = duration * 0.034 / 2;

Serial. Println(distance);

İf(distance == 0 || distance > 30){
Notone(buzzer);
}
Else if(distance > 15){
Tone(buzzer, 1000);
Delay(200);
Notone(buzzer);
Delay(200);
}
Else{
Tone(buzzer, 1000);
}
}
 
Son düzenleyen: Moderatör:
Hata ne? Yapay zekanın koduna pek güven olmaz. 30 defa revize ettirmen gerekir.
 

Hocam 0'dan üretmedim ama bu attığınız kodtaki hataları düzeltmeye çalıştım belki işinize yarar.

#define trig 9
#define echo 10
#define buzzer 8

long dur;
int dist;
unsigned long prev = 0;
bool t = false;

void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
}

void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);

dur = pulseIn(echo, HIGH, 20000);
dist = dur * 0.034 / 2;

Serial.println(dist);

if(dist == 0 || dist > 30) {
noTone(buzzer);
t = false;
}
else if(dist > 15) {
if(millis() - prev > 200) {
prev = millis();
if(t) {
noTone(buzzer);
t = false;
} else {
tone(buzzer, 1000);
t = true;
}
}
}
else {
tone(buzzer, 1000);
}
}

Koyacaksan eğer parantez yerleştirmesini falan yaparak koy hocam. Parantezlerde kopyala yapıştır yapınca, bazen sorun olabiliyor.
 
Reis bu sefer de full sustu buzzer.

Kanka bu kodla buzzer çalışıyor mu diye kontrol eder misin? Bağlantıda mı sorun var diye. Birde her şeyden önce parantezleri ve konumları doğru ayarladığınıza eminsiniz değil mi hocam? Kurallar önemli.

#define buzzer 8

void setup() {
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
}

void loop() {
Serial.println("Buzzer ON");
tone(buzzer, 1000); // 1000Hz ses
delay(1000);

Serial.println("Buzzer OFF");
noTone(buzzer);
delay(1000);
}

Bu yazdığımı kullan eğer bu kodda bruzzer sorun cıkarmıyorsa altta attığımı kullan.


#define trig 9
#define echo 10
#define buzzer 8

long dur;
int dist;

void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
}

void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);

dur = pulseIn(echo, HIGH, 20000);
dist = dur * 0.034 / 2;

Serial.print("Mesafe: ");
Serial.println(dist);

if(dist == 0 || dist > 30) {
digitalWrite(buzzer, LOW);
Serial.println("Buzzer OFF");
}
else if(dist > 15) {
digitalWrite(buzzer, HIGH);
delay(200);
digitalWrite(buzzer, LOW);
delay(200);
Serial.println("Buzzer Yanıp Sönüyor");
}
else {
digitalWrite(buzzer, HIGH);
Serial.println("Buzzer ON");
}

delay(100);
}


Dediğim gibi parantezlere ve boşluklara dikkat et düzelt gerekirse. İkiside test için ikisindede çalışıyorsa bruzzer kodu düzeltiriz ama çalışmıyorsa donanımsal bir sorun var demektir. Benden bu kadar hocam eğer testte yanıt vermezse başka arkadaşlar yardımcı olabilir belki.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…