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:
Genel kod olarak değil de C++ olarak eklerseniz bilgili arkadaşlar daha rahat yardımcı olur. Benim görebildiğim hatalardan biri }'dan sonra ; koymuşsunuz.
 
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.
 
Bende ardunio alıp kodlamayı düşünüyorum. Aklımda ilk açılıp kapanan çekmece var sizce nasıl?
 
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.
 

Geri
Yukarı