'스케치' 태그의 글 목록 :: 잡다한 프로그래밍
반응형

1. 아두이노 3색 LED 실습

3색 LED(RGB LED 모듈)는 다음과 같이 R, G, B, 그라운드 총 4가지 핀으로 이루어져 있다.

이러한 모듈을 다음과 같이 아두이노에 연결한다

LED 연결

연결하였다면 다음과 같이 코드를 작성한다. 다음 코드는 R > G > B순서로 0.5초의 딜레이를 가지고 반복적으로 색이 변하는 코드이다. 기존 LED와 다르게 저항을 사용하지 않아도 된다.

int led1 = 8;
int led2 = 9;
int led3 = 10;
void setup()
{
	pinMode(led1, OUTPUT);
	pinMode(led2, OUTPUT);
	pinMode(led3, OUTPUT);
}
void loop()
{
	digitalWrite(led1, HIGH);
	digitalWrite(led2, LOW);
	digitalWrite(led3, LOW);
	delay(500);

	digitalWrite(led1, LOW);
	digitalWrite(led2, HIGH);
	digitalWrite(led3, LOW);
	delay(500);

	digitalWrite(led1, LOW);
	digitalWrite(led2, LOW);
	digitalWrite(led3, HIGH);
	delay(500);
}

2. 버튼 사용하여 LED 제어하기

버튼은 아래 그림과 같이 평상시에는 전류가 흐르지 않다가 사용자가 버튼을 눌렀을 시 전류가 흐르게 만든다.

버튼 구성

이러한 버튼을 사용하여 다음과 같은 회로를 구성한다

버튼, LED 회로도

회로 구성을 완료하였다면 다음과 같은 코드를 작성한다. 버튼에 연결된 핀 12, 13번에 전류가 흐른다면 LED를 ON 하는 코드이다. 이때 12, 13핀에 전류가 흐르는지 확인하기 위해 digitalRead함수를 사용했다. digitalWrite가 디지털 방식으로 전류를 ON/OFF 했다면 digitalRead는 전류가 들어오는지 여부를 확인할 때 사용한다

int led1 = 7;
int led2 = 6;
int key1 = 13;
int key2 = 12;
void setup()
{
	pinMode(led1, OUTPUT);
	pinMode(led2, OUTPUT);
	pinMode(key1, INPUT);
	pinMode(key2, INPUT);
}
void loop()
{
	if( digitalRead(key1) == HIGH )
		digitalWrite(led1, HIGH);
	else
		digitalWrite(led1, LOW);
	if( digitalRead(key2) == HIGH )
		digitalWrite(led2, HIGH);
	else
		digitalWrite(led2, LOW);
	delay(100);
}
반응형
반응형

1. 사전 공부

#1 저항

전자부품이 동작하는데 필요한 전류가 흐르는 것을 조절하는 역할

저항 설명

저항 읽는법:

저항 읽는법

#2 브레드보드

납떔없이 회로를 꾸밀 수 있게 하는 도구

브레드보드 이미지

위 사진처럼 브레드보드 가장 위아래는 가로로 연결되어 있고 나머지 부분은 세로로 연결되어 전기가 통한다.

따라서 다음과 같이 이용해야 한다.

브레드보드 이용방법

2. 디지털 출력(Digital Output) 실습

#1 설명

아두이노에서 출력은 디지털 입출력과 아날로그 입출력 방식으로 나눌 수 있다.

이때 아두이노에 정해진 특정 디지털 출력 핀의 전압을 HIGH, LOW로 설정하여 LED에 흐르는 전류를 제어할 수 있다.

아날로그는 파형이 디지털 0, 1처럼 정해져 있는 것이 아닌 0~100 사이의 값을 가질 수 있다고 생각하면 좋다. 그림으로 표현하면 아래와 같다.

아날로그, 디지털 차이

아두이노의 Digtal 핀은 다음과 같다.

아두이노 디지털핀

빨간 박스 부분에서 0~13번은 디지털 인풋 아웃풋으로 모두 사용할 수 있다.

 

#2 실습

500msec 간격으로 LED 1개가 동시에 ON/OFF 하는 실습 예제이다

실험에 필요한 준비물은 아두이노 UNO, LED1개 1K 저항 1개 브레드보드이다.

LED는 꺾인 쪽이 + 곧게 펴진 쪽이 -이다

1) 다음과 같이 회로를 구성한다

8번 핀을 각 LED의 + 부분에 연결된 저항과 연결하고, GND핀을 - 부분에 연결한다

 

2) 연결을 완료하였다면 다음과 같은 코드를 작성하고 업로드한다

