본문 바로가기
2022-2/마이크로프로세서

아두이노와 기타등등 알아보기

by 철없는민물장어 2022. 10. 14.
728x90
반응형

펌웨어: 하드웨어의 제어와 구동을 담당하는 운영체제

 

아두이노 ATmega328 마이크로컨트롤러

input voltage: 7~12V

14개의 Digital IO Pins(0~13번까지 총 14개, PWM지원 핀은 3,5,6,9,10,11)

6개의 analog pins(A0~A5)

32KB 플래시메모리

13번핀 LED, Power LED 존재

 

전압: 전위가 높은 쪽과 낮은 쪽의 차이. 1쿨롱의 전하가 갖고있는 에너지

전류: 1초당 1쿨롱의 전하가 단위 면적을 통과했을 떄를 1A로 정의. 전하의 흐름

저항: 전류의 흐름을 방해하는 정도

 

브레드보드:

 


2.시리얼 통신

 

UART(Universal Asynchronous Receiver/Transmitter)

병렬 데이터를 직렬 방식으로 전환하여 데이터를 전송하는 방식. 

 

Serial.begin(전송속도): 전송속도(bps)로 시리얼 통신 포트를 컴퓨터와 연결한다.

Serial.print(전송내용): 괄호 안의 내용을 시리얼 통신으로 전송한다.

Serial.println(전송내용): 괄호 안의 내용을 시리얼통신으로 전송한 후 줄바꿈.

delay(지연시간): 지연시간(ms)동안 동작을 지연시킴

 

변수 유형

bool | 1바이트 | 0~1

char | 1바이트 | -128~127

byte | 1바이트 | 0~255

int | 2바이트 | -32768~32767

short | 2바이트 | -32768~32767

 

Serial.write(char 변수): char변수에 해당하는 ASCII코드값의 문자를 출력한다.

Serial.print(변수,BIN): 변수를 2진수로 표시

 

Serial.available(): 시리얼 통신에 수신된 데이터가 있는지 확인한다. 있을 경우 true

Serial.read(): 시리얼 통신을 통하여 수신된 값을 읽는다.

isDigit(변수): 변수의 값이 ASCII코드의 0~9숫자 범위에 있는지 여부를 판단. 맞으면 true

pinMode(핀번호, 설정): 설정하고자 하는 핀의 번호와, 입력사용시 INPUT, 출력시 OUTPUT, 풀업사용시 INPUT_PULLUP

digitalWrite(핀번호,값): 해당 핀번호에 HIGH 혹은 LOW 설정

 


3.LCD출력

 

LCD: 얇은 액정판 아래 조명을 비추는 장치로서 액정판의 전류 흐름을 제어하여 문자나 그림을 표시

(핀에 직접 연결:7핀, I2C통신:2핀)

 

특수문자나 기호는 LCD모듈 문자표를 참고하여 출력. 일본인이 만들어서 일본어가 있고 한글은 안됨

핀에 직접 연결

LiquidCrytral lcd(rs, enable, d4, d5, d6, d7)

lcd.begin(행,열) : LCD모듈의 크기를 정의

lcd.clear(): 모든 표시를 지우고 커서를 왼쪽위로 이동

lcd.home(): 커서를 왼쪽위로 이동

lcd.setCursor(행,열): 행,열에 커서이동

lcd.print(데이터): LCD모듈에 데이터를 출력

 

I2C 통신

TWI라고도 함

SDA,SCL 두 선으로 통신함

Master와 Slave로 구분되어 Master에서 통신을 주관함.

최대 112개의 노드를 연결가능하고 최고 3.4Mbps의 속도임.

 

라이브러리 매니저를 이용하여 I2C LCD용 라이브러리를 설치할 수 있음

 

LiquidCrytral_I2C(I2C주소, 가로,세로) : LCD 설정

lcd.init(): LCD모듈을 설정함

lcd.clean()

lcd.home()

lcd.setCursor()

lcd.print(데이터)

lcd.noBacklight()

lcd.Backlight()

 


LED 실험

 

LED: 전기 신호를 빛으로 출력하는 반도체 소자.

고효율, 반영구적 수명임

 

pinMode(핀번호,설정)

digitalWrite(핀번호, 값)

 

LED밝기 조절

디밍(Dimming)임

LED에 입력되는 전력은 PWM을 이용하여 조절함.

PWM: 고속의 스위칭으로 High와 Low 신호의 비율을 조절하여 LED의 밝기, 모터의 회전 등을 조절하는 방법임

analogWrite()명령어로 구현함

3,5,6,9,10,11번 핀이 PWM을 지원함

 

analogWrite(핀번호,값): 정해진 핀에 아날로그 출력 함. 값에는 0~255값이 들어가고 0에 가까울수록 어두움

 

RGB LED

빛의 삼원색인 RGB빛을 조절하여 다양한 색을 표현하는 LED

각각의 색이 0~255단계로 조절됨

모든 색이 출력될 때 백색 빛을 출력함

 

RGB LED는 세개의 Anode핀과 공통으로 연결된 캐소드핀으로 구성되어 있음

 

FND 제어하기

LED의 조합으로 숫자를 표시하는 장치

7개의 LED를 사용하기 때문에 7-segment라고도 함.

숫자뿐만 아니라 간단한 기호나 16진수까지 표현 가능함

Common Cathode 또는 Common Anode형으로 사용가능

 

FND를 동작시키기 위해 fndDisplay라는 사용자정의함수를 만들었음

 

74595IC를 이용한 통신

직렬 신호로 입력된 데이터를 병렬 신호로 변환함

FND의 8개의 LED를 켜기위한 신호를 3개의 신호선으로 입력받아 8개의 FND신호로 출력

shiftout()명령어로 구현

 

shiftout(데이터 핀, 클럭 핀, 출력비트 순서=MSBFIRST, 출력 값):

 

Dot matrix 제어

여러개의 LED가 배열되어 문자나 기호를 표시하는 장치.

8X8 Dot matrix는 64개의 LED를 이용.

LED를 빠르게 교차 출력하여 동시에 모든 LED가 제어되는듯한 착시를 이용

 

millis() : 현재 스케치가 시작된 이후로 경과된 시간 값을 가져온다. 밀리세컨즈 단위의 값을 가진다.

delayMicroseconds(): 마이크로세컨즈(1/1000000초)단위로 아두이노의 동작을 지연시킨다.

 

728x90
반응형

'2022-2 > 마이크로프로세서' 카테고리의 다른 글

6. Analog Input  (1) 2022.11.01
5. Digital Signal Input  (0) 2022.10.23
4-2 LED  (0) 2022.10.10
4장 - LED  (1) 2022.10.06
3. LCD Display  (4) 2022.09.28

댓글