티스토리 뷰

수업일지

4월 3일 수업(day5)

오직 2017. 4. 5. 10:37

그동안 수업시간에 실습을할 시간이 충분하지 못했기에, 이번 수업은 전적으로 실습에 수업시간을 할애했다.


총 네 가지의 회로를 만들어보았는데,


1. 아두이노의 명령어를 이용하여 푸쉬버튼이 눌린 횟수를 세주는 회로.


2. 3색 LED를 컨트롤하는 회로.


3. 피에조 부저를 사용한 회로.


4. 서보 모터를 조절하는 회로.


이렇게 네 개를 만들었다.



실습 내용을 하나씩 살펴보도록 하자.


1. 푸쉬버튼 횟수



회로는 단순하니 코드를 살펴보자.

캡쳐는 안되어있지만 당연히 buttonPin에 해당하는 핀쪽에는 풀다운 저항을 달아준 푸쉬버튼을 달아놓았다.

loop부분을 보면, buttonPin에 전압이 걸리면 변수 buttonState가 바뀔 수 있게 설정해두었다.

loop의 마지막에서 lastButtonState에 buttonState를 저장해 둠으로써

다음 loop를 돌 때 이를 새로운 buttonState와 비교할 수 있게 준비해둔다.

새로 루프가 돌 때, if문을 통해 버튼이 눌렸는지 확인을 할 수 있는데,

만일 버튼을 누르거나 뗀다면 lastButtonState와 buttonState의 값이 달라질것이므로 첫 if문으로 들어간다.

그 경우에서도 buttonState는 HIGH, lastButtonState가 LOW 여서 값이 다르다면

버튼이 눌린 직후라는 의미이므로 buttonCounter의 숫자를 하나 올려주고

시리얼 모니터에 눌렸음을 표시해준다.

반대의 경우는 버튼에서 손을 땐 직후이므로 해당하는 문구를 시리얼 모니터에 표시해준다.


혹시모르는 불안정한 신호를 대비해 delay함수를 넣어준다.

혹시 아주 짧은 시간에 신호가 의도하지 않게 변한다고 하더라도 오작동의 확률이 낮아진다.


버튼을 누르고 뗄 때마다 시리얼 모니터에 표시됨을 확인할 수 있다.



2. 3색 LED



3색 LED이다.

원래 쓰던 LED와 동작하는 방식은 동일하지만 단지 -를 공유하는 세 개의 독립적인 LED라고 봐도 되는 듯 하다.

우리가 사용하는 3색 LED는 -을 공유하지만 +를 공유하는 3색 LED도 있다고 한다.

알맞은 저항을 계산하여 회로에 설치해준 뒤 LED를 사용하던대로 +쪽에 HIGH를 걸어주면 각각의 불이 들어온다.




아두이노도 JAVA처럼 메소드를 작성해서 loop 안에서 사용할 수 있는지 확인해보기 위해 한 번 loop 밖에 작성해보았다.

실험해보니 아두이노에서도 메소드를 따로 작성하여 사용해도 작동한다.

ledON을 while문에다 넣어주어 LED가 깜빡이게 만들어준다.





3. 피에조 부저



피에조부저를 사용하기 위해서는 tone함수를 사용한다.

정말 아두이노의 친절함은 어디까지일까.

HIGH LOW를 일정한 주기로 발생시키는 원리기에 여러 함수들의 조합으로 컨트롤 하게 할 수도 있을텐데,

친절하게도 tone함수를 제공해준다.... 갓두이노 차냥해...

tone함수는 세 개의 변수를 받을 수 있다.

pin, 주파수, 시간을 순서대로 입력받음으로써 손쉽게 피에조부저가 동작하게 만들 수 있다.



가장 간단한 회로였으므로 설명은 생략한다 pitch를 조절하기 위해 가변저항과 map함수를 사용하였다.


4. 서보모터



서보모터는 동작을 먼저 확인해보도록하자.


서보모터는 위의 영상과 같이 코드에 따라 받은 수치만큼 회전하는 모터이다.

우리가 사용한 서보모터는 180도 까지 회전하는데 다른 서보모터도 마찬가지인지 모르겠다.

서보모터를 다루기 위해서는 아두이노에서 Servo 클래스의 인스턴스를 선언해주어야한다.

setup에서는 attach 메소드를 이용하여 몇번 핀에 서보모터가 연결되어있는지 설정해준뒤

write 메소드에 0~180 값을 입력해주어 몇도까지 모터가 회전하는지 설정해준다.


수업시작하면서 오토마톤에 대해서 배웠는데

전기회로를 이용한 오토마톤을 만들 때 요긴하게 사용할 수 있을 것 같은 부품이다.

'수업일지' 카테고리의 다른 글

4월 24일 수업(day8)  (0) 2017.04.29
4월 17일 수업(day7)  (0) 2017.04.19
3월 27일 수업(day4)  (0) 2017.03.29
3월 20일 수업(day 3)  (0) 2017.03.22
3월 13일 수업(day 2)  (0) 2017.03.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함