연구노트/아두이노 강좌 10

08장 피에조 스피커 사용하기(1/2) tone(), notone(), delay()

피에조 스피커 전기적 신호를 이용해 소리를 내는 전자부품 동작하는 전압에 따라 다양한 피에조 스피커가 존재함 컴퓨터전원을 켤때 나는 삐 소리도 메인보드에 달린 피에조 스피커가 내는 소리 도레미파솔라시도 연주하기 피에조에 +를 8번핀으로 -를 GND로 연결한다. 소스코드 //배열 순서대로 도,레,미,파,솔,라,시,도 int melody[] = {262, 294, 330, 349, 392, 440, 494, 523}; void setup() { for (int i = 0; i < 8; i++) { tone(8, melody[i], 250); //tone함수를 이용해 8번핀으로 주파수 연주 delay(100); noTone(8); //음 종료 } } void loop() { } tone(핀번호, 헤르츠, 재생..

07장 삼색 LED 사용하기

삼색 LED 하나에 LED에서 빨강, 파랑, 초록의 색을 낼 수 있다. 4개의 다리는 빨강, 파랑, 초록, 그라운드이며 전압을 조절해 색을 조합할 수 있다. 버튼으로 색 바꾸기 *교재랑은 다른 코드로 작성함 버튼 입력을 읽어서 LED의 RGB를 켜도록 만들어보자 bool r = false, g = false, b = false; void setup() { Serial.begin(9600); //2,3,4번으로 버튼입력 감지 pinMode(4, INPUT); pinMode(3, INPUT); pinMode(2, INPUT); //9,10,11번으로 LED 출력 pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode( 9, OUTPUT); //LED 전체 OFF digita..

06장 LED와 버튼 사용하기;

LED 액추에이터 빛을 내는 액추에이터 긴 쪽이 '+', 짧은 쪽이 '-' 반대로 연결하지 않도록 주의하자 LED가 고장 날 수 있다. 전류가 너무 크면 LED가 탈 수 있지만 작으면 빛이 약하기 때문에 저항으로 전류를 조절해줘야 한다. 5mm LED의 필요전압은 15mA에 강하 전압이 2V 정도이다. 이것은 LED에 색에따라 조금씩 다르므로 참고하자 아두이노의 전압은 5V이므로 2V의 강하 전압을 만들기 위해 3V의 전압을 내려주면 된다. 옴의 법칙에서 V에 3, I에 0.015를 대입하여 계산 시리얼 통신 활용하기 int light = 100; Serial.print("Light: ");//println이 아닌 print Serial.println(light);//println에 변수명을 입력 시리얼..

05장 아두이노 시작하기(Serial.println, Serial.print, blink예제)

아두이노 연결하기 아두이노 개발에 필요한 것 PC 아두이노 USB 케이블(아두이노와 PC 연결용) 아두이노 UNO의 경우 USB B타입이다. 아두이노와 PC연결시 자동으로 드라이버가 설치되고 COM3같은 숫자로 표시된다. 혹시 드라이버가 잡히지 않는다면 다운받아서 설치해주자. 아두이노 IDE 살펴보기 아두이노 소스코드는 setup과 loop로 나뉘어 지는데 아두이노의 전원을 키면 setup()함수가 최초로 실행되고 그다음 loop()함수가 무한반복하며 동작한다. setup() : 한번만 실행되면 되는 초기화관련 코드 loop() : 아두이노가 실제로 해야되는 동작관련 코드 기본 LED 깜빡이기 아두이노에는 기본으로 박혀있는 LED가 존재한다. 보드에 L이라 적혀있는 LED인데 디지털핀 13번과 연결되어 ..

04장 디지털과 아날로그(digitalWrite/digitalRead, analogWrite/analogRead)

디지털(Digital) 아날로그의 연속적인 실수가 아닌, 특정한 최소 단위를 갖는 이산적인 수치를 이용하여 처리하는 방법 1(켜짐) 0(꺼짐)과 같이 1/0으로 이산적인 수치 디지털 핀 아두이노 우노에서는 DIGITAL 0~13까지 적혀있는 핀이 있는데 이 이 부분이 디지털 핀 영역이다. 디지털핀을 input 또는 output으로 사용가능(Digital In / Digital out) 디지털 핀 초기화(pinMode) 디지털 핀을 사용하려면 무조건 초기화를 해주고 사용해야 함. pinMode(핀번호, 입/출력); //13번 핀을 입력으로 설정 pinMode(13, INPUT);//INPUT 대신 0 사용가능 //13번 핀을 출력으로 설정 pinMode(13, OUTPUT); //OUtPUT 대신 1 사용..

03장 아두이노를 위한 프로그래밍 기초(2)

함수 프로그래밍에서 사용하는 일종의 도구 변수가 데이터를 담는 상자라면 함수는 데이터를 가공해주는 도구 상자이다. 함수의 기본 형태 리턴 타입: 함수의 결과값을 어떤 데이터 타입으로 보낼 것인지 명시하는 부분 함수명 : 함수를 부를 때 어떤 이름으로 불러올지 이름을 명시하는 부분 매개변수 : 함수에 넣을 재료 데이터를 명시하는 부분 return 리턴 값 : 함수에서 마지막으로 결과값을 반환할 변수 함수 예제 void : 리턴할 결과값이 없다는 것을 알리는 예약어 printHello() : 코드에서 불러올 때 사용될 함수명을 printHello라고 명명 Serial.println("Hello World") : 함수를 실행할 때 동작할 코드 이 함수는 리턴 값이 void이기 때문에 return이 들어갈 필요..

03장 아두이노를 위한 프로그래밍 기초(1)

프로그램이란? 국어사전에는 진행 계획이나 순서, 어떤 문제를 해결하기 위해서 그 처리 방법과 순서를 기술하여 컴퓨터에 주어지는 일련의 명령문 집합체라고 한다. 사람이 코딩을 이용해 컴퓨터에서 어떠한 순서대로 작업을 진행하라고 시키는 것이다. 변수 데이터를 담는 그릇, 박스 변수는 정해진 종류의 데이터만 담을 수 있다. 숫자형(int), 글자형(char), 참/거짓형(bool) 등의 종류가 있다. 변수를 사용할 시 선언을 해줘야 되는데 변수를 선언한다는 것은 데이터를 담을 박스를 만드는 것이다. 그리고 그 박스는 반드시 이름이 필요하다. int num; -> 변수 선언 num = 999; -> 데이터 입력 ';' :세미콜론 문장의 끝이라고 알려주는 기호 코딩에서 반드시 세미콜론을 달아줘야한다. '//내용'..

02장 아두이노 준비하기

전자부품 전기를 통해 동작하는 부품 센서, 액추에이터 전압 단위 V(볼트) 전기적인 위치 에너지의 차이 물이 높은곳에서 낮은곳으로 흐르는 것처럼 전하도 높은 전위에서 낮은 전위으로 이동한다. 이 전위의 차가 전압이다. 5V -> 0V로 전위차가 생겨야 전하가 이동하여 전기에너지를 사용할 수 있게된다. 아두이노의 전원 아두이노는 핀을 꽂을 수 있는 헤더소켓을 가지고 있으며 3.3V(3V3), 5V, GND(0V)가 출력되는 헤더소켓이 존재한다. 전원핀은 건전지의 +, -로 생각하면된다. +에서 -로 전기가 이동하면서 전기에너지를 사용할 수 있다고 생각하면된다.(실제 전자의 흐름은 -에서 +로 흐른다) 점퍼와이어를 이용해 헤더소켓과 브레드보드, 전자부품을 연결하여 전자 회로를 구성할 수 있다. 점퍼와이어는 ..

01장 아두이노 소개하기

오픈소스(Open Source) - 오픈소스란 오픈소스 소프트웨어를 뜻하는 용어로 소스코드를 공개하고 자유롭게 확인, 수정, 배포할 수 있는 것을 말한다. - 대표적으로 리눅스, 안드로이드 오픈소스 하드웨어(Open Source Hardware) - 오픈소스 소프트웨어와 동일하게 공개된 하드웨어를 뜻한다. 하드웨어의 설계도가 공개되어 있어 원한다면 수정, 배포 할 수 있다. - 대표적으로 아두이노, 라즈베리파이 아두이노의 탄생 - 이탈리아 이브레아 지역에서 탄생 - 마시모 반지가 2002년 IDII의 부교수로 부임하면서 많은 일반인과 학생들에게 컴퓨팅을 알리고 가르치고 싶어서 오픈소스 프로젝트로 시작하게 됨. 다양한 아두이노 - 아두이노 UNO : 가장 기본적인 모델, UNO는 이탈리아어로 1이다. - ..

아두이노를 가르치다!(아두이노, 상상을 현실로 만드는 프로젝트 입문편)

최근에 삼촌의 요구로 사촌동생의 아두이노 과외를 하게되었습니다. 누구를 가르치는게 처음이다 보니 가르치면서 중요하다 생각한것을 정리하려고 합니다. 교재를 선정하면서 생각했던 것들이 고1을 대상으로 블록코딩을 해야할까? 텍스트코딩을 해야할까? 맛보기 정도로만 해야할까? 아니면 작품스러운것을 만들어야할까? 이 2가지 정도 고민을 했는데 다행이도 스크래치를 몇년전에 해본적있다는 말을 듣고 텍스트코딩으로 결정하였다. 그리고 맛보기정도로 할것인지 작품다운것을 만들것인지에 대해서는 가르쳐 보면서 결정하기로 했다. 이유는 교재로 쓸 책을 찾던 중 [아두이노, 상상을 현실로 만드는 프로젝트] 이 책으로 하면 2가지를 다 만족할 수 있을듯 했다. 입문편은 아두이노의 기본과 몇개의 센서를 연결해보는 편이고 잘 배운다면 실..