728x90
반응형

전체 글 65

아두이노 소프트웨어-xxii. SPI 라이브러리

안녕하세요 제타지니입니다. 지난 번의 포스트를 통해 몇 가지 짚고 넘어가겠습니다. SPI 통신(Serial Peripheral Interface)는 Master - Slave 간의 1:N 방식의 통신입니다. * 최소 4개의 연결선 (MOSI, MISO, SCLK, SS)가 필요하며, 슬레이브가 한 개 늘어날 때마다 SS 선도 한개씩 추가. * 모든 Slave 기기에 대하여 MOSI, MISO, SCLK는 공통 * 전이중(full-duplex)방식으로 송신과 수신이 동시에 이루어지기에 I2C 통신에 비해 빠르다. * 아두이노에서는 일반적으로 짧은 거리의 고속 데이터 통신이 필요한 경우 SPI를 사용하며, 복잡한 통신의 경우에도 사용됨. * MISO(Master In Slave Out), MOSI(Maste..

아두이노 소프트웨어-xxi. I2C를 위한 WIRE 라이브러리

안녕하세요 제타지니입니다. 오늘은 Wire Library가 주제입니다. 일전에 포스트에 올렸던 대로 아두이노는 Serial 통신 이외의 두 가지 통신 I2C 통신과 SPI 통신을 지원한다고 하였습니다. 이해를 돕기 위해서 I2C 통신과 SPI 통신에 대한 개념을 다시한 번 여기에서 보고 와주시길 바랍니다. Wire 라이브러리는 I2C 장치들 사이의 통신 기능을 구현해 놓은 아두이노의 기본 라이브러리들 중 하나입니다. I2C 통신의 경우 1:1 통신을 하는 Serial 통신과는 다르게 1:n 통신을 하고 있습니다. 즉, 이 방식은 Wire 라이브러리 내의 함수에도 동일하게 적용이됩니다. Wire 라이브러리의 실제 클래스 이름은 TwoWire이며, TwoWire 클래스의 전역 객체는 Wire로, 실제로는 W..

아두이노 소프트웨어-xx. I2C와 SPI 통신

안녕하세요 제타지니입니다. 이번 포스트의 주제는 직렬/병렬 통신을 제외한, 다른 통신들입니다. 아두이노 - PC 사이에서 사용되는 통신으로는 Serial 통신을 제외하고도 다른 통신이 몇 가지 있는데요. 이번 포스트에서는 그 '다른'통신들을 알아보려고 합니다. 바로, I2C와 SPI 통신입니다. 하나하나 차근차근 설명히 해볼게요 I2C(Inter-Integeracted Circuit)와 SPI(Serial Peripheral Interface)는 마이크로 컨트롤러와 주변 장치 사이에 디지털 정보를 간편하게 전송할 수 있는 방법을 제공하기 위해 만들어진 통신 프로토콜입니다. 아두이노 소프트웨어에는 기본적으로 I2C와 SPI 통신을 위한 라이브러리인 WIRE라이브러리와 SPI 라이브러리가 포함되어있습니다. ..

아두이노 소프트웨어-xviii. 아두이노 String 클래스 - String Class

안녕하세요 제타지니입니다. 이번 포스트에서는 String class에 대해서 다루어 보겠습니다. 이 포스트는 [아두이노 상상을 스케치하다 - 허경용 저]에서 참고하였습니다. 이번의 포스트는 아두이노에서 자주 쓰이는 Class 중의 하나인 String 클래스입니다. String 클래스는 바로.... '문자열'을 다루기 위한 클래스입니다. 아두이노의 기반을 이루는 C++에서는 문자열을 다루기 위한 클래스를 제공하고 있으며, 아두이노 역시 String이라는 클래스를 통해서 문자열을 쉽게 처리할 수 있도록 도와줍니다. (C언어 에서는 문자열을 다루기 위한 데이터형이 별도로 정의되어 있지 않고, 문자 배열을 이용해서 문자열을 처리하지만, 문자 배열로 문자 열을 다루는 것은 많이 번거롭고 많은 주의를 요한다는 것을..

아두이노 소프트웨어-xix. Serial 통신

안녕하세요 제타지니입니다. 오늘은 아두이노의 시리얼 통신에 대해서 더 다루어보겠습니다. 이전에 Serial 클래스를 업로드 하면서 Serial 통신에 대한 개념 포스트가 필요하다는 것을 알게되었습니다. 그래서 이번 포스트에서는 Serial 통신에 대해서 공부하고, 그에 대한 내용을 담아 업로드 하려고 합니다. Serial 통신 Serial = 직렬, 즉 직렬 통신이라는 뜻이지요. 이 직렬통신은 아두이노 - PC 사이에서 뿐만이아니라, 여러 기기에서 사용되는 통신입니다. 기본 의미부터 살펴보자면, [직렬 통신]...? 그럼 [병렬 통신]도 있나요..? 있죠. 있습니다. Parallel(병렬) 통신이라고 합니다. 둘의 차이란... 무엇일까요? 쉽게, 우리가 물리학에서 나오는 '전기' 파트에서 직렬과 병렬을 ..

아두이노 소프트웨어-xvii. 아두이노 Serial 클래스 - Serial Class

안녕하세요 제타지니입니다. 오늘은 시리얼 통신에 대해서 보겠습니다. *시리얼 통신이란 무엇일까?(Serial communication) Serial(직렬) 통신. RS 232통신이라고 합니다. 직렬통신이라고 함은 컴퓨터와 기기의 1:1 통신입니다. 한번에 한 비트씩 통신을 합니다. Serial 통신은 USART(Universal Synchronous Asynchronous Receiver Transmitter, 동기 + 비동기 방식 통신) 또는 UART(Universal Asynchronous Receiver Transmitter)로 알려진 방식으로 RS-232C 프로토콜에 정의된 내용 중에서 데이터 송수신을 위한 세 개의 핀, RXD(receive data, 수신 데이터), TXD(Transmit da..

아두이노 소프트웨어-xvi. 함수 - 인터럽트 함수

안녕하세요 제타지니입니다. 이번 포스트에서는 인터럽트 함수를 보겠습니다. 인터럽트를 설명하자고 하면 두 가지 종류가 필요합니다. 1. 인터럽트 함수 2. 외부 인터럽트 함수 자 보시죠. 1. 인터럽트 함수 *interrupts() 매개변수, 반환값 모두 없는 함수입니다. noInterrupts 함수에 의해 금지된 인터럽트의 발생을 허용합니다. 인터럽트를 허용하게 되면, 작업의 순서와 시간에 변화가 있을 수 있습니다. #define interrupts() sei() 입니다. sei() 함수는 전역적으로 인터럽트 발생을 허용해 주기 위해 사용하는 AVR 마이크로 컨트롤러 함수 입니다. *noInterrupts() 매개변수, 반환값이 모두 없습니다. 인터럽트 발생을 금지시킵니다. 이후 interrupts() ..

아두이노 소프트웨어-xv. 함수 - 인터럽트 개념

안녕하십니까 제타지니입니다. 오늘은 인터럽트의 개념에 대해서 설명하겠습니다. 인터럽트라는 놈이 있습니다. 이놈은 너무나도 악독해서, 프로세서가 어떤 명령을 수행중인 중간에 끼어들죠. 사실 악독한 놈이라기 보단, 하드웨어와 소프트웨에서 상당히 중요한 분이시며, 많이 사용되어지는 기법 중의 하나입니다. 자 한번 알아보시죠 인터럽트, Interrupt 방해하다. 중단시키다. 라는 뜻을 가진 영어입니다. 뜻 그대로 현재 수행중인 프로그램을 중단시키는 놈이지요. 그림으로 조금 더 쉽게 알아보자면, 그림으로 나타내야죠. 그러니까 이대로 설명을 드리자면, 프로그램이 실행되는 도중에, 인터럽트가 발생하면 실행중인 프로그램을 잠시 멈추고 인터럽트 서비스 루틴, 즉 인터럽트가 걸렸을 시에 동작되는 프로그램을 실행시키고, ..

아두이노 소프트웨어-xiv. 함수 -비트 조작 함수

처음 공부할 때 비트 조작 함수를 보고, 도대체 이것은 무엇인가... 했었죠. 바이트 반환? 무슨 바이트???? 비트를 읽어?? 왜?? 비트 기록??? 등등 알수 없는 언어 투성이... 자 그래서 이번 포스트에서는 이 비트 조작함수에 대해서 알아보고, 어떻게 쓰는지 알아보겠습니다. 설명은 간단합니다. 오늘 설명할 함수는 lowByte highByte bitRead bitset bitWrite bitClear bit 7가지 입니다. lowByte(x) 데이터(x)의 최하위(Low) 바이트(Byte)를 반환합니다. highByte(x) 데이터(x)의 두 번째 최하위 바이트(Byte)를 반환합니다. bitRead(x, n) 데이터(x) n: 읽어낼 비트 위치, LSB(Lease Significant Byte)..

Ryzen 5600X + ASUS TUF B450M Pro S 조립 이슈

제타지니의 일상공유! 컴퓨터를 조립하면서 느꼈던 큰 문제점은, ASUS TUF B450M Pro S 를 Rygen 5600X와 사용하려면, GEN 4세대 바이오스 업데이트가 필요하다는 것입니다. 이것때문에 12시간을 날렸습니다. ㅎㅎ 12월 3일에 바이오스가 나왔는데, 12일에 산 저로서는 당연히 바이오스 업데이트가 되어있으리라고 생각했습니다만 제가 바보죠 ㅎㅎ 바이오스로 인한 증상은 다음과 같습니다. 1. 컴퓨터 모니터가 나오질 않습니다. - bios update를 하지 않으면 cpu를 인식하지 못합니다 ==> CPu를 인식하지 못함에 나오는 증상이 발현됩니다. 컴퓨터는 잘 돌아가는데 화면이 안나오는 증상입니다. 따라서, 이 경우에는 bios update를 진행하시면 됩니다 GEN 4 세대 소켓을 가지..

일상 공유/IT 2021.01.04
728x90
반응형