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
280
Ş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]);
 }

}
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı