Arduino kod birleştirme

378894

Hectopat
Katılım
23 Ekim 2020
Mesajlar
381
Çözümler
1
Arkadaşlar ben bir proje yaptım fakat 3 adet ayrı kod olarak ben Arduino'da biraz yeniyim, bu yüzden süslü parantezleri karıştırıyorum. Kod olarak ben pinleri tanıttım ve Void setup kodunu yazdım ama sıkıntı Void loopta başlıyor. Kodlar:

Mesafe sensörü kodum:
Kod:
#Define echopin 6.
#Define trigpin 7.
#Define buzzerpin 8.

İnt maximumrange = 60;
İnt minimumrange = 0;

Void setup() {
Pinmode(trigpin, output);
Pinmode(echopin, ınput);
Pinmode(buzzerpin, output);

}

Void loop()
{

İnt olcum = mesafe(maximumrange, minimumrange);
Melodi(olcum*10);

}

İnt mesafe(int maxrange, int minrange)
{
Long duration, distance;

Digitalwrite(trigpin, low);
Delaymicroseconds(2);
Digitalwrite(trigpin, hıgh);
Delaymicroseconds(10);
Digitalwrite(trigpin, low);

Duration = pulseın(echopin, hıgh);
Distance = duration / 58.2;
Delay(50);

İf(distance >= maxrange || distance <= minrange)
Return 0;
Return distance;
}

İnt melodi(int dly)
{
Tone(buzzerpin, 440);
Delay(dly);
Notone(buzzerpin);
Delay(dly);

}
LED ile yaptığı timer (süreler geçince LED'ler otomatik olarak yanıyor):
Kod:
İnt analed = 13;
İnt LED3 = 10;
İnt LED1 = 11;
İnt LED2 = 12;
Unsigned long Ti'me;

Void setup(){
Pinmode(led, output);
Pinmode(led1, output);
Pinmode(led2, output);
Pinmode(led3, output);
Serial. Begin(9600);
}
Void loop()
{
Digitalwrite(led, hıgh);
Serial. Print("time: ");
Ti'me = millis();
Serial. Println(time);
Delay(500);
İf (time > 100) {
Serial. Print ("timer has ended ");
Digitalwrite(led3, hıgh);
} Else;
Digitalwrite(analed, low);
Delay (500);

Digitalwrite(led, hıgh);
Serial. Print("time: ");
Ti'me = millis();
Serial. Println(time);
Delay(500);
İf (time > 200) {
Serial. Print ("timer has ended ");
Digitalwrite(led1, hıgh);
} Else;
Digitalwrite(analed, low);
Delay (500);

Digitalwrite(led, hıgh);
Serial. Print("time: ");
Ti'me = millis();
Serial. Println(time);
Delay(500);
İf (time > 300) {
Serial. Print ("timer has ended ");
Digitalwrite(led2, hıgh);
} Else;
Digitalwrite(analed, low);
Delay (500);
}
Sıcaklık sensörüm temperature and humidity sensörü ile ölçüp yazıyı ı2C ekrana veriyor:
Kod:
#İnclude <LiquidCrystal_I2C.h>
Liquidcrystal_ı2C LCD(0x27, 16, 2);
Byte degree_symbol[8] =
{
0B00111,
0B00101,
0B00111,
0B00000,
0B00000,
0B00000,
0B00000,
0B00000.
};
İnt gate=11;
Volatile unsigned long duration=0;
Unsigned char i[5];
Unsigned int j[40];
Unsigned char value=0;
Unsigned answer=0;
İnt z=0;
İnt b=1;
Void setup()
{
lcd.init();
lcd.init();
lcd.backlight();
LCD. Print("temp = ");
LCD. Setcursor(0, 1);
LCD. Print("humidity = ");
LCD. Createchar(1, degree_symbol);
LCD. Setcursor(9, 0);
LCD. Write(1);
LCD. Print("c");
LCD. Setcursor(13, 1);
LCD. Print("%");
}

Void loop()
{

Delay(1000);
While(1)
{
Delay(1000);
Pinmode(gate, output);
Digitalwrite(gate, low);
Delay(20);
Digitalwrite(gate, hıgh);
Pinmode(gate, ınput_pullup);

Duration=pulseın(gate, low);
İf(duration <= 84 && duration >= 72)
{
While(1)
{
Duration=pulseın(gate, hıgh);

İf(duration <= 26 && duration >= 20){
Value=0;}

Else if(duration <= 74 && duration >= 65){
Value=1;}

Else if(z==40){
Break;}

İ[z/8]|=value<<(7- (z%8));
J[z]=value;
Z++;
}
}
Answer=i[0]+i[1]+i[2]+i[3];

İf(answer==i[4] && answer!=0)
{
LCD. Setcursor(7, 0);
LCD. Print(i[2]);
LCD. Setcursor(11, 1);
LCD. Print(i[0]);
}

Z=0;
İ[0]=i[1]=i[2]=i[3]=i[4]=0;
}
}
 
Son düzenleyen: Moderatör:
Case Sensitive ile ilgili çok hata yapmışsın. Kodlar çalışmaz büyük ihtimalle.

Büyük İ kullanma. While'ın "w" harfi küçük olmalı.

Ayrıntılı bakmadım. Fakat birçok hata var gibi duruyor.
 
Birleştirmek için kodları çalışması gereken yerlere kopyalamanız yeterli olacaktır diye düşünüyorum. Örneğin kütpühane dahil etme kodları başa, sürekli çalışacak olanlar loopa gibi. Yanlışsam düzeltin lütfen.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı