728x90
728x90

arduino 14

아두이노 디지털 핀 (단선 프로토콜 신호 처리 2) - Arduino Digtal Pin - One-Wire Protocol, DHT11

이어서 bit를 이용하여 온도 습도 데이터로 읽어 보도록 하겠습니다. ​ ​ 데이터에서 40bit만 추출 ​ 1. 40개의 데이터를 배열에 저장하기 위해 기존 배열을 82개에서 40개로 수정합니다. // 배열 선언 int readSize = 40; byte readBit[readSize]; // 배열 초기화 for (byte index = 0; index < readSize; index++) { readBit[index] = 0; } 2. 응답 신호는 데이터가 아니기 때문에 읽지만 배열에는 저장하지 않기 위해 for() 문의 index의 시작을 -2로 수정하고 종료 값을 82에서 80으로 수정합니다. ​ 아두이노에서 byte는 unsigned으로 되어 있어 음수를 표현할 수 없습니다. (A byte st..

아두이노 디지털 핀 (단선 프로토콜 신호 처리 1) - Arduino Digtal Pin - One-Wire Protocol, DHT11

지금부터 온도/습도 센서와 직접 디지털 신호를 주고받아 처리해 보도록 하겠습니다. ​ ​ 시작 신호 전송과 응답 신호 받기 1. setup() 함수에서 시리얼 통신으로 출력하기 위해서 Serial.begin() 함수를 사용하여 설정합니다. Serial.begin(9600); delay(1000); 2번부터 5번까지 모두 setup() 함수에 추가합니다. ​ 2. 시작 신호를 보내기 전에 응답 신호를 저장하기 위한 버퍼로 2개의 배열을 선언합니다. 첫 번째 배열은 digitalRead() 함수로 받은 디지털 신호(0:LOW, 1:HIGH)를 저장합니다. 두 번째 배열은 경과 시간을 저장합니다. // 배열 선언 int readSize = 100; byte readBit[readSize]; unsigned l..

아두이노 디지털 핀 (단선 프로토콜 신호 - DHT11 데이터시트) - Arduino Digtal Pin - One-Wire Protocol, DHT11 Datasheet

이전 온도/습도 센서인 DHT11에 대해 라이브러리를 이용하여 온도와 습도, 체감 온도를 확인해 보았습니다. ​ 이처럼 대부분의 디지털 센서들은 아날로그 센서로부터 들어온 정보를 디지털 정보로 변환하여 전달합니다. 그럼 센서에서 아두이노 우노 보드로 디지털 정보를 어떻게 전달할까요? ​ 디지털 신호인 LOW와 HIGH를 사용하여 전달하고자 하는 정보를 디지털 정보 단위인 bit(비트)로 만들어야 합니다. 단순하게 디지털 신호만으로도 bit(비트)의 0(LOW)과 1(HIGH)을 만들 수 있습니다. 그렇지만, 어떤 디지털 신호부터 읽을 것인지, 어떤 디지털 신호까지 읽을 것인지, 얼마나 읽을 것인지 등 단순하게 디지털 신호만으로는 처리할 수 없습니다. ​ 그래서 정보를 주고받기 위해서는 디지털 신호에 규칙..

아두이노 디지털 핀 (온도/습도 센서 입력, 라이브러리 매니저) - Arduino Digtal Pin - Temperature, Humidity Sensor, DHT11

온도/습도 센서는 서미스터(thermistor)를 이용해 온도를 측정하는 센서와 공기 중에 있는 수분을 정전식으로 감지하여 습도를 측정하는 센서가 내장되어 있습니다. 내장된 서미스터와 습도 센서에서 아날로그 신호를 감지하여 아날로그 전압을 디지털 값으로 변환하여 디지털 신호를 출력합니다. - 서미스터(thermistor)는 열 저항의 일종으로 온도에 따라 물질의 저항이 변화하는 성질을 이용한 장치입니다. 온도가 증가하면 저항이 감소하고 온도가 내려가면 저항이 증가합니다. ​ - 정전식 습도 센서는 양극(+)과 음극(-) 사이에 습기를 흡수하는 얇은 기판(또는 금속 산화물)을 배치하여 기판(또는 금속 산화물)이 수증기를 흡수하면 양극(+)과 음극(-) 사이에 전도성을 증가시키는 이온을 방출하게 되어 전류가..

아두이노 디지털 핀 (푸쉬 버튼 입력) - Arduino Digtal Pin - Push Button, PullDown, PullUp, INPUT_PULLUP

