반응형

【 아두이노 센서#30】 틸트센서( KY-017) Sensor 다루기 


  오늘은 틸트 ( Tilt Sensor)를 다루어 보고자 한다. 일명 기울기 센서라고 하는데, 기울기가 변화되는 것을 감지해서 무언가를 작동시킬 수 있는 스위치의 역할로 사용할 수 있다. 





▶ 선수 학습 :

 없음. 


▶ IR 센서 사양 및 동작 특성





▶ 실습 목표 :  


1. 틸트 센서를 기울여 기울기에 따른 스위치 동작을 이해 할 수 있다. 


2. LED를 연결하여 틸트 센서의 동작에 따른 LED를 On /Off 할 수 있다.


▶ 실습 회로도면 :
  (이미지 클릭하면 확대 가능)



▶ 실습 절차  : 


1.    위 회로 연결도를 참고하여 부품들을 연결한다
2.    틸트 센서 내부에 있는 기울기용 스위치 역할 을 하는 물질은 수은이기 때문에 유리관이 깨지지 않도록 주의 해서 다룬다. 
3.    LED를 별도로 넣어 센서를 기울여 보고 LED가 On/Off 되는지 확인한다.(기울기에 따른 동작의 민감도를 직접 확인 해본다. ) 

▶ 프로그램 코드 및 설명 : 

/* 틸트 tilt 센서의 동작을 LED로 확인해보기   */


int Led = 8;

int SwOut = 7;

int val;


void setup() {

  pinMode(Led, OUTPUT);

  pinMode(SwOut, INPUT);

}


void loop() {

  val = digitalRead(SwOut);  // 틸트센서 센서값 읽어 저장

  if (val == HIGH)

  {

    digitalWrite(Led, HIGH);

  }

  else

  {

    digitalWrite(Led, LOW);

  }

  delay(100);  

}



▶ 실행영상 :  

(전체화면 보기로 보세요)




▶ 아두이노 파일다운 :

Tilt_SW.ino




반응형
반응형

【 아두이노 에러 잡기   #2 exit status 1 컴파일 에러


▶ 에러 증상  

 

.

.

.

exit status 1 

보드 Arduino/Genuino Uno 컴파일 에러 






▶ 에러 원인   

 주로 스케치에서 #include 로 헤더파일 등의 함수를 쓰겠다고 선언 하였으나, 함수(라이브러리)가 스케치상에서 추가가 되지 않은 경우 발생한다.  




▶ 에러 증상 예시 :


포함시켜 놓은 라이브러리가 스케치에 추가가 되지 않아 에러 발생!



▶ 에러 해결 방법   


해결하기 쉬운 순서대로 :


 ① 라이브러리 직접 검색으로 추가하기 :

스케치 프로그램 메뉴에서  스케치메뉴  라이브러리 포함하기메뉴  라이브러리 관리...을 클릭!


 아래 처럼 메니저 창이 나타나면 검색창에 pitches 정도만 입력 하면 설치파일이 등록되어 있는 경우 아래처럼 설치버전이 나타남.   설치 버튼을 클릭 하여 설치한 후 다시 컴파일 하면 에러 해결 됨. (그래도 에러가 날 경우 스케치 파일을 종료하고 다시 열어서 실행해 볼 것) 

 



 ② pitches.zip 라이브러리를 인터넷에서 검색 후 다운 받아 추가하기 :

 스케치 프로그램 메뉴에서  스케치메뉴  라이브러리 포함하기메뉴  .ZIP 라이브러리 추가...를 클릭!  


 ③ '파일 추가'로 라이브러리 추가 하기 :


 pitches.h 헤더 파일만 가지고 있는 경우 아래 경로로 pitches 라는 새폴더를 만들고 그 속에 pitches.h 파일을 복사해 넣는다.


그런다음, 

  스케치 프로그램 메뉴에서  스케치메뉴  파일 추가...메뉴를 클릭!

하여 라이브러리를 추가한다.




반응형
반응형

【 아두이노 기초 】 #13 멜로디 출력 실습 II



 지난시간 스피커를 통해 멜로디를(Melody)를(도.레.미...)를 출력 출력해보았다. 이번 시간에는 국민 멜로디인 '학교종이 땡땡땡~'을 연주해보도록 하겠다.

동작이 잘 된다면 다른 멜로디도 작성해보면 재미 있을 것이다.



▶ 실물 회로도면 :



▶ 실제 회로 구성 모습 



▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : 스피커, 저항 (100Ω) 


▶ 회로 도면   : 


※ 스피커는 일단 타입의 소형 스피커 혹은 피에조 스피커 등 사용해보고 소리가 비교적 잘 들리는 것을 선택한다. 


▶ 실습 절차  : 



▶ 프로그램 (코드& 설명) : 


 


▶ 실행 영상 : 

  


제대로 동작 하려면, Pitches.h 라이브러리가 설치 되어 있어야 한다. 

라이브러리가 등록이 되어 있지 않으면 아래와 같은 에러가 나타난다. 


