본문 바로가기

전체 글6

삼촌을 위한 빠른 아두이노 튜토리얼 - 6 (RGB LED 조작, PWM, 반복문) RGB LED란 그냥 빨강 초록 파랑 LED가 합쳐져 있는 것 그냥 단일 색을 켜고 끄는 것은 이전 5번 게시글처럼 코드를 짜면 된다. 이 글에서 하려는 것은 여러 색을 다양한 비율로 섞은 빛을 내는 것이다. 즉, digitaWrite의 출력 값인 0V 나 5V 말고 중간 전압 값을 주는 방법을 알아보고자 한다. 이때 쓰이는 기술이 PWM이다. 전압 0V 1.25V 2.5V 3.75V 전압 그래프 한 주기당 5V의 비율 0% 25% 50% 75% 기본적으로 아두이노의 출력 핀은 0V와 5V 밖에 출력하지 못한다. 그래서 고안된 방법이 0V와 5V를 아주 빠르게 번갈아서 출력하는 것 5V의 비율이 50%면 2.5V라고 보는 셈 모든 디지털 핀이 PWM기능을 사용할 수 있는 것은 아니고 핀 옆에 전압 그래프.. 2021. 7. 1.
삼촌을 위한 빠른 아두이노 튜토리얼 - 5 (스위치 조작과 조건문) 스위치를 조작해서 LED를 켜는 방식에 대해 생각해보면, 스위치를 누른다 → 누른 것을 감지한다 → LED를 켠다 라는 여러 단계로 나누어 생각해 볼 수 있다. 해당 방식을 위해서는 첫 번째로 스위치에 연결된 신호를 감지하는 기능이 필요하고 두 번째로 감지된 신호에 따라 작동을 다르게 하는 기능이 필요하다. 신호를 감지하는 코드가 digitalRead 함수이고 신호에 따라 작동을 다르게 하는 코드가 if 조건문이다. digitalRead(핀 번호) : 해당 핀에 들어오는 전압을 읽어와 0 또는 1을 출력하는 함수 전압이 5V 정도라면 1을, 0V 정도라면 0을 출력한다. digitalRead 함수가 최종적으로 값을 출력하기에 위 그림처럼 변수나 값 대신 사용할 수도 있다. 그림의 상황에서는 Button이.. 2021. 7. 1.
삼촌을 위한 빠른 아두이노 튜토리얼 - 4 (LED 조작 및 변수) 아두이노의 핀 중 디지털 핀은 0V와 5V, 두 가지 상태의 입력과 출력을 담당한다. 입력과 출력 중 어느 용도로 쓸 것인지는 pinMode 코드 선언을 통해 결정할 수 있다. 입력 모드로 하면 전압을 감지할 수 있고, 출력 모드로 하면 전압을 가해줄 수 있다. 출력 모드라고 해도 아두이노가 전달할 수 있는 전류에는 한계가 있기 때문에(대략 100mA?), 무거운 장치는 따로 전원을 연결하거나 드라이버(전원과 신호를 컨트롤하도록 따로 만들어진 모듈)가 필요하다. 해당 번호의 핀을 입력(INPUT)으로 사용할지, 출력(OUTPUT)으로 사용할지 설정한다. 해당 핀의 출력 값을 설정한다. (HIGH: 5V / LOW: 0V) 0~5V 사이의 전압은 digitalWrite으로는 설정이 불가능하다. delay(.. 2021. 6. 22.
삼촌을 위한 빠른 아두이노 튜토리얼 - 3 (기본 문법 및 시리얼 통신) 세미콜론(;) : 한 줄의 코드가 끝남을 의미하며 코드끼리의 구분을 가능하게 한다. 즉, 일반 언어의 마침표에 해당하는 역할. 없으면 컴퓨터(컴파일러)는 코드가 끝났음을 인지하지 못하고 오류가 날 가능성이 높다. 엔터와 탭은 가독성을 위한 것으로 아무 역할이 없다. 위 코드를 한 줄로 쭉 이어놔도 세미콜론만 제대로 타이핑했다면 컴파일이 가능하다. 하지만 코드는 타인(미래의 나 포함)이 본다는 것을 전제로 작성하는 게 좋으므로 일반적으로 통용되는 규칙에 맞게 작성하는 것이 바람직하다. 코드와 관련해서 단순 설명하고자 하는 내용을 적고 싶다면 주석을 사용한다. 보통 어떤 코드가 어떤 기능인지 간단히 메모할 때 사용한다. 주석처리된 문구는 컴파일에 영향을 미치지 않는다. // 는 오른쪽으로 이어지는 한 줄을 .. 2021. 6. 16.