Arkadaşlar merhaba ben arduino ile kod yazdım fakat bunları ayrı ayrı yaptım Bunları rica etsem birleştirebilirmisiniz? Kodlar: 1.Mesafe Sensörü Kodu #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); byte degree_symbol[8] = { 0b00111, 0b00101, 0b00111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 }; int gate=11; volatile unsigned long duration=0; unsigned char i[5]; unsigned int j[40]; unsigned char value=0; unsigned answer=0; int z=0; int 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); if(duration <= 84 && duration >= 72) { while(1) { duration=pulseIn(gate, HIGH);
if(duration <= 26 && duration >= 20){ value=0;}
else if(duration <= 74 && duration >= 65){ value=1;}
else if(z==40){ break;}
i[z/8]|=value<<(7- (z%8)); j[z]=value; z++; } } answer=i[0]+i[1]+i[2]+i[3]; if(answer==i[4] && answer!=0) { lcd.setCursor(7,0); lcd.print(i[2]); lcd.setCursor(11,1); lcd.print(i[0]); } z=0; i[0]=i[1]=i[2]=i[3]=i[4]=0; } } Led İle Timer Kodum int AnaLed = 13; int Led3 = 10; int Led1 = 11; int Led2 = 12; unsigned long time; 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: "); time = millis(); Serial.println(time); delay(500); if (time > 100) { Serial.print ("Timer has ended "); digitalWrite(Led3, HIGH); } else; digitalWrite(AnaLed, LOW); delay (500); digitalWrite(Led, HIGH); Serial.print("Time: "); time = millis(); Serial.println(time); delay(500); if (time > 200) { Serial.print ("Timer has ended "); digitalWrite(Led1, HIGH); } else; digitalWrite(AnaLed, LOW); delay (500); digitalWrite(Led, HIGH); Serial.print("Time: "); time = millis(); Serial.println(time); delay(500); if (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: #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); byte degree_symbol[8] = { 0b00111, 0b00101, 0b00111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 }; int gate=11; volatile unsigned long duration=0; unsigned char i[5]; unsigned int j[40]; unsigned char value=0; unsigned answer=0; int z=0; int 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); if(duration <= 84 && duration >= 72) { while(1) { duration=pulseIn(gate, HIGH);
if(duration <= 26 && duration >= 20){ value=0;}
else if(duration <= 74 && duration >= 65){ value=1;}
else if(z==40){ break;}
i[z/8]|=value<<(7- (z%8)); j[z]=value; z++; } } answer=i[0]+i[1]+i[2]+i[3]; if(answer==i[4] && answer!=0) { lcd.setCursor(7,0); lcd.print(i[2]); lcd.setCursor(11,1); lcd.print(i[0]); } z=0; i[0]=i[1]=i[2]=i[3]=i[4]=0; } } |
Bildirim