아두이노 도플러 효과 - adu-ino dopeulleo hyogwa

Q. 아두이노 도플러효과실험

키잔 (일반인)  |  2021.03.22 20:11

아두이노와 도플러효과키트를 이용하여 도플러효과 실험을 하고 싶은데요. 어떤 센서는 사용하면 쉽게 주파수 변화값을 얻을수 있는지 알려주세요

#아두이노 #도플러효과

[일루미나] 포부를 실현하는 최고 수준의 처리량!

첫 답변을 달아주세요.

답변하기

<본 정보는 네티즌에 의해 작성된 정보로, BRIC에서 추가적인 검증과정을 거친 정보가 아님을 밝혀드립니다.>

목록

프리미엄 할인행사

16,000종, 연구의 성공률를 높여줄 1차항체 전품목 ABclonal 1+1 EVENT

~ 11-30까지 | 에이비클로널코리아

Thermo Scientific 마지막 겨울 할인 이벤트 최대 25%! (Co2 Incubator, Loca...

~ 12-31까지 | 대일랩서비스

최대 800개 유전자 발현량을 동시에 확인할 수 있는 nanoString nCounter SPRINT SAL...

~ 12-31까지 | 필코리아테크놀로지

고온(45℃ ~ 60℃)에서 활성을 갖는 NEB의 혁신적인 신제품 !! Msz Exonuclease Ⅰ

~ 12-28까지 | 필코리아테크놀로지

Amersham™ ImageQuant™ 500 연말 프로모션 세일(컨설팅/소모품 혜택)

~ 12-16까지 | 싸이티바

[TECAN No.1 한국공식대리점] TECAN Automation / Liquid handler / Mic...

~ 12-31까지 | 바이오닉스

[TECAN한국공인대리점] liquid handler 실험실 자동화장비 프로모션~!!

~ 12-31까지 | 그린메이트바이오텍

3차원 세포배양용기를 사용하여 기존 2차원 세포배양의 한계를 극복해보세요!

~ 11-30까지 | 나노팬텍

도플러 효과

고등학교 물리 시간에 도플러 효과를 떠올리면, 흔히들 엠뷸런스를 생각하게 합니다.

멀리서 다가오는 사이렌소리가 가까이 오게 되면 점점 높은 소리로 변하다가 멀어져가면서 낮은 음으로 바뀝니다. 

소리가 왜곡되는 것 같은 효과를 느낄 수 있죠. 이러한 현상을 도플러 효과의 예로 배웠습니다. 

위의 그림에서 엠뷸런스가 정지해 있는 사람에게 가까이 오게 되면, 파장이 짧아지고 이에 따른 주파수(진동수)가 올라가게 됩니다. 

이를 이용해서 속도를 측정할 수 있는데, 그 예로 스피드건을 대표적으로 들 수 있습니다. 

스피드건은 레이더파를 발사하고, 이 레이더파가 차량에 반사되어 돌아오는 것을 측정합니다. 

레이더파는 전자기파의 일종으로 보낼 때의 주파수와 반사되어 돌아오는 주파수를 비교하여 속도를 측정하게 됩니다.

예를 들어, 스피드건이 내보내는 주파수가 f 라고 가정하고, 전자기파의 속도는 빛의 속도인 c, 그리고 측정된 주파수의 차이가 Δf 라면, 자동차의 속도는 다음과 같습니다. 

 

이러한 도플러 효과를 이용하여 속도를 측정할 수 있는 장비를 소개하면 다음과 같은 소자들이 있습니다. 

//goo.gl/PkkQSc 

 iSYS-101, IPM-165 : 제품 바로가기

아두이노 및 라즈베리파이와 연결해서 어렵지 않게 사용할 수 있는데, 자율주행자동차에 대한 교육 및 연구에서도 많이 활용할 수 있을 것이라 생각됩니다. 


 

1) 속도 측정 아두이노 소스코드 (iSYS-101)

int ledPin = 13;        // onboard LED

int sensorPin = 7;      // OC connected to digital Pin 7

int val = 0;            // variable to store the read value

void setup()

{

  pinMode(ledPin, OUTPUT);

  pinMode(sensorPin, INPUT_PULLUP);

}

void loop()

{

  val = digitalRead(sensorPin); //read the Sensor input pin

  if (val == 0)

  {

    digitalWrite(ledPin, HIGH);

    delay(1000);

  }

  else

  {

    digitalWrite(ledPin, LOW);

    delay(1000);

  }

}

아두이노 소스코드

1) 속도 측정 아두이노 소스코드 (IPM 165)

int v, vmax, pin =  7 ;

void  setup ()

{Serial.begin ( 9600 );

  pinMode (pin, INPUT);

}

void  loop ()

