Arduino HC SR04 sensör 7 Segment Display CM uzaklık kontrolü nasıl yapılır?

iamironman

Hectopat
Katılım
3 Kasım 2019
Mesajlar
267
Şimdi böyle bir kodum var hc SR04 sensöründen gelen sinyali CM cinsine çevirip 7 segment Display'e aktarmak istiyorum ve CM uzaklığına göre 0-99 mesafe ölçümü oluşturmak istiyorum nasıl yapabilirim? Sensör ile segment bağlantısını nasıl yapabilirim? Teşekkürler. (segmentler ortak katot ve pin tasarrufu olması için ortak uçlar hariç diğer uçlar birbirine bağlı)

Kod:
#define echopin 13.
#define trigpin 9
int maxmesafe = 99;
int minmesafe = 0;
int mesafe;
long sure;
long uzaklik;
#define potpin A0.
int deger = 0;
int sayac = 0, birler, onlar;
int segmentPin[7] = {2, 3, 4, 5, 6, 7, 8};
int Onlar_Hanesi = 12;
int Birler_Hanesi = 11;
int sayi[10][7] = {
 {1, 1, 1, 1, 1, 1, 0}, // 0
 {0, 1, 1, 0, 0, 0, 0}, // 1
 {1, 1, 0, 1, 1, 0, 1}, // 2
 {1, 1, 1, 1, 0, 0, 1}, // 3
 {0, 1, 1, 0, 0, 1, 1}, // 4
 {1, 0, 1, 1, 0, 1, 1}, // 5
 {1, 0, 1, 1, 1, 1, 1}, // 6
 {1, 1, 1, 0, 0, 0, 0}, // 7
 {1, 1, 1, 1, 1, 1, 1}, // 8
 {1, 1, 1, 1, 0, 1, 1} // 9
};

void setup()
{
 pinMode(trigpin , OUTPUT);
 pinMode(echopin , INPUT);

 Serial.begin(9600);
 Serial.println("potdegeri");
 pinMode(A0, INPUT);

 // Serial.begin(9600);
 for (int i = 0; i <= 7; i++)
 {
 pinMode(segmentPin[i], OUTPUT);
 }

 pinMode(Onlar_Hanesi, OUTPUT);
 pinMode( Birler_Hanesi, OUTPUT);

 onlar = 2;
 birler = 3;

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void loop()
{

 digitalWrite(trigpin,LOW);
 delayMicroseconds(2);
 digitalWrite(trigpin,HIGH);
 delayMicroseconds(10);
 digitalWrite(trigpin,LOW);
 sure = pulseIn(echopin,HIGH);

 uzaklik = sure / 58.2;
 delay(50);
 if(uzaklik >= maxmesafe || uzaklik <= minmesafe)
 return 0;
 return uzaklik;

 Serial.print("sinyal");
 Serial.print(sure);
 Serial.println("hareket etmiştir");

 Serial.print("mesafe");
 Serial.print(uzaklik);
 Serial.print("CM");
 delay(500);

 int setNum = analogRead(potpin);

 setNum = map(setNum, 0, 1023, 0, 100);
 onlar = setNum / 10;
 birler = setNum - (onlar * 10);

 for (int j = 0; j <= 7; j++)
 {
 digitalWrite(segmentPin[j], sayi[onlar][j]);
 }
 digitalWrite(Onlar_Hanesi, HIGH);// onlar.
 digitalWrite(Birler_Hanesi, LOW);

 delay(10);

 for (int j = 0; j <= 7; j++) //tum ekrani sondur.
 {
 digitalWrite(segmentPin[j], sayi[onlar][j]);
 }

 for (int j = 0; j <= 7; j++)
 {
 digitalWrite(segmentPin[j], sayi[birler][j]);
 }
 digitalWrite(Onlar_Hanesi, LOW);// birler.
 digitalWrite(Birler_Hanesi, HIGH);

 delay(10);

 for (int j = 0; j <= 7; j++)
 {
 digitalWrite(segmentPin[j], sayi[birler][j]);
 }

}
 

Geri
Yukarı