[Arduino]02.시리얼 통신과 가변저항

안녕하세요 유랑입니다.




오늘은 시리얼 통신과 가변저항에 대해 알아보겠습니다.

지난 시간에 배운 내용을 생각하시면서 진행해 나가시면 되겠습니다.

시리얼 통신은 거의 모든 PC에 표준으로 사용되는 디바이스 통신 프로토콜입니다.

아두이노에서 블루투스 통신이나 데이터 값을 수신 받고 싶을때 필요로 하기에 배워보도록 하겠습니다.




1. 시리얼 




1-1) 패러럴과 시리얼



임베디드 시스템은 각종 프로세서와 회로들 간에 서로 통신하며 동작하는 것이 핵심이기 때문에

데이터를 주고 받는 표준 프로토콜들이 필요한 것은 당연합니다.

수많은 프로토콜들이 있지만 일반적으로, 크게 패러럴(병렬) 과 시리얼(직렬)로 나눌 수 있습니다.

패러럴 인터페이스는 다수의 비트를 한번에 전송하는 방법입니다. 

이들은 보통 8 또는 16 또는 그 이상의 라인을 통해 동시에 데이터를 보내줍니다.

반대로 시리얼 인터페이스는 데이터를 스트림으로 바꿔서(직렬화) 한 번에 한 비트씩 전송합니다. 

아래와 같이 시리얼 인터페이스는 CLOCK 라인을 포함 2라인으로 데어터를 전송할 수 있습니다.



[패러럴-병렬]


[시리얼-직렬]




1-2) 아두이노 시리얼 통신



아두이노에서 시리얼을 담당하는 부분은 RX(수신부)와 TX(송신부) 그리고 GND입니다.

*GND는 서로 전압의 기준점을 같게 하기위해서 이어주는 부분이다.

*RX는 수신부로서 상대방의 데이터를 받는 부분이다.

*TX는 송신부로서 내가 보낼 데이터를 상대방한테 전달한다.

그렇기에 아두이노와 블루투스 모듈을 연견할 경우 다음과 같이 연결해야 통신이 진행됩니다.

*아두이노 RX <-> 블루투스 TX

*아두이노 TX <-> 블루투스 RX

*아두이노 GND <-> 블루투스 GND 


[아두이노 - 직렬]




1-3) 시리얼 모니터



시리얼 모니터는 시리얼로 받은 값을 볼 수 있는 창입니다.

아두이노와 컴퓨터는 USB를 통하여 시리얼 통신이 연결되어 있기때문에 

시리얼 통신에 맞는 코드를 입렬 후 업로드 할 경우 값을 받을 수 있습니다.







1-4) 소프트웨어



시리얼 통신은 서로 간의 속도가 매우중요합니다. 

고속도로에서 같이 가는 두 자동차의 속도가 똑같을시 서로의 모습을 보기 편하듯이

시리얼 통신에서는 baud rate라는 속도를 맞춰줘야지 데이터들이 정상적으로 송수신됩니다.

밑에 코드에서 Serial.begin(9600)은 baud rate를 9600으로 맞춰준다는 뜻이며,

Serial.println("Mechasolution")은 시리얼 통신을 통해 보낼 텍스트값을 의미합니다.

코드를 적고 업로드 한 후 시리얼 모니터를 통해 Mechasolution이라는 텍스트를 보실 수 있습니다.







2. 가변저항




2-1) 가변저항이란?



가변저항은 말그대로 저항값이 고정이 아닌 변할 수 있음을 뜻합니다.

드라이버로 가변저항의 윗부분을 왼쪽이나 오른쪽으로 돌릴경우 저항값이 변하게 되는 형식입니다.

가변저항의 양끝부분을 5V와 GND에 연결한 후 가운데있는 Slider부분을 

아두이노의 아날로그 핀에 연결합니다.

이때 아날로그핀이란 0~ 1023의 아날로그 값을 표시할 때 쓰는 핀을 뜻합니다.

지난시간에 led를 점등할때 사용한 디지털 핀은 0V 혹은 5V만 표시할 수 있지만

아날로그핀은 더 세분화하여 표현이 가능합니다.

슬라이더는 5V쪽으로 돌리면 점차 5V가 되고, GND쪽으로 돌리면 0V가 됩니다.







2-2) 하드웨어 연결



브레드보드에 가변저항을 연결 후 다음과 같이 하드웨어를 구성합니다.

*가변저항의 왼쪽부분 <-> 아두이노 GND 연결

*가변저항의 가운데부분 <-> 아두이노 A0 (아날로그핀) 연결

*가변저항의 오른쪽부분 <-> 아두이노 5V 연결







2-3) 소프트웨어



소스구성은 시리얼모니터를 이용해 아날로그 값을 보기 위해서 baud rate를 설정하고,

anlogRead를 통하여 A0핀에서 받은 가변저항값을 읽습니다.

그 값을 Serial.println을 통하여 시리얼 모니터에 표시하고

딜레이를 주어 값이 원활하게 보여지게 설정합니다.







3. 따라해보기



가변저항의 저항값을 조절하여 led를 조절하는 코드와 하드웨어 구성입니다.

지난시간에 배운내용을 기억하며 다음을 구성하여 가변저항을 통하여 led의 밝기를 조절해 봅시다.









4. 마무리




오늘 강의는 여기까지입니다.

지난강의보다 짧은 것 같지만 내용이 심오하여 진행해 어려움이 있으셨을 겁니다.

이 부분을 알아두면 센서값이나 블루투스 통신을 사용할 때 용이하므로 두 번째 시간에 진행하였습니다.

다음시간에는 PWM과 서보모터 구동에 대해 배워보겠습니다.

감사합니다.





댓글

Designed by JB FACTORY