본문 바로가기

아두이노

(11)
L293D Dual H-Bridge Motor Driver와 아두이노를 이용한 DC 모터 제어 회로구성 아두이노 + DC모터 + L239D 동작요구사항 아두이노에 전원이 인가되면 모터는 멈춰있는 상태이다. 시리얼통신을 이용하여 키보드의 ‘+’키를 누르면 속도가 10%씩 증가하고, ‘-’키를 누르면 10%씩 감소하도록 한다. 속도만 제어하는 시스템 → 반(half) H-브리지 → 제어핀 하나만 사용 L293D Dual H-Bridge Motor Driver 핀아웃 핀 이름 핀 번호 기능 Enable 1, 2 1 Input 1, 2(칩의 좌측 입력)를 활성화 Enable 3, 4 9 Input 3, 4(칩의 우측 입력)를 활성화 Input 1/2/3/4 2/7/10/15 디지털 회로에 연결하여 Output 1/2/3/4를 직접 제어 (HIGH/LOW) Output 1/2/3/4 3/6/11/14 모터..
아두이노에서 가변저항을 이용한 DC 모터 속도 제어 회로구성 DC모터 + 가변저항(또는 분압기(Potentiometer, 포텐시오미터)) 동작 요구사항 - 아두이노에 전원이 인가되면 모터는 멈춰있는 상태이다. - 분압기로 전압을 조정하여 전압이 높아지면 모터의 회전 속도가 빨라지고 전압이 낮아지면 속도가 느려진다. DC 모터 - DC 전원을 회전운동으로 변환시키는 장치 - 고정자로 영구자석을 사용하고, 회전자(전기자)로 코일을 사용하여 구성한 것으로, 전기자에 흐르는 전류의 방향을 전환함으로써 자력의 반발, 흡인력으로 회전력을 생성 TIP120 - NPN 달링턴 페어 트랜지스터 - 5A 부하 처리에 좋은 특성 : 5V의 이미터-베이스 전압, 60V의 컬렉터-이미터 전압 - 최대 65W 콜렉터 소비전력 및 최대 전류 이득 1000 - 스위칭 및 증폭에 사용..
아두이노 릴레이 제어 회로구성 • 릴레이(relay) + 전등(lamp) + 분압기(Potentiometer) 동작 요구사항 • 아두이노에 전원이 인가되면 전등 꺼져있는 상태이다. • 분압기로 전압을 조정하여 임계값(2.5V)보다 커지면 전등에 불이 들어오고 다시 조정하여 작아지면 불이 꺼진다. • (응용) “분압기로 전압을 조정”하는 것을 다른 센서로 활용할 수 있다. 사운드 센서를 이용하면 소리의 크기나 패턴으로 전등을 끄거나 켤 수 있다. 릴레이(relay) • 전자석 원리를 이용한 스위치(기계식) : 코일에 전류가 흐르면 내부의 스위치가 ON, OFF 하는 소자 • 반도체 릴레이(무접점 릴레이) • 릴레이는 낮은 전압/전류를 이용하여 더 높은 전압/전류를 제어하는데 많이 사용한다. • 릴레이 내부 구조 NC : Nor..
아두이노 절전모드 (sleep mode 아두이노를 절전모드로 전환했다가 다시 켜는 방법 Arduino Pro Mini의 전력 소비량 비교 awake : 25mA asleep : 0.57mA ATmega328의 sleep mode 종류 키워드 비고 Idle SLEEP_MODE_IDLE 최소 절전모드 ADC Noise Reduction SLEEP_MODE_ADC Power-down SLEEP_MODE_PWR_DOWN 최대 절전모드 Power-save SLEEP_MODE_PWR_SAVE Standby SLEEP_MODE_STANDBY (출처: https://static1.squarespace.com/static/55abde31e4b0249b70d593c9/t/5a6b4209c830255e65ed23b8/1516978711075/Atmel-42735..
아두이노를 이용한 자동차 후방 센서 구현 : 초음파 거리센서+LED+피에조 회로구성 • 초음파 거리센서 + LED + 피에조 동작 요구사항 • 아두이노에 전원이 인가되면 LED와 피에조는 꺼져있는 상태이다. • 초음파 센서로 거리를 측정하여 일정 거리 임계값보다 작으면 LED에 불이 들어오고, 피에조에서 소리가 발생한다. • 측정 거리가 임계값보다 커지면 LED와 피에조 소리는 꺼진다. • 자동차 후방 센서 (3단계 경보) 피에조(piezo) • 피에조는 압전 물질에 얇은 판을 대어 압전 효과에 의해 소리가 나도록 한 소자 • 압전물질 : 압력을 가하면 전위차가 발생하거나 반대로 전압을 인가하면 물리적 변위가 생기는 물질 • 압전효과 : 압력을 가했을 때 전압이 발생되거나, 전압을 가했을 때 압력(신장, 응축)이 생기는 효과 초음파 거리 센서(ultrasonic sensor) ..
아두이노와 2개의 7세그먼트를 이용한 카운터 구현 회로구성 • 2개의 7세그먼트 회로 동작 • 2개의 7세그먼트를 이용하여 1~99까지 카운트 할 수 있는 카운터 • 00 → 01 → 02 → … → 98 → 99 → 00 → 01 → 02 → … • 최초 아두이노에 전원이 인가되면 00이 표시된다. Tinkercad 구현 코드설명 전체코드 int btn = 19; // pin A5 == 19 int cur_btn_state = 0; // 현재 버튼 상태 int pre_btn_state = 0; // 이전 버튼 상태 int num1 = 0, num2 = 0; // num1 = 1의 자리 수, num2 = 10의 자리 수 int FND1[7] = {2,3,4,5,6,7,8}; //abcedfg int FND2[7] = {9,10,11,12,13,14,15..
아두이노와 7세그먼트를 이용한 16진수 카운터 회로구성 • 7 세그먼트와 버튼을 아두이노 디지털 핀에 연결 동작 요구사항 • 아두이노에 전원이 인가되면 7 세그먼트는 꺼져있다. • 버튼을 누르면 숫자가 1씩 증가한다. 16진수로 나타내며 F 다음에는 다시 0으로 표시된다. (카운터 기능) 7 세그먼트 동작 • 7 세그먼트(7 Segment)는 7개의 획으로 숫자나 문자를 나타낼 수 있는 표시장치로 FND (Flexible Numeric Display)라고도 한다. • 각각의 획은 LED로 구성되어 있으며, 이들의 일부를 켜고 끄는 것으로 숫자나 문자를 표시할 수 있다. 아두이노 제어 함수 아두이노 보드의 디지털 핀을 제어하기위한 함수 • pinMode() • digitalWrite() • digitalRead() 데이터를 비트 단위로 읽어 오기 위한..
아두이노에서 버튼으로 LED 제어하기 2 '아두이노에서 버튼으로 LED 제어하기'는 버튼을 누르고 있는 동안, 또는 버튼을 누르지 않고 있는 동안 상태를 반영하여 LED를 제어하였으나, 이번 실습에서는 버튼을 한 번 누르고 떼는 것을 인지하여 LED를 제어하는 실습이다. 회로구성 '아두이노에서 버튼으로 LED 제어하기'와 동일한 (LED+BUTTON) 회로 구성 동작 아두이노에 전원이 인가되면 LED는 켜져있다. 버튼을 눌렀다가 떼면 LED는 꺼진다. 다시 버튼을 눌렀다가 떼면 LED는 켜진다. 이 동작을 무한히 반복한다. 코드 함수 int get_btn_state() : 버튼의 상태를 받아오는 함수 코드 설명 !digitalRead(btn) : digitalRead함수는 btn 핀의 상태를 LOW 또는 HIGH 값으로 반환함. btn 핀은 P..