728x90
반응형

이번에 내용은 초음파센서를 이용한 거리측정입니다.

초음파는 20khz이상(가청주파수 위) 주파수를 이용한 센서이며, 보통 거리나 앞에 장애물을 인식하는 센서로 이용됩니다.

 

사용할 초음파센서에 전기적인 특성부터 확인.

-전원 : 5V

-측정각도 : 15도

-트리거에 입력 받는 펄스 시간 : 10uS

-거리 계산식 : (high level time×velocity of sound (340M/S) / 2

구성도

코딩

int trig = 3;

int echo = 4;

void setup() {

pinMode(trig, OUTPUT);

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

pinMode(8, OUTPUT);

pinMode(7, OUTPUT);

pinMode(6, OUTPUT);

pinMode(echo, INPUT);

Serial.begin(9600);// 9600bps 초당 비트 전송 속도

}

void loop() {

digitalWrite(trig, HIGH);

delayMicroseconds(10);

digitalWrite(trig, LOW);

int distance=pulseIn(echo, HIGH)/58; //거리=속도x시간 , 초음파는 초당 340m로 반응 340mx1s=340m/s

//1cm(0.01m)=340m/초 ,T=D/S, T=0.01/340 29.42us 즉 1cm에 29.42us이다.

//340m/s -> cm/us로 변환 -> 34000cm/s -> 34000*10^-6 -> 0.034cm/us

if(distance>13)

digitalWrite(13, HIGH);

else

digitalWrite(13, LOW);

if(distance>12)

digitalWrite(12, HIGH);

else

digitalWrite(12, LOW);

if(distance>11)

digitalWrite(11, HIGH);

else

digitalWrite(11, LOW);

if(distance>10)

digitalWrite(10, HIGH);

else

digitalWrite(10, LOW);

if(distance>9)

digitalWrite(9, HIGH);

else

digitalWrite(9, LOW);

if(distance>8)

digitalWrite(8, HIGH);

else

digitalWrite(8, LOW);

if(distance>7)

digitalWrite(7, HIGH);

else

digitalWrite(7, LOW);

if(distance>6)

digitalWrite(6, HIGH);

else

digitalWrite(6, LOW);

delay(100);

}

초음파데이터 사양서를 보게되면 에코는 트리거에서 나가고 반사되는 하이레벨을 읽는 것입니다.

주석으로 시간을 구하는 방법과 속도로 변환하는 방법 2가지를 남겨 두었습니다.

트리거 신호가 us이기때문에 에코도 us로 변환해서 계산하시면됩니다.

 

 

아두이노 초음파 거리 측정

 

반응형
728x90
반응형

기존에 진행했던 시리얼 통신 제어 1에 이어서 추가적인 기능을 더 넣었습니다.

예제 CODE

char a;//문자 a선언

int i;

void setup() {

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(12,OUTPUT);

pinMode(13,OUTPUT);// 6~13번 핀을 출력으로 사용

Serial.begin(9600);// 9600bps 초당 비트 전송 속도

}

void loop() {

if(Serial.available()){

a=Serial.read();

if(a=='1')

{

Serial.println("led shift on");

Serial.print("read:");

Serial.println(a);

for(i=6; i<14; i++)

{

digitalWrite(i,HIGH);

delay(200);

}

}

if(a=='2')

{

Serial.println("led shift OFF");

Serial.print("read:");

Serial.println(a);

for(i=6; i<14; i++)

{

digitalWrite(i,LOW);

delay(200);

}

 

}

if(a=='3')

{

Serial.println("led shift ");

Serial.print("read:");

Serial.println(a);

for(i=14; i>5; i--)

{

digitalWrite(i,HIGH);

delay(200);

}

for(i=14; i>5; i--)

{

digitalWrite(i,LOW);

delay(200);

}}}}

기존 자료를 보시면 이해가 될 듯합니다. LED 좌우 쉬프팅을 응용하여 신호 1,2,3 3가지를 시리얼 통신으로 제어하는 방법입니다.

 

 

 

Dockligt는 기존에 신호에 대한 부가설명을 하기 위해서 사용했었고 이번에는 아두이노 내부에 있는 통신프로그램으로 진행했습니다.

반응형
728x90
반응형

아두이노로 시리얼 통신하는 예제입니다.

통신을 큰 2개의 파트로 구분하면 직렬 통신 병렬 통신이 있는데 병렬 통신은 말그대로 복수 신호선으로 동시에 여러BIT를 보내는 것이고 직렬 통신은 한 BIT식 전달하는 방식입니다.

시리얼통신 = 직렬 통신

CODE

char a;//문자 a선언

void setup() {

pinMode(13,OUTPUT);// 13번 핀을 출력으로 사용

Serial.begin(9600);// 9600bps 초당 비트 전송 속도

}

void loop() {

if(Serial.available()){

a=Serial.read();

 

if(a=='1')

{

digitalWrite(13,HIGH); // 만약에 1이면 led high주고 led on 뿌리고, read: 뿌리고 a 값 뿌림

Serial.println("led on");

Serial.print("read:");

Serial.println(a);

}

if(a=='0')

{

digitalWrite(13,LOW); // 만약에 0이면 led low주고 led off 뿌리고, read: 뿌리고 a 값 뿌림

Serial.println("led off");

Serial.print("read:");

Serial.println(a);

}

}

}

여기서 시리얼 통신을 처음 하신 분들을 위해서 몇 가지만 설명하고 넘어가겠습니다.

char로 변수선언 : 문자를 수신 받기 위해서

if(Serial.available()) : 시리얼 통신 data에 입력 값을 버퍼에 저장후 확인이 되면~ 이라고 생각하시는게 편합니다.

a=Serial.read() : 입력받은 데이터를 변형없이 그대로 수신

Serial.print : 문자를 시리얼 모니터상에 뿌려주는 것

Serial.println : 뿌려주고 한줄 밑으로 가는 것입니다.

통신 환경

저는 따로 아두이노 프로그램에서 지원하는 시리얼 모니터를 쓰지 않고 docklight라는 프로그램을 썼습니다.

이 프로그램은 인터넷에서 다운 받을 수 있으나, 정품은 구매를 해야합니다,

정품이 아니여도 간단한 TEST는 진행 가능합니다.

일단, 아두이노 보드를 docklight에서 잡아줍니다.

여기서 통신을 하기위해선 스타트 비트와 엔드 비트가 필요합니다.

스타트 비트는 아 이녀석이 지금 통신을 시작하는구나를 알리는 비트고 엔드비트는 말그대로 아 보낼비트 다 보냈구나를 알리는 비트입니다. 이걸 STX,ETX라고 하는데 보내는 문자가 1이면 STX,1,ETX이런식으로 신호를 보내주어야 합니다. HEX TO ASCII 로 변환하면 0X02 =STX, 0X03=ETX, 0X30=0, 0X31=1이므로 위와같이 만들어준 것입니다.

아스키에 다시 체크를 하고 보면 코딩한데로 문자가 출력되고 원하는 보드에 동작을 확인할 수 있습니다.

 

 

반응형
728x90
반응형

ARDUINO FOR문을 이용한 LED 쉬프팅

회로도는 팅커캐트 사이트를 이용해서 그렸습니다.

PIN은 9~2번까지 이용

int i;

void setup() {

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT); //2~9포트 출력설정

}

