'프로그래밍/임베디드SW' 카테고리의 글 목록 (2 Page) :: 잡다한 프로그래밍
반응형

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가 깜빡거릴 것이다. 깜빡거리는 것을 확인했다면 테스트 성공이다.

반응형
반응형

1. 사전 준비

1. 라즈베리파이3B+
2. MicroSD카드, 리더기 (SD카드는 OpenCV설치 및 Yolo사용을 위해 16GB 이상을 선택했습니다)


2. OS 설치

  1. https://www.raspberrypi.org/downloads/raspbian/ 에 접속하여 zip 파일을 다운로드한다.

     

  2. https://sourceforge.net/projects/win32diskimager/ 에 접속하여 Win32 Disk Imager를 다운로드한다. 설치가 완료되면 Image File의 폴더 아이콘을 클릭하여 다운로드하였던 라즈 비안 파일을 선택하고 Device의 SD카드 드라이브를 선택하고 write버튼을 누른다.


3. 설치 결과

설치된 SD카드를 라즈베리파이에 넣고 부팅시키면 실행화면을 볼 수 있습니다. 

 

반응형

+ Recent posts