일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- SERIAL
- file access
- Overloading
- Binary
- flutter
- length
- public
- wpf
- UNO
- compare
- preprocessing
- aduino
- Unity
- Contour
- atmega328
- Encapusulation
- java
- memory
- digitalRead
- Pointer
- stream
- Read
- Class
- Barcode
- sensor
- Android
- inheritance
- parameter
- APP
- mfc
- Today
- Total
목록자유 게시판 - 마이크로 컨트롤러 (27)
폴크(FOLC)
# 모토로라에서 전이중 방식으로 개발한 시리얼 통신의 표준 -> 마스터 장치와 슬레이브 장치간의 양방향 통신을 동시에 수행 -> 데이터를 클록신호에 맞추어 전송 [ 상승/하강 엣지 ] -> 4개의 연결선 필요 [ MOSI, MISO, SCLK, SS ] -> 4개의 통신 모드 이용 가능 # 통신 방법 -> 마스터 장치와 여러개의 슬레이브 장치간의 선을 공유 -> 클록 신호를 기준으로 통신을 진행한다. -> 슬레이브는 LOW 상태에 통신 가능 -> 양방향 통신 : 마스터 요청/응답 슬레이브 # 연동 -> 통신하고자 하는 슬레이브의 연결선(SS) 에 LOW 로 설정 -> 슬레이브 장치가 지원하는 통신 속도 이하로 클록 신호 전송 -> 각 클록 사이클마다 MOSI 연결선을 통해 1BIT 데이터 전송 -> MI..
# I2C protocol -> 필립스 반도체에서 개발한 저속 통신 프로토콜 -> 2선 통신 방식 ( clock-SCL 과 data-SDA 를 각각 전달하기 위한 선 필요 ) -> 직접회로 간의 데이터를 공유 # I2C 방법 -> 마스터 장치와 여러개의 슬레이브 장치간의 선을 공유 -> 마스터만 통신을 시작할 수 있다. -> 슬레이브는 고유의 주소(ID 번호)가 부여된다. -> 마스터가 통신을 관리한다. ( 마스터 -> 요청, 응답 마스터 장치는 시작 비트를 전송 -> 마스터 장치가 슬레이브 장치의 주소를 전송 -> 마스터 장치는 데이터의 상태(읽기, 쓰기) 비트를 전송 -> 슬레이브 장치는 마스터 장치의 요청에 응답 ( ACK ) -> 마스터 장치에서 데이터 전송 -> 슬레이브 장치는 마스터 장치에 응..
# 시리얼 포트 -> 9핀의 시리얼 케이블로 연결할 수 있는 포트 -> 대부분 USB 포트로 대체되었지만 USB to DB9 시리얼 포트 변환 어댑터가 있음. -> 시리얼 통신을 위해서 2개 핀( Tx, Rx )을 이용 # 아두이노 우노 -> 시리얼 인터페이스 프로그램을 이용 ( USB to Serial 변환칩 Atmega16U2 ) -> 시리얼과 USB 는 호환되지 않아서 통신은 할 수 없다. # 데이터 연동 -> 시리얼 모니터 이용 ( IDE 설치 과정에서 자동으로 설치 됨 ) -> Serial 기능을 선언하고 begin(통신 속도), print() 등의 명령어 함수를 이용 -> available() 명령어 함수를 이용해서 수신 버퍼에 있는 데이터(byte)의 수를 확인 -> read() 명령어 함수..
# ADC ( Analog to digital converter ) -> 연속적인 아날로그 전압을 이산적인 디지털 값으로 바꾸는 역할 -> 해상도가 높을 수록 디지털로 표현할 수 있는 값의 종류가 많아지고 정확해 진다. -> 8bit ( 256 ), 10bit ( 1024 ), 12bit ( 4096 ) 등의 해상도를 갖는 제품이 있다. # 정확도는 해상도에 의해 결정 -> 아날로그 값을 디지털 값으로 변환하기 위해 10bit 해상도의 ADC를 이용 - 10bit 해상도 : ADC 가 아날로그 신호를 2^10 개의 서로 다른 값으로 구분 가능 - 다시 말해, 입력되는 모든 값을 0 ~ 1023 사이의 값 ( 1024개 )중에 하나를 표시 # 기준 전압 관련 -> 해당 디지털 값 ( 입력할 수 있는 최대 ..
# 디지털 데이터를 획득하여 상호 작용을 하기 위한 수단(버튼이나 스위치)으로 이용 -> 입력 핀의 "디폴트 상태"를 결정하기 위해서 풀업/풀다운 # 풀업/풀다운 저항의 필요성 -> 아두이노 PIN 과 스위치를 연결하고 5V 를 인가하면 HIGH 로 입력 될 것이지만, 풀다운 저항을 이용하지 않고 스위치를 아두이노 PIN 에서 연결 해제 하면 0V or 5V 도 아닌 상태 ( floating ) 가 되어 주변에 있는 PIN 상태 값에 영향을 받게 되고 결국 HIGH or LOW 를 번갈아 가면서 입력이 될 수 있다. # 버튼 상태 확인 하기 -> 스위치 바운싱을 해결하기 위해서 디바운싱 기법을 소프트웨어로 처리 - 브레이드보드에 장착된 상태의 이상 동작으로 5V 0V 를 왔다 갔다 - 버튼의 스프링에 의..
# MCU 을 제어하기 위해서 이용되는 IDE 를 설치 한다. 보통 2가지 ( Avr Studio, WinAvr ) 중에 선택 -> Avr Studio 로 선택 # 사이트 접속 -> avr studio 검색 -> microships.com 으로 # Download Microchip Studio 를 선택 ON / Offline 모듈 선택 -> 파일 다운로드 # 설치 시작 -> 기본적으로 NEXT 선택 -> 중간 중간에 표시되는 PAGE 에서도 NEXT 를 선택 -> Visual Studio 가 설치되어 있다면 Shell (Isolated) 형태의 plug in 자동 설치 됨. -> 추가적으로 신뢰성 메시지에 "설치" 선택 # 설치 완료 # 샘플 프로그램 컴파일 -> 기본 코드 자동 생성
# Atmel 사의 8bit RISC 마이크로컨트롤러 ( Micro Controller Unit ) 의 한 종류이다. -> MCU : Micro processor + Memory(ROM, RAM) + I/O 를 통합한 형태로, 특별한 동작을 수행할 수 있도록 프로그래밍(제어가)이 가능하다. -> MCU 종류에는 크게 3가지 형태(AVR-atmel, 8051-intel, PIC-microchip )가 있다. # 스팩 -> 128KB flash, 4KB sram, 4KB eeprom -> JTAG interface, 10bit ADC, USART 2ch, TWI 1ch, SPI 1ch -> I/O 53 pins -> clock cristal 1ea # PIN MAP -> PA ~ PG 까지 총 7개 Port..
# 빗물 또는 물의 높이를 측정 > 물탱크나 수조와 같은 물이 담긴 용기의 수위를 측정 > 세로로 위치한 전극은 수위에 따라 저항 값이 변하여 전류값이 변한다. - 수조에 수분량이 증가하면 저항값이 감소하여 전류가 증가 - 수조에 수분량이 감소하면 저항값이 증가하여 전류가 감소 # 특징 > 전류 : 20mA 이하 > 전압 : 5V > 크기 : 62mm * 20mm * 8mm > 무게 : 3.5g # 제어 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 # 연결 방법 > 총 3개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개 A0( 아날로그 ) > VCC-5V, GND 그리고 ANALOG-IN 쪽에 0번 # 소스 코드 int DATA_PIN = A0; // 센서 A0에 연결 void setu..
# 위치, 방위, 자세 등의 목표치에 도달하기 위해서 펄스를 이용해서 제어 > 신호에 따른 각도를 관리한다. - 원하는 회전 각도를 정확히 계산하여 적용 가능 ( PWM ) > 고속 구동시 토크가 크지만 탈조 위험이 있음 > 저속 구동시 토크는 작지만 탈조 위험이 없음 # 특징 > 감속비 : 1.64 > 각도 : 5.625° * 1/64 : 360° > 전압 : 5V > 크기 : 31mm * 27mm * 19mm > 무게 : 35g > 유니폴라 스텝 모터 - ULN2003 # 제어 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 ( 각도 값으로 표현 ) > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) - PWM 형태 # 연결 방법 > 총 6개 핀이 있으며 2개는 전원부 ( VCC, ..
# 위치, 방위, 자세 등의 목표치에 대한 변화를 추종하도록 구성한 제어계 > 위치와 속도를 관리한다. > 회전 토크가 크다 > 회전자 관성 모멘트가 작다 # 특징 > 토크 : 1.8Kg * cm > 각도 : 0°~ 180° > 전압 : 4.8V ~ 7.2V > 전류 : 0.2A ~ 0.7A > 크기 : 31mm * 11.8mm * 22.2mm > 무게 : 9g # 제어 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 ( 각도 값으로 표현 ) > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) - PWM 형태 # 연결 방법 > 총 3개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개 D3 ( 디지털 ) > VCC-5V, GND 그리고 SIGNAL-DIGIAL PWM 쪽에 3번 ..
# 고정자(영구자석)과 회전자(전기자)로 코일을 사용하여 구성 > 전기자에 흐르는 전류의 방향을 전환함으로써 자력의 반발, 흡인력으로 회전 # 특징 > 기동 토크가 크다 > 인가전압에 대하여 회전특성이 직선적으로 비례 > 입력전류에 대하여 출력 토크가 직선적으로 비례 (출력 효율이 좋다) > 가격이 저렴하다 # 제어 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 ( voltage 값으로 표현 ) > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) ### 모터 드라이버가 없는 경우 # 연결 방법 > 총 2개 핀이 있으며 2개는 전원부 ( VCC, GND ) > VCC-SIGNAL-DIGIAL PWM쪽에 D3번, GND # 소스 코드 #define DATAPIN D3 void setup(..
# 토양에 존재하는 수분을 감지 > 습윤시 저항값이 높고 건조시 저항값이 낮짐 - 정상 : 저항값이 커져서 높은 전압값을 발생 - 이상 : 저항값이 작아져 낮은 전압값을 발생 # 측정 범위 > 출력 : 디지털 스위칭 0 or 1 > 감도 : 가변 저항으로 조절 가능 > 전원 : DC 3.3V ~ 5V > 크기 : 3mm * 16mm ( board 40mm * 55mm ) # 측정 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 ( voltage 값으로 표현 ) > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) # 연결 방법 > 총 4개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 A0(아날로그), 1개는 D2(디지털) > VCC-5V, GND 그리고 SIGNAL-ANAL..
# 수분을 감지하면 니켈 선 형태(병렬)로 코팅된 보드에서 저항 경로가 생성 > 습윤시 저항값이 작고 건조시 저항값이 커짐 - 정상 : 저항값이 커져서 높은 전압값을 발생 - 이상 : 저항값이 작아져 낮은 전압값을 발생 # 측정 범위 > 출력 : 디지털 스위칭 0 or 1 > 감도 : 가변 저항으로 조절 가능 > 전원 : DC 3.3V ~ 5V > 크기 : 43mm * 16mm ( board 40mm * 55mm ) # 측정 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 ( voltage 값으로 표현 ) > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) # 연결 방법 > 총 4개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 A0(아날로그), 1개는 D2(디지털) > V..
# 적외선 신호의 색상에 대한 반사/흡수 성질을 이용 > 밝은색 : 반사되는 량이 많음 > 검정색 : 흡수되는 량이 많음 - 포토트랜지스터와 적외선 LED가 같은 방향으로 배치되어 있음 - 적외선이 반사되어 트랜지스터에 입력되면 전류가 흐르게 되어 판단 가능 # 측정 범위 > 거리 감지 : 1mm ~ 8mm ( center 2.5mm ) > 구동 : 15mA ( 파장 950nm ) > 감도 : 가변 저항으로 조절 가능 > 출력 : 디지털 스위칭 출력 ( 0, 1 ) > 전원 : DC 3.3V ~ 5V > 크기 : 32mm * 14mm # 측정 방식 > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) > 아날로그 방식 : 아날로그 신호 출력 제어 ( voltage 값으로 표현 ) # 연결 방..
# 기울기를 감지하면 회로에 연결된 전기를 흐르도록 하여 확인 > 전도성 구 또는 액체상태의 수은 - 정상 : 양쪽 단자가 연결되어 단자로 전기가 흐르게 되면 - 이상 : 양쪽 단자가 연결되지 못하면 전기가 흐르지 않아서 기울어졌다고 판단 # 측정 범위 > 출력 : 디지털 스위칭 0 or 1 > 감도 : 가변 저항으로 조절 가능 > 전원 : DC 3.3V ~ 5V > 크기 : 50mm * 10mm # 측정 방식 > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) # 연결 방법 > 총 3개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 D2(디지털) > VCC-5V, GND 그리고 SIGNAL-DIGITAL PWM 쪽에 2번 # 소스 코드 #define DATAPIN D2 voi..
# 발광부에서 출력된 적외선이 물체에 반사되어 되돌아 수광부에 수신 > 발광부는 LED, 수광부는 트랜지스터 > 수광부에 적외선이 수신되면 트랜지스터가 전류가 흐를 수 있는 상태로 전환 - 수신된 적외선 량에 따라서 전류량이 달라져서 출력되는 전압값의 변화로 거리 계산 # 측정 범위 > 범위 : 20mm ~ 300mm > 각도 : 35° > 감도 : 가변 저항으로 조절 가능 > 전원 : DC 3.3V ~ 5V > 크기 : 48mm * 14mm > 무게 : 18~65g # 측정 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 ( voltage 값으로 표현 ) > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) # 연결 방법 > 총 4개 핀이 있으며 2개는 전원부 ( VCC, GND ), ..
# 측정 범위 > 출력 : 15mA 이상의 driving ability > 감지 : 가변 저항으로 조절 가능 > 전원 : DC 3.3V ~ 5V > 크기 : 32mm * 14mm # 측정 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 ( voltage 값으로 표현 ) > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) # 연결 방법 > 총 4개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 A0(아날로그), 1개는 2(디지털) > VCC-5V, GND 그리고 SIGNAL-ANALOG IN 쪽에 0번 # 소스 코드 #define DATAPIN A0 void setup() { pinMode(DATAPIN, INPUT); Serial.begin(9600); } void loop..
# 측정 범위 > 출력 : 15mA 이상의 driving ability > 감지 : 가변 저항으로 조절 가능 > 전원 : DC 3.3V ~ 5V > 크기 : 32mm * 14mm # 측정 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 ( voltage 값으로 표현 ) > 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 ) # 연결 방법 > 총 4개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 A0(아날로그), 1개는 2(디지털) > VCC-5V, GND 그리고 SIGNAL-DIGITAL PWM 쪽에 2번 # 소스 코드 #define DATAPIN D2 void setup() { pinMode(DATAPIN, INPUT); Serial.begin(9600); } void lo..
# 측정 범위 > 출력 파장 : 760nm ~ 1100nm > 감지 각도 : 60° > 전원 : DC 3.3V ~ 5V > 크기 : 36mm * 15mm # 측정 방식 > 아날로그 방식 : 아날로그 신호 출력 제어 > 디지털 방식 : 디지털 신호 출력 제어 # 연결 방법 > 총 3개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 A0(아날로그), 1개는 D2(디지털핀) > VCC-5V, GND 그리고 SIGNAL-DIGITAL PWM 쪽에 2번 # 소스 코드 #define DATAPIN 2 // KY-026 digital interface void setup() { pinMode(DATAPIN, INPUT); Serial.begin(9600); } void loop() { int digita..
# 측정 범위 > 출력 파장 : 650nm > 출력 파워 : 5mW > 전원 : DC 5V > 전류 : 작동 온도 : -10°C ~ 40°C > 크기 : 18.5mm * 15mm # 측정 방식 > 디지털 방식 : 디지털 신호 출력 제어 # 연결 방법 > 총 3개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 13(디지털핀) > VCC-5V, GND 그리고 SIGNAL-DIGITAL PWM 쪽에 13번 # 소스 코드 #define DATAPIN 13 void setup() { pinMode(DATAPIN, OUTPUT); } void loop() { digitalWrite(DATAPIN, HIGH); // Turn on the laser head delay(1000); digi..