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