"exit status 1 보드 Arduino/Genuino Uno 컴파일 에러" 와 같은 에러가 나는 경우 아래 첨부파일에 있는 헤더파일(.h)을 아두이노 스케치의 라이브러리에 추가 해주어야 한다. 


만약 이와 같은 에러가 발생할 경우,  

아래 에러 해결 글을 참조 할 것




▶ 아두이노 코드 다운로드 : 


pitches.h

sketch_Melody2schoolbell.ino





반응형
반응형

【 아두이노 기초 】 #12 멜로디 출력 실습 I




 스피커를 통해 멜로디를(Melody) 출력해본다. 

단순한 멜로디출력이지만 음이 만들어지는 원리와 음의 주파수에 대해 이해할 수 있게 된다. 



▶ 실물 회로도면 :



▶ 실제 회로 구성 모습 



▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : 스피커, 저항 (100Ω) 


▶ 회로 도면   : 


※ 스피커는 일단 타입의 소형 스피커 혹은 피에조 스피커 등 사용해보고 소리가 비교적 잘 들리는 것을 선택한다. 


▶ 실습 절차  : 



▶ 프로그램 (코드& 설명) : 


  


▶ 실행 영상 : 

  




※ 다음 글에서는 간단한 음악을 플레이 해보도록 하겠다


제대로 동작 하려면, Pitches.h 라이브러리가 설치 되어 있어야 한다. 

라이브러리가 등록이 되어 있지 않으면 아래와 같은 에러가 나타난다. 


"exit status 1 보드 Arduino/Genuino Uno 컴파일 에러" 와 같은 에러가 나는 경우 아래 첨부파일에 있는 헤더파일(.h)을 아두이노 스케치의 라이브러리에 추가 해주어야 한다. 

만약 이와 같은 에러가 발생할 경우,  

아래 에러 해결 글을 참조 할 것

클릭! 컴파일 에러 잡기 



▶ 아두이노 코드 다운로드 : 


sketch_Melody.ino

pitches.h



 

[ 회로 설명 ]


위  LM386은 IC 는  OPAMP  IC 의 한 종류이고, 

저전압 오디오 신호를 증폭해 주는 IC 입니다.


3번 핀에 가변저항을 이용하여 입력 Audio(음성) 신호가 입력이 되고 5번 핀 출력에 증폭이 되어 나오는 회로가 됩니다. 

 ( 참고 : 1번 8번 핀에 콘덴서나 저항 등의 특별한 연결이 없을 경우 위 이미지에 표시 된 것 처럼 게인이 20 인 회로가 됩니다. 

증폭도 구하는 식 : 20log(x) = 26 db (데시벨) ,    x = 19.9...   즉, 약20배 정도의 전압 증폭을 보여줍니다. 그리고 1, 번 8번 핀에 콘덴서를 달거나 콘덴서와 저항의 조합을 달게 되면 더 올라가게 됩니다.    (26db는 IC를 제조한 회사에서 회로 데이터 시트를 다운받아 참고,  Vs에 6v, 1kHz 전압의 경우)  )


출력에 연결된 0.05uF과 10옴의 저항 회로는 출력 스피커에 의한 발진(진동)을 제거해 주는 역할 을 하게 됩니다(bypass) , 

 그리고 오디오신호(음성등의 신호)와 함께 5V 직류전압이 같이 바이어스 되어 입출력이 되는데요, 신호를 증폭하고 난 후의 5V 전압은 출력에서 제거를 하고 오디오 신호만 출력해야 합니다. 그렇지 않을 경우 스피커가 과열되거나 해서 탈 수 있습니다. 그래서 콘덴서(여기서는 250uF)를 달아서 직류 전압성분을 제거 하는 역할 을 하게 됩니다.  250uF의 콘덴서는 f=1/2πRC, 8옴의 스피커일 경우 80Hz 까지의 저음을 들을 수가 있고 더 낮은 저역통과를 원하면 콘덴서 용량을 키워 주면 됩니다.




아래는 디바이스 마트 등에서 판매하는 모노 디지털 증폭모듈(lm386) 입니다.



반응형
반응형

【 아두이노 기초 】 #11 FND 구동 실습 II



 앞서 FND에 '0'이라는 숫자를 표시해 보았다.  이제 FND에 숫자 0부터 9까지 카운트를 해보도록 하자.


참조 링크 : FND 구동실습 I 



▶ 실물 회로도면 :




▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : FND (507, Common Anode 타입, 공통단자 +전압 연결),  220Ω 


▶ 회로 도면   : 


