Processor
【라즈베리파이】 wiringPi C 언어 : 초음파(ULTRASONIC) 센서
작성자 임베디드코리아
작성일26-02-17 18:17
조회83회
댓글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