void loop() {

for(i=2;i<10;i++) //초기 값 i는 2번포트가 켜지고 10보다 i가작으면 증가 하기때문에 2~9번순서로 { //1씩 증가하면서 켜짐

digitalWrite(i, HIGH);

delay(100);

}

for(i=2;i<10;i++) // 반대로 for문 안쪽 문장이 low이므로 2번부터 9번순서로 증가하면서꺼짐

{

digitalWrite(i, LOW);

delay(100);

}

 

}

 

 

반응형
728x90
반응형

WI-FI 6(802.11ax)2019년 8월을 중점으로 정식인증을 앞두고 있어 와이파이6에 대해서 내용을 정리합니다.

1. Wi-Fi6인증?

IEEE 802.11 무선랜 규격은 b->a=g->n->ac 로 분류됩니다.

b : 11Mbps/2.4Ghz/HR-DSSS

a/g : 54Mbps/ a=5Ghz, g=2.4Ghz/OFDM,DSSS

n : 600Mbps/ 2.4Ghz,5Ghz / OFDM

ac : 1Gbps/ 2.4Ghz, 5Ghz/ OFDM

현재 있는 이 규격에서 WI-FI6가 인증되면 802.11ax규격이 추가되는 것입니다.

2. 기존 Wi-Fi들과 Wi-Fi6는 어떤면이 다를까?