{ unsigned  long T;          // period in us 

 double f;                 // frequency in MHz 

 char s [ 20 ];               // output 

 string vmax = 0 ;                   // 

 Serial.println ( "ready" );  // trigger; 

 while (digitalRead (pin)); 

 while ( ! digitalRead (pin));

 for ( int i = 0 ; i <16 ; i ++ )      // 16 measurements (LCD) 

 {T =pulseIn (pin, HIGH) + pulseIn (pin, LOW);

  f = 1 / ( double ) T;           // f = 1 / T    

  v = int ((f * 1e6 ) /44.0 );     // 24 GHz radar 

  vmax = max (v, vmax);        // 

  slave pointer Serial.print ( ">" );       // 16 points (LCD)

 } 

 sprintf (s, "% 3d km / h" , vmax);

 Serial.println (s);        // output 

 delay ( 2000 );              // 2 seconds

}

2) 속도 측정 아두이노 소스코드 + 16x2 LCD 디스플레이  (IPM 165)

#include <LiquidCrystal.h>  

LiquidCrystal lcd ( 12 , 11 , 5 , 4 , 3 , 2 );

int v, vmax, pin =  7 ;

void  setup ()

{lcd.begin ( 16 , 2 );

  lcd.print ( "Arduino radar" );

  pinMode (pin, INPUT);

  pinMode ( 13 , OUTPUT);

}

void  loop ()

{ unsigned  long T;          // period in us 

 double f;                 // frequency in MHz 

 char s [ 20 ];               // output 

 vmax = 0 ;                   // 

 lcd.setCursor ( 0 , 1 ); lcd.print ( "Ready ..." );

 while (digitalRead (pin)); 

 while ( ! digitalRead (pin));

 for ( int i = 0 ; i <16 ; i ++ )     // 16 measurements (LCD)

 {T = pulseIn (pin, HIGH) + pulseIn (pin, LOW);

  f = 1 / ( double ) T;          // f = 1 / T    

  v = int ((f * 1e6 ) /44.0 );    // 24 GHz radar 

  vmax = max (v, vmax);       // 

  slave pointer lcd.setCursor (i, 1 ); lcd.print ( ">" );

 } 

 sprintf (s, "% 3d km / h" , vmax);

 lcd.setCursor ( 0 , 0 );

 lcd.print ( "Measured" ); lcd.print (s);

 lcd.setCursor ( 0 , 1 ); lcd.print ( "===============" );

 delay ( 2000 );             // 2 seconds

}

3) 모션 감지 아두이노 코드  (IPM 165)

#define LED 13

#define PIN 7

void  setup ()

{PinMode (PIN INPUT); pinMode (LED, OUTPUT);}

void  loop ()

{ while ( ! digitalRead (PIN)); while (digitalRead (PIN));

 delay ( 50 ); digital write (LED, HIGH);

 delay ( 4000 ); digitalWrite (LED, LOW); // 4 seconds

}

4) 모션 감지 아두이노 코드 + 블루투스 모듈  (IPM 165) 

#define LED 13

#define PIN 7

void  setup ()

{

 pinMode (PIN INPUT); 

 pinMode (LED, OUTPUT); 

 Serial.begin ( 9600 ); 

} 

void  loop ()

{ while ( ! digitalRead (PIN));

 while (digitalRead (PIN)); 

 delay ( 50 );

 Serial.println ( "This is the Arduino." ); 

 digital write (LED, HIGH); 

 delay ( 4000 );            // 2 seconds 

 digital write (LED, LOW); 

} 

5) 속도 측정 + 블루투스 모듈 (IPM 165)

int v, vmax, pin =  7 ;

void  setup ()

{Serial.begin ( 9600 );

 pinMode (pin, INPUT); pinMode ( 13 , OUTPUT);

}

void  loop ()

{ unsigned  long T;        // period in us 

 double f;               // frequency in MHz 

 char s [ 40 ];             // output 

 vmax = 0 ;                 // maximum value 

 while (digitalRead (pin)); while ( ! digitalRead (pin));

 digitalWrite ( 13 , HIGH);

 for ( int i = 0 ; i <5 ; i ++ )     // 5 measurements 

 {T = pulseIn (pin, HIGH) + pulseIn (pin, LOW);

  f = 1 / ( double ) T;         // f = 1 / T    

  v = int ((f * 1e6 ) /44.0 );   // 24 GHz radar 

  vmax = max (v, vmax);      // slave pointer

 }

 // For the smartphone via HC06-Bluetooth 

 sprintf (s, "Maximum speed:% 3d km / h" , vmax);

 Serial.println (s);      // output 

 delay ( 4000 );            // 4 seconds 

 digitalWrite ( 13 , LOW);   

}

Toplist

최신 우편물

태그