int led1 = 8;

void setup()
{
	pinMode(led1, OUTPUT); //아웃풋 설정
}

void loop()
{
	digitalWrite(led1, HIGH); //LED켜짐
    
    delay(500); //딜레이 0.5초
    
    digitalWrite(led1, LOW); //LED꺼짐
    
    delay(500);
}
반응형
반응형

1. 시리얼 통신이란?

  • 시리얼(RS232) 통신은 주로 IBM 호환 PC에서 쓰이는 시리얼 통신 방법
  • 예전에는 주로 모뎀 연결에 RS232 통신을 사용했다
  • 최장 1.5m 정도 까지 통신 가능
  • 최근의 노트북 PC는 무게, 두께를 줄이기 위해 시리얼 포트를 제거하고 USB를 사용함
  • 아두이노 보드는 기본으로 제공하는 USB 포트를 이용하여 시리얼(RS232) 통신이 가능함

다음 사진과 같이 아두이노는 PC와 시리얼 통신을 하게 된다.

PC 아두이노간 시리얼 통신


2. 시리얼 통신 예제

아두이노 시리얼 모니터에서 1 or 2를 입력하면 13번 LED가 ON/OFF되는 프로그램 코딩

int led = 13;

void setup()
{
	pinMode(led, OUTPUT); //13번 LED를 아웃풋으로 설정
	digitalWrite(led, LOW);
	Serial.begin(9600); //보트레이트를 9600으로 설정 시리얼창과 아두이노의 설정이 같아야함
}
void loop()
{
	char read_data;
if (Serial.available())
{
	read_data = Serial.read();
	if( read_data == '1')
	{
		digitalWrite(led, HIGH); //LED ON
		Serial.println("LED ON");
	}
	else if( read_data == '2')
	{
		digitalWrite(led, LOW); //LED OFF
		Serial.println("LED OFF");
	}
		delay(10);
}
}

다음과 같이 코딩을 완료하였다면 아래와 같은 결과를 확인 할 수 있다.

결과 화면

반응형
반응형

1. 아두이노란?

아두이노 UNO R3

  • 이탈리아 회사에서 처음으로 개발
  • AVR 기반의 마이크로 컨트롤러 하드웨어
  • AVR하드웨어와 소프트웨어 개발을 쉽게 해주는 개발환경(IDE)을 합쳐 아두이노라 함

등등 여러 말로 표현할 수 있겠지만 예를 들어 3초 간격으로 작동하는 모터가 있다고 가정하자, 모터가 3초마다 움직이게 프로그래밍을 해야 할 텐데 이때 작은 모터에 큰 컴퓨터를 사용하는 건 매우 비효율적이다 따라서, 소형 컴퓨터를 사용하면 매우 효율적일 테고, 아두이노, 라즈베리파이를 초소형 컴퓨터로 생각하면 좋을 것 같다.

 

참고자료 : 아두이노 스펙 & 아두이노 기본 핀 설명
아두이노 스펙
기본 핀 설명

 

 


2. 통합 개발 환경 (IDE) 설치하기

아두이노 공식 홈페이지에서 제공하는 소프트웨어를 다운로드한다. 홈페이지에서는 Online IDE와 Offline IDE를 제공하고 있으며 실습은 Offline IDE를 다운로드하여 진행하도록 할 예정이다.

 

https://www.arduino.cc/en/Main/Software

1. 다운로드 화면

1) 다음 홈페이지에 들어가서 위 사진 중 자신에 PC에 맞는 프로그램을 다운로드한다.

2. 설치 화면

2) 동의 > 다음 > 설치 순으로 설치를 완료 한다. 이때 설치 경로에 한글이 있으면 오류가 생기는 경우가 있다고 하니 주의하자.

 

아두이노 & PC 연결

3) 설치 완료 후 이제 그림과 같이 PC와 아두이노를 연결하였다면 IDE의 환경을 설정하도록 한다.

툴 > 보드 > Arduino/Genuino Uno를 선택한다

보드 설정

그림과 같이 이후 툴 > 포트 > 아두이노가 실제 잡히는 포트를 선택 한다.

포트 설정

이렇게 하면 IDE환경설정이 끝이 난다.


3. 예제 실행

블링크 예제

그림과 같이 파일 > 예제 > Basics > Blink를 클릭한다 이후 그림과 같이 업로드를 클릭한다.

업로드 완료

업로드를 완료하였다면 1초 간격으로 참고 사진 기본 핀 설명의 TEST LED가 깜빡거릴 것이다. 깜빡거리는 것을 확인했다면 테스트 성공이다.

반응형

+ Recent posts