Processor

【라즈베리파이】 wiringPi C 언어 : 초음파(ULTRASONIC) 센서

작성자 임베디드코리아 작성일26-02-17 18:17 조회91회 댓글0건
--->>> 예제 1  :  ultrasonic01.c  <<<---------------------------------------
#include <stdio.h>
#include <wiringPi.h>

const int pinEcho = 1;
const int pinTrigger = 0;

int main(void)
{
wiringPiSetupGpio();

pinMode(pinEcho, INPUT);
pinMode(pinTrigger, OUTPUT);

digitalWrite(pinTrigger, LOW);
delay(30);

while(1)
{
digitalWrite(pinTrigger, HIGH);
delayMicroseconds(20);
digitalWrite(pinTrigger, LOW);

while(digitalRead(pinEcho)==LOW);
long startTime = micros();

while(digitalRead(pinEcho)==HIGH);
long endTime = micros()-startTime;

int distance = endTime / 58;

printf("Distance:%d\n",distance);
delay(1000);
}
return 0;
}
-----------------------------------------------------------------------------------------
$ gcc  -o ultrasonic01  ultrasonic01.c  -lwiringPi
$ sudo  ./ultrasonic01


--->>> 예제 :  ultrasonic02.c    <<<-------------------------
#include <stdio.h>
#include <wiringPi.h>

const int pinEcho = 1;
const int pinTrigger = 0;

const int pinLed = 21;

int main(void)
{
wiringPiSetupGpio();

pinMode(pinEcho, INPUT);
pinMode(pinTrigger, OUTPUT);
pinMode(pinLed, OUTPUT);

digitalWrite(pinTrigger, LOW);
delay(30);
while(1)
{
digitalWrite(pinTrigger, HIGH);
delayMicroseconds(20);
digitalWrite(pinTrigger, LOW);

while(digitalRead(pinEcho) ==LOW);


long startTime = micros();

while(digitalRead(pinEcho)== HIGH);
long endTime = micros() - startTime;

int distance = endTime/58;
if(distance <10)
{
digitalWrite(pinLed, HIGH);
}
else
{
digitalWrite(pinLed, LOW);
}
delay(1000);
}
return 0;
}
           




                   
  window.ReactionButtonType = 'reaction';
window.ReactionApiUrl = '//alisyabob.tistory.com/reaction';
window.ReactionReqBody = {
    entryId: 166
}
-----------------------------------------------------------------------------------
$ gcc  -o ultrasonic02  ultrasonic02.c  -lwiringPi
$ sudo  ./ultrasonic02