펌웨어: 하드웨어의 제어와 구동을 담당하는 운영체제
아두이노 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초)단위로 아두이노의 동작을 지연시킨다.
'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 |
댓글