Arkadaşlar merhaba ben Arduino ile kod yazdım fakat bunları ayrı ayrı yaptım. Bunları rica etsem birleştirebilir misiniz?
Kodlar:
1.Mesafe Sensörü Kodu
LED İle Timer Kodum
Sıcaklık Ölçüp I2C Ekrana yazdıran kodum:
Kodlar:
1.Mesafe Sensörü Kodu
Kod:
#İnclude <LiquidCrystal_I2C.h>
LiquidCrystal_I2C 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, HIGH);
PinMode(gate, INPUT_PULLUP);
Duration=pulseIn(gate, LOW);
İf(duration <= 84 && duration >= 72)
{
While(1)
{
Duration=pulseIn(gate, HIGH);
İ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;
}
}
LED İle Timer Kodum
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, HIGH);
Serial. Print("Time: ");
Ti'me = millis();
Serial. Println(time);
Delay(500);
İf (time > 100) {
Serial. Print ("Timer has ended ");
DigitalWrite(Led3, HIGH);
} Else;
DigitalWrite(AnaLed, LOW);
Delay (500);
DigitalWrite(Led, HIGH);
Serial. Print("Time: ");
Ti'me = millis();
Serial. Println(time);
Delay(500);
İf (time > 200) {
Serial. Print ("Timer has ended ");
DigitalWrite(Led1, HIGH);
} Else;
DigitalWrite(AnaLed, LOW);
Delay (500);
DigitalWrite(Led, HIGH);
Serial. Print("Time: ");
Ti'me = millis();
Serial. Println(time);
Delay(500);
İf (time > 300) {
Serial. Print ("Timer has ended ");
DigitalWrite(Led2, HIGH);
} Else;
DigitalWrite(AnaLed, LOW);
Delay (500);
}
Sıcaklık Ölçüp I2C Ekrana yazdıran kodum:
Kod:
#İnclude <LiquidCrystal_I2C.h>
LiquidCrystal_I2C 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, HIGH);
PinMode(gate, INPUT_PULLUP);
Duration=pulseIn(gate, LOW);
İf(duration <= 84 && duration >= 72)
{
While(1)
{
Duration=pulseIn(gate, HIGH);
İ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: