Menggunakan sensor ultrasonic Arduino

Menggunakan sensor ultrasonic untuk mengukur jarak menggunakan arduino
berikut ini skemanya

skema ultrasonic dan 7 segment

Karena kebanyakan saya tidak gambarkan semua led 7 segmentnya
dalam gambar saya menggunakan common anoda dan pin led 0 sampai 6 di hubungkan ke Port D 0 sampai 6
sedangkan anodanya di pin 8 untuk satuan 9 untuk puluhan 10 ratusan dan 11 ribuan

sedangkan kaki modul ultrasonic hc SR-04 pin echo ke A1 dan trig ke A2

Video Hasil

Arduino Sketch

dan berikut ini sketchnya


int trig = A2, echo =  A1;

void setup() { 
 //Serial.begin(9600);
      DDRD = B11111111;
      DDRB = B11111111;

     PORTD = B00000000;

      pinMode(trig,OUTPUT);
      pinMode(echo,INPUT); 
}

int distance = 0; 
void ukurJarak(){
      digitalWrite(trig,HIGH);
      digitalWrite(trig,LOW);
      int waktu = pulseIn(echo,HIGH);
      distance = waktu / 58.13; 
  
  }

 
 

byte angka[]  = {
0b11000000,
0b11111001,
0b10100100,
0b10110000,
0b10011001,
0b10010010,
0b10000010,
0b11111000,
0b10000000,
0b10010000,
0b11111111
};


boolean waitUntil(long *waktu, int interval){
       unsigned long waktuS = millis();
       if(waktuS - *waktu > interval){
          *waktu = waktuS;
          return true;
        }  else { 
            return false;
          }
  }

int myangka[] = {0,0,0,0};
void scane(){
    for(int i=0; i < 4;i++){
          
        PORTD = angka[10];
        PORTB = B1 << i; 
        PORTD = angka[myangka[i]];
      }
  }

void splitAngka(int a){
    myangka[0] = 0;
    myangka[1] = 0;
    myangka[2] = 0; 
    myangka[3] = 0;
      for(int i = 0; i < 4; i++){
            myangka[i] = a % 10;
            if(a >= 10) a = (a - myangka[i]) / 10;
            else break;
        }
    
  }


long waktunyala = 0;  
void loop() { 
  if(waitUntil(&waktunyala,1000)){ 
      ukurJarak();
      splitAngka(distance);   
    }

  scane(); 
}