당연한 말이지만 가장 큰 장점으로 보는 것은 9.6Gbps라는 속도 입니다.

하지만, 실제 우리가 느끼는 와이파이의 속도는 유선만큼 빠르지 않다고 느낀다는 것입니다.

사용되는 기기, 사람이 많은 지역에서는 와이파이 속도가 급감하고 네트워크 연결이 힘든 경험은 대부분이 겪었던 현실이었습니다.

그래서 와이파이 6은 이론적인 최고 속도만 중점으로 두는 것이 아닌 OFDMA나 MU-MIMO와 같은 기술을 통해 효율 향상과 지연시간 감소를 구현하는 데 집중하고 사용자 체감 속도 개선을 목표로 하고 있습니다.

3. MU-MIMO?

MU-MIMO란 'Multi-User Multiful Input & Multiple Output(다중 사용자, 다중입력 및 다중출력)의 약자입니다. MIMO는 802.11n 와이파이4에서 처음 도입 되었습니다.

MU-MIMO, SU-MIMO

802.11n은 SU-MIMO, 802.11ac는 MU-MIMO를 사용했습니다. SU-MIMO는 접근 포인트가 한개 였다면 MU-MIMO는 접근 포인트가 4개의 데이터 스트림을 동시에 전송할 수 있습니다. 그렇다면 MIMO기술은 ac와ax가 같은게 아닌가?

기존 802.11ac의 채널은 4개 였지만 802.11ax는 8개의 채널을 가지고 있습니다. 8x8 즉, 8개의 입력을 받아 8개의 출력으로 나갈 수 있습니다. 기존 ac보다 ax가 2배이상은 속도가 향상 될 수 있습니다.

4. OFDMA?

 

기존 자료에 OFDM에 대해서 설명을 했었는데, OFDMA는 그 뒤에 Access라는 단어가 추가 되었습니다. 즉, 주파수직교 다중분할 접근 방법이라는 뜻입니다.

기존 OFDM은 클라이언트 하나당 한라인만 서브케리어를 전송하였습니다. 허나 OFDMA은 여러라인을 전부 효율적으로 모든 클라이언트들에게 공유할 수 있습니다. 즉, 단일 클라이언트에게 전송할 수도 있고 유연성을 가지고 빈라인을 사용할 수 있습니다.

이제 WI-FI6규격 인증이 2019년말에 나온다고 하지만 WI-FI6기기 제품이 현재 출시되고 있습니다. 이는 2019년 말 마무리 지을 예정인 최종 802.11ax 표준을 완전히 준수하지 않는 것도 있을 수 있습니다.와이파이 6은 아직 준비되지 않았고, 표준화되지 않았지만, 많은 업체가 제품을 먼저 내놓으려고 합니다. 이러한 경쟁속에서 와이파이 6가 어떻게 시장을 변화시킬지 지켜볼 필요가 있어보입니다.

반응형

'지식data > WLAN' 카테고리의 다른 글

OSI 7계층정리  (0) 2019.08.09
대역폭(Bandwith)Pspice,2.4Ghz,5Ghz  (0) 2019.08.08
OFDM,SNR,dB와dBm 용어 정리  (0) 2019.08.08

+ Recent posts