푸시 버튼은 버튼을 누르면 전류가 흐르고 버튼을 누르지 않으면 전류가 흐르지 않습니다. 푸시 버튼은 4개의 핀으로 구성되어 있고 그중에서 거리가 먼 핀과 핀은 내부적으로 서로 연결되어 있습니다. 알기 쉽게 핀에 번호를 부여했습니다. 1번과 3번, 2번과 4번이 내부적으로 연결되어 있습니다. 그래서 버튼이 눌러지면 연결된 2개의 라인이 연결되어 전류가 흐릅니다. 전류가 흐르기 때문에 디지털 신호로 1(HIGH)이 됩니다. ​ 그러면 디지털 핀에 어떻게 입력으로 처리되게 할 수 있을까요? 당연히 전류를 흐르게 하면 됩니다. ​ ​ 디지털 핀에 입력 신호 주기 - 전류 흐르게 하기 ​ 1. 우선 디지털 핀에 입력 신호가 들어오는지 확인하기 위해서 디지털 핀을 입력 모드로 설정해야 합니다. 2번 디지털 핀을 입..

아두이노 디지털 핀 (7-세그먼트 게소드 제어 - 시리얼 통신) - Arduino Digtal Pin - Seven-Segment Cathode Control

Interrupt(인터럽트) - 시리얼 통신 입력 ​ 1. 이전 소스에 시리얼 통신을 테스트하기 위해 setup()함수에서 Serial.begin()함수를 설정하고 serialEvent()함수를 추가하여 컴파일하고 업로드합니다. void setup() { for (int pinIndex = 0; pinIndex < pinCount; pinIndex++) { pinMode(ledPins[pinIndex], OUTPUT); } Serial.begin(9600); while (!Serial) { } Serial.println("Serial Port Connected."); } void serialEvent() { int readByte = Serial.read(); Serial.println(readByte)..

아두이노 디지털 핀 (1자리 숫자 7-세그먼트 게소드 제어) - Arduino Digtal Pin - 1 Digit Seven-Segment Cathode Control

7-세그먼트 (7-Segment)는 7개의 세그먼트와 도트로 구성되어 숫자(0부터 9까지)나 문자를 표시할 수 있는 디지털 출력 모듈입니다. 문자는 대문자 A, 소문자 b, 대문자 C, 소문자 d, 대문자 E, 대문자 F등 7개의 세그먼트로 이용하여 표시할 수 있습니다. 자세한 설명은 아래에서 알려드리겠습니다. ​ 7-세그먼트는 양극(VCC)을 공통 핀으로 갖는 에노드형(Common Anode type)과 음극(GND)을 공통 핀으로 갖는 게소드형(Common Cathode Type)등 2가지 타입이 있습니다. ​ 제가 가지고 있는 7-세그먼트는 음극(GND)을 공통 핀으로 갖는 게소드형(Common Cathode type)입니다. ​ 다른 7-세그먼트와 다르게 상하로 핀이 있는게 아니고 좌우로 핀이 나..

아두이노 디지털 핀 (LED 배열 제어) - Arduino Digtal Pin - LED Array Control

이전에 개발한 신호등 소스를 배열을 이용하여 반복적으로 처리 코딩을 줄여 보겠습니다. ​ 배열 - Array ​ 배열 선언 int ledPins[6]; int ledPins[] = {2, 7, 4, 6, 5, 3}; int ledPins[6] = {2, 7, 4, 6, 5, 3}; 첫번째 배열 처럼 데이터를 초기화 하지 않고 배열을 선언할 수 있습니다. 그러나 배열을 읽기전에 배열의 데이터를 추가해줘야 합니다. 두번쩨 배열 처럼 배열의 크기를 설정하지 않고 배열에 데이터를 선언할 수 있습니다. 그러면 컴파일러는 배열의 요소를 세어 배열의 크기를 설정합니다. 세번째 배열 처럼 배열의 크기와 설정하고 배열에 데이터를 선얼할 수 있습니다. ​ 두번째 방법으로 배열을 사용하는 것이 오류도 적고 좋습니다. ​ 배..

아두이노 디지털 핀 (LED 제어) - Arduino Digtal Pin - LED Control

아두이노 우노 보드에는 0번부터 13번까지 14개의 디지털 핀이 있습니다. 디지털 핀과 센서들을 연결하여 데이터를 입력 받아 처리하고 LED, 스피커, LCD로 데이터를 출력할 수 있습니다. ​ 디지털 핀은 전류의 흐름을 제어하여 LOW와 HIGH로 전기적 신호를 구분합니다. LOW로 0V, HIGH로 5V의 전류를 흐르게 합니다. 그래서 디지털 신호로 LOW는 0으로 HIGH는 1이 됩니다. 디지털 핀 출력 제어 - LED 불 켜기/끄기 ​ 1. 디지털 핀을 입력/출력으로 제어하기 위해서는 디지털 핀을 입력 모드나 출력 모드로 설정해햐 합니다. 12번 디지털 핀을 출력 모드로 제어하기 위해서는 pinMode()함수를 사용합니다. pinMode()함수의 첫번째 파라미터는 디지털 핀 번호이고, 두번째 파리..

아두이노 스케치 시작 (PC 시리얼 통신) - Arduino Serial Communication - serialEvent

Serial.readString()함수나 Serial.readStringUntil()함수는 항상 시리얼 타임아웃에 영향을 받기 때문에 전송되는 데이터가 네트워크 문제로 지연이 되는 경우 중간에 끊어져 정상적인 문자열을 받아 처리할 수 없습니다. 그래서 아두이노 우노 보드에서는 시리얼 통신을 통해 시리얼 버퍼에 데이터가 들어오면 serialEvent()함수를 자동으로 호출해줍니다. serialEvent()함수를 이용하여 시리얼 통신을 해보겠습니다. ​ ​ PC 시리얼 통신 - 시리얼 이벤트 ​ 1. serialEvent()함수를 선언합니다. serialEvent()함수에서는 Serial.read()함수를 사용하여 1바이트씩 데이터를 읽어 처리합니다. void serialEvent() { Serial.pri..

아두이노 스케치 시작 (PC 시리얼 통신) - Arduino Serial Communication - Hello, Arduino

아두이노(Arduino)의 프로그램 언어는 C/C++를 사용합니다. 작성된 프로그램을 스케치(Sketches)라고 하고 파일은 .ino로 저장됩니다. ​ 스케치(Sketches)는 setup()과 loop() 함수로 구조가 단순하게 구성되어 있습니다. void setup() { } void loop() { } setup() 함수 아두이노(Arduino) 보드가 실행되면 처음에 한번만 실행되는 함수입니다. 그리고 리셋 버튼이 눌러지면 동일하게 한반만 실행됩니다. 라이브러리 설정, 핀모드 설정, 변수 설정등 초기화 하는 셋업 코드를 작성합니다. ​ loop() 함수 setup()함수가 실행된 후 반복되는 함수입니다. 보드의 디지털 핀과 연결된 센서로 부터 정보를 가져오거나 연산을 한 후 결과를 출력하는 코드..

아두이노 통합 개발 환경 기능 이해 2 - Arduino IDE

아두이노(Arduino) IDE 툴 ​ 자동 포맷 : 편집 영역에 있는 코드들을 정리하고 자동으로 들여 쓰기가 되도록 처리합니다. 메뉴 : 툴 > 자동포맷(Ctrl+T) ​ 자동 포맷 실행 전 void setup() {Serial.begin(9600);} void loop() { // put your main code here, to run repeatedly: } 자동 포맷 실행 후 void setup() { Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: } 스케치 보관하기 : 현재 편집 영역에 있는 스케치의 파일이 있는 폴더를 zip 파일로 압축하여 저장합니다. 메뉴 : 툴 > 스케치 보관하기 인코딩..

아두이노 통합 개발 환경 기능 이해 1 - Arduino IDE

아두이노(Arduino) IDE에 대해 알아보겠습니다. 아두이노(Arduino) IDE는 코드 작성을 위한 텍스트 편집 영역, 메시지 영역, 텍스트 콘솔 영역, 공통 기능을 위한 툴바(도구 모음), 메뉴로 구성되어 있습니다. ​ 아두이노(Arduino) IDE의 주요 기능으로는 프로그램 코드 컴파일과 Arduino 하드웨어와 연결하여 프로그램을 업로드하고 시리얼 통신을 합니다. ​ 아두이노(Arduino) IDE를 사용하여 작성된 프로그램을 스케치(Sketches)라고 합니다. 스케치(Sketches)의 파일은 .ino로 저장됩니다. 툴바의 열기 버튼, 저장 버튼으로 스케치 파일을 열거나 저장할 수 있습니다. ​ 아두이노(Arduino) IDE의 메시지 영역은 저장, 컴파일, 업로드, 오류에 대한 정보를..

아두이노 통합 개발 환경 설치 - Arduino IDE 1.8.18

아두이노(Arduino) 통합 개발 환경(IDE, Integrated Development Environment)은 프로그램을 코딩하여 아두이노 보드에서 실행되도록 기능들을 제공합니다. ​ 현재 1.8.18 버전입니다. ​ 1. 아두이노(Arduino) 사이트(https://www.arduino.cc/)에 접속합니다. 그리고 상단 메뉴에서 "SOFTWARE"를 클릭합니다. 2. 다운로드 옵션(DOWNLOAD OPTIONS)에서 "Windows Win 7 and newer"를 클릭합니다. 3. 아두이노 IDE에 대한 지원으로 기부 페이지가 나타납니다. "JUST DOWNLOAD"를 클릭합니다. 만약, 기부(Donation)를 하고 싶으시면 기부할 금액을 선택하신 후 "CONTRIBUTE & DOWNLOAD..

728x90
728x90