※ FND 는 크게 Anode(# 507) 타입과 cathode (#500) 타입 두 가지로 나뉜다. cathode(음극) 타입은 공통단자가 GND(그라운드, : 흔히 말하는 -마이너스 단자 )로 연결시켜 사용하는 타입이다. 위 도면에서 FND 내부의 LED 방향을 유심히 살펴보자. 


▶ FND 세그먼트와 핀 배치  : 

▽ #507


▽ #500





▶ 프로그램 (코드& 설명) : 


// 공통단자가 +VCC 연결인 507 Anode 타입을

// 사용할 경우 위 코드처럼 LOW를 출력해야 

// 해당 세그먼트가 켜진다  



▶ 실행 영상 : 

  



 


※ 추가로 알파벳 대문자 혹은 소문자 출력도 코딩을 해보면 좋다.


▶ 아두이노 코드 다운로드 : 

sketch_FND0to9.ino




반응형
반응형

【 아두이노 기초 】 #10 FND 구동 실습 I


 아두이노 I/O 포트 제어를 통해 FND(7 segment display)를 제어 해보자.


▶ 실물 회로도면 :




▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : FND (507, Common Anode 타입, 공통단자 +전압 연결),  220Ω 


▶ 회로 도면   : 


※ FND 는 크게 Anode(# 507) 타입과 cathode (#500) 타입 두 가지로 나뉜다. cathode(음극) 타입은 공통단자가 GND(그라운드, : 흔히 말하는 -마이너스 단자 )로 연결시켜 사용하는 타입이다. 위 도면에서 FND 내부의 LED 방향을 유심히 살펴보자. 


▶ FND 세그먼트와 핀 배치  : 

▽ #507


▽ #500





▶ 프로그램 (코드& 설명) : 


// 공통단자가 +VCC 연결인 507 Anode 타입을

// 사용할 경우 위 코드처럼 LOW를 출력해야 

// 해당 세그먼트가 켜진다  



▶ 실행 영상 : 


  FND에 숫자 '0'을 표시해보도록 하자.  기타 원하는 숫자 혹은 위치에 LED segment를 켜보도록 연습해본다.


 



※ 다음 글에서 이번 과제에 이은 FND 구동을 위한 응용 예제를 다루어 보도록 하겠다. 


▶ 아두이노 코드 다운로드 : 

sketch_FND.ino




반응형
반응형

【 아두이노 기초 】 #09 시리얼 통신을 통한 I/O 구동 실습

 시리얼(Serial) 통신을 이용하여 아두이노의 포트 제어를 실습해 볼 수 있다.  



▶ 실물 회로도면 :




▶ 부대품 목록 : 아두이노 보드, 브레드 보드


▶ 부품 목록    : LED X 5 (보유수량 만큼),  220Ω(LED 수량 만큼) 


▶ 회로 도면   : 


※ LED 극성에 주의 한다. 


▶ 실제 연결 모습  : 


아두이노의 0, 1 번 포트는 하드웨어 시리얼 통신을 위한 TX, RX 포트 임으로 아두이노의 2번 포트 부터 사용하도록 한다.




▶ 프로그램 (코드& 설명) : 



2~5번 LED 코드 내용도 위와 같은 형태로 해서 작성한다. 



▶ 실행 영상 : 


 (전체화면으로 보세요)



※ 다음 시간에는 이런 입출력 기능을 이용하여 FND (7segment Display) 를 제어 해도도록 하겠다. 


▶ 아두이노 코드 다운로드 : 

sketch_SerialLEDon_off.ino


반응형
반응형

【 아두이노 기초 】 #08  포토레지스터( CDS ) 제어

 

 빛에 따라 저항 값이 변하는 포토레지스터, 일명 CDS를 이용하여 LED를 켜고 끄는 실습을 해보자.  빛을 차단하면 LED가 켜지고 빛에 노출되면 LED가 꺼지도록 해보자. 또는 그 반대도 가능하다.

 

 

 

 

▶ 실물 회로도면 :

 

 

 

 

▶ 부대품 목록 : 아두이노 보드, 브레드 보드

 

▶ 부품 목록    : LED, 220Ω , 10㏀, CDS

 

▶ 회로 도면   : 

 

▶ 실제 연결 모습  : 

 

 

 

▶ 프로그램 (코드& 설명) : 

 

int LED=6;         //우노에서는 디지털 포트는 숫자만 입력int LIGHT=A0;  //아날로그 포트는 A0 형태로 입력int val=0;int fix=0;
void setup() { pinMode(LED,OUTPUT); Serial.begin(9600);}
void loop() { val=analogRead(LIGHT); fix = constrain (val,0,255); analogWrite(LED, fix); Serial.println( fix ); delay(100);

 

}

 

 

▶ 프로그램 (코드 다운로드) : 

LED_CDS-6.zip
다운로드

 

 

▶ 실행 영상 : 

 

 (전체화면으로 보세요)

반응형
반응형

【 아두이노 기초 】 #07  아날로그 입력과 출력

 아두이노 보드에서 아날로그 신호를 입력하고 출력하는 기능에 대해 다루어 보고자 한다. 신호 데이터 값은 시리얼 모니터 기능을 통해 쉽게 확인이 가능하다.

 

 

 

 

▶ 실물 회로도면 :

 

 

▶ 부대품 목록 : 아두이노 보드, 브레드 보드

 

▶ 부품 목록    : 가변저항 (용량값은 무관)

 

▶ 회로 도면   : 

 

 

▶ 프로그램 (코드& 설명) : 

 

 

 

▶ 실행 영상 : 

 

 (전체화면으로 보세요)

반응형