Merhaba, Ben bir ödev için otoparkın doluluk, boşuk durumunu inceleyeceğim. Kısaca açıklayacak olursam; Kendi hazırlayacağımız kızılötesi devreden gelen bilgilere göre Arduino ya analog inputlardan giriş yapacağım. Bunlara göre de sayım yapacağım. İlk olarak 5 yerim varmış gibi yaptım. Şu şekliyle istediğimi aldım çalışıyor(Proteus’ta simüle ettim. Arduino’m var ama kızılötesi hala hazır olmadığı için simulasyon kullanma gereği duydum) Size danışmaktaki amacım; Derlemeyi 5 araç gibi küçük bir rakama göre yapmam. Daha büyük sayılara da uyarlamak istersek ne yapmam gerekir? Fikir verirseniz sevirim. İyi günler Kodlarım; include <liquidcrystal.h> // LCD kutuphanesi eklendi
LiquidCrystal lcd(27,26,22,23,24,25); // LCD-Arduino pin baglantilari (RS,E,D4,D5,D6,D7)
int sensor1Pin = A0; // Analog Input’ lar
int sensor2Pin = A1;
int sensor3Pin = A2;
int sensor4Pin = A3;
int sensor5Pin = A4;
int sensor1,sensor2,sensor3,sensor4,sensor5;
int dolu1,dolu2,dolu3,dolu4,dolu5,bos1,bos2,bos3,bos4,bos5;
int toplamBos,toplamDolu;
void setup()
{
sensor1=0;
sensor2=0;
sensor3=0;
sensor4=0;
sensor5=0;
}
void loop()
{
sensor1 = analogRead(sensor1Pin); // Sensorlerden gelen degerler
sensor2 = analogRead(sensor2Pin); // Analog islendi
sensor3 = analogRead(sensor3Pin);
sensor4 = analogRead(sensor4Pin);
sensor5 = analogRead(sensor5Pin);
if (sensor1 > 512) // AnalogRead 1024 farkli deger okur.Yarisi kadar hassasiyetle hesaba katarak
{ // sensorden gelen bilgi alindi.
sensor1=1;
}
else
{
sensor1=0;
}
switch (sensor1)
{
case 0:
bos1 =1;
dolu1=0;
break;
case 1:
bos1=0;
dolu1=1;
break;
}
if (sensor2 > 512)
{
sensor2=1;
}
else
{
sensor2=0;
}
switch (sensor2)
{
case 0:
bos2 =1;
dolu2=0;
break;
case 1:
bos2=0;
dolu2=1;
break;
}
if (sensor3 > 512)
{
sensor3=1;
}
else
{
sensor3=0;
}
switch(sensor3)
{
case 0:
bos3 =1;
dolu3=0;
break;
case 1:
bos3=0;
dolu3=1;
break;
}
if (sensor4 > 512)
{
sensor4=1;
}
else
{
sensor4=0;
}
switch(sensor4)
{
case 0:
bos4=1;
dolu4=0;
break;
case 1:
bos4=0;
dolu4=1;
break;
}
if (sensor5 > 512)
{
sensor5=1;
}
else
{
sensor1=0;
}
switch(sensor5)
{
case 0:
bos5 =1;
dolu5=0;
break;
case 1:
bos5=0;
dolu5=1;
break;
}
toplamBos= bos1 + bos2 + bos3 + bos4 + bos5;
toplamDolu= dolu1 + dolu2 + dolu3 + dolu4 + dolu5;
delay(1000);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print(“dolu sayisi=”);
lcd.print(toplamDolu);
lcd.setCursor(0,1);
lcd.print(“bos sayisi=”);
lcd.print(toplamBos);
}
</liquidcrystal.h>