본문 바로가기

임베디드 개발/아두이노9

아두이노 ] VIN으로 외부전원을 공급하는 동시에 USB 케이블을 연결해도 될까? 아두이노는 USB 포트를 통해 PC로부터 5V 전원을 공급받을 수 있는데 VIN 또는 배럴잭을 통해 외부 전원을 공급하는 동시에 USB 케이블을 연결해도 괜찮을까? 결론만 말하면 괜찮다이다. 다음 아두이노 전원쪽 회로를 보면 VIN이 1/2 전압분배를 거쳐 비교기의 +단자로 들어가고 비교기 -단자에는 3.3V 전압이 인가되는데 비교기는 +입력이 -입력보다 높을때 출력이 높은상태가 되고, +입력이 -입력보다 낮은 상태일 때 출력이 낮은상태가 된다. 그 다음 비교기 출력 MOSFET Gate를 제어하는데 출력이 높은상태인 경우 P 채널 MOSFET이 꺼지게 되어 USBVCC 전원을 차단하게 된다. 즉, VIN과 USB가 모두 연결된 상태일 때 VIN이 6.6V를 초과하면 공급전원이 스위칭된다. 2024. 7. 26.
Noctua 4-pin PWM fan 제어하기 with 아두이노 Datasheet      FAN Model & Specification NOCTUA NF-P14s redux-1200 PWM      Wiring   Blue 라인을 통해 PWM으로 속도제어를 할 수 있고, Green 라인을 통해 타코미터 신호를 받아 팬 속도를 알 수 있다.        PWM Speed Control 일단 PWM 신호 핀 없이 +12V랑 GND를 연결하면 팬이 최고속도로 도는데 아마도 PWM signal 입력을 받는쪽이 내부적으로 풀업이 되있나보다.  PWM 주파수는 25kHz이고 듀티를 0~100% 사이로 제어하면 된다.처음엔 digitalWrite랑 delayMicroseconds를 써서 PWM을 만들까 했는데 25kHz는 40us정도니까 delayMicroseconds로 듀티를.. 2024. 7. 22.
아두이노 ] 릴레이 모듈 + 흡입펌프 다루기 릴레이 모듈 Relay module 릴레이 모듈이란 낮은 전압/전류로 더 높은 전압/전류를 스위칭 할 수있게끔 해주는 부품이다. 릴레이의 원리 : 모듈 내부에 전류가 흐르면 자기장이 형성되는 전자석(철심에 코일을 감은 형태)이 있다. 그래서 신호부(사진상 모듈의 오른쪽)에 전기신호가 들어와서 전류가 흐르면 아래 그림처럼 자석이 열려있는 스위치를 끌어달여 ON 시켜준다. 구동부(모듈 사진상 왼쪽)의 COM은 공통단자이고 NO는 Normally Open, NC는 Nomally Closed 를 뜻한다. 릴레이 모듈은 중국산이 많기 때문에 NO가 常闭 NC가 常开 로 써있을 수도 있다. COM단자는 항상 물려있어야 하고 보통 NO, NC 둘 중 하나만 쓰는데 릴레이 모듈 SIG핀에 HIGH 신호가 들어왔을 때 .. 2022. 6. 30.
[ 아두이노 ] 풀업저항 , 풀다운저항 달아서 버튼 ( 스위치 )누르면 불켜지는 회로 구성하기 다리가 4개인 버튼을 사용해서 스위치를 누르면 불이 켜지고 누르지 않았을 때는 불이 꺼지도록 해보겠습니다. 플로팅 현상 위 사진처럼 회로를 구성했을 때 버튼을 누르지 않았을 땐 2번핀에 0이 입력되고 눌렀을 땐 1이 입력된다고 생각하기 쉬운데 실제로는 그렇지 않다. 스위치가 눌러졌을 땐 5V가 맞지만 열려있을 땐 주변 디지털 입출력핀에 영향을 받아 1일 수도있고 0일 수도 있는 부유하는 플로팅 상태이다. 그래서 버튼을 눌러도 내 의도대로 실행되지않는다고 느낄것이다. 스위치 사용한건 아래와 같은 다리가 4개인 버튼이다. 각각 위아래 다리가 연결되어 있고 오른쪽 왼쪽은 스위치로 떨어져있다. 버튼을 눌렀을 때 4개의 다리가 모두 연결된다. 다리가 2개인 버튼도 같은방식으로 사용 가능하다. 풀다운저항 소스코드 .. 2022. 5. 21.
NodeMCU 를 Arduino IDE에서 사용하기 위한 환경 설정 방법 아두이노 IDE를 설치하고 보드를 사용하려면 "툴"에서 사용할 보드와 포트를 선택해야 하는데 처음 설치 상태에서는 NodeMCU 보드가 보이지 않는다. 그래서 먼저 보드 매니저를 통해 등록을 진행한다. 1. IDE-파일-환경설정 2. 추가적인 보드 매니저 URLs에 아래 링크 입력 후 확인 http://arduino.esp8266.com/stable/package_esp8266com_index.json 3. 툴-보드-보드매니저, esp8266 선택 후 설치 4. 툴-보드-ESP8266에서 NodeMCU 1.0을 선택 5. 툴-포트 선택 만약 어떤 포트인지 모르겠다면 장치 관리자 보면서 포트를 꼽았다 빼면 된다. 혹시 포트 인식이 안된다면 usb 드라이버를 다운받아 설치해주면 된다. 본인의 nodeMCU가.. 2022. 5. 4.
[ 아두이노 ] I2C LCD로 문자 출력 + 한 칸 씩 옆으로 이동 + 커스텀으로 한글 출력 + 타이머 출력 원리 LCD(Liquid Crystal Display)는 액정표시장치로 스스로 발광하지 않기 때문에 후면에 백라이트가 있고, 전면에 있는 액정에 전기적 신호를 가해 빛을 통과시키거나 차단하는 방식으로 문자를 표시한다. 다양한 규격이 있는데 보통 아두이노와는 16×2 character LCD 를 주로 사용하고 기존의 LCD는 핀이 너무 많아 사용에 불편함이 있었기 때문에 아래 사진과 같은 I2C모듈이 뒤에 납땜된 형태로 판매된다. 1행에 16문자 x 2행, 총 32문자를 표현할 수 있다. 1문자는 5x8의 픽셀 그리드에 의해 표현된다. 혹시 작동이 안된다면 1. 왼쪽의 백라이트 점퍼가 잘 꼽혔는지 확인해보자. 저게 접지되어있어야 Backlight On이 된다. 2. 파란색 가변저항에 드라이버를 넣고 돌려서.. 2022. 5. 2.
[ 아두이노 ] 초음파센서로 측정한 거리를 LCD 화면에 표시하기 준비물아두이노초음파센서I2C LCD모듈점퍼선브레드보드등 회로 코드#define trigPin 8#define echoPin 9#include #include "NewPing.h" // 헤더 포함LiquidCrystal_I2C lcd(0x27,16,2);NewPing sonar(8, 9);void setup(){ lcd.init(); // lcd 객체 초기화 lcd.clear(); // 화면 지우고 커서를 왼쪽 상단 모서리로 옮김 lcd.backlight(); // 백라이트 온 lcd.setCursor(0,0); // 0행 0열로 커서 옮김 lcd.print("Distance in cm : "); // 문자 출력 }void loop(){ float duration = sonar.p.. 2022. 5. 2.
[ 아두이노 ] 초음파 거리 측정 센서 HC-SR04 데이터 시트 : https://netsonic.fi/en/files/HCSR04-datasheet.pdf 원리 초음파는 인간의 가청 한계를 넘는 고주파음이다. Trig핀으로 최소 10μS이상의 high(5V) 펄스가 들어오면 Transmitter 에서 40KHz초음파를 8회 발사한다. echo핀은 high 상태가 되고 물체를 맞고 반사된 초음파를 reciever 가 수신하면 다시 echo핀은 low상태가 된다.(앞에 물체가 없어 발사된 후 38ms동안 수신이 없으면 echo 핀이 다시 low 상태가 됨.) 음속은 340m/s 니까 echo핀의 high pulse duration을 아두이노의 pulsein 함수로 재고 거리=속력*시간 공식으로 계산하면 물체와의 거리를 계산할 수 있다. 측정범위 : 2cm .. 2022. 4. 25.
[ 아두이노 ] LED의 정격 전압과 전류 색상마다 약간의 차이는 있는데 데이터 시트를 통해 확인해보자 평균 2.1V 최대 2.6V 정격전압이 2.1V이다 Absolute Maximum Ratings 단 한순간도 넘으면 안되는 peak 전류는 30mA LED의 밝기는 전류에 비례하지만 30mA는 단한순간도 넘으면 안되기에 20mA미만이 사용하기 적당하다고 한다. 아두이노 핀의 출력전압은 5V니까 저항을 달아서 LED에 걸리는 전압을 조절해주기 위해서 저항을 달아주어야하는데 V=IR 직렬연결 시 아래 공식으로 계산한다. (입력전압-LED사용전압)V/사용전류A = 저항값Ω (5V-2.1V) / 0.02A = 145Ω 보통 사용하는 표준저항값이 아니니까 계산해서 나온값보다 한단계 큰 저항을 선택하면된다. 일반적으로 LED에 220옴짜리를 많이 쓰는데 .. 2022. 4. 14.