누름버튼스위치를 누르는 동안에만 LED가 켜지는 아두이노 회로를 만들고 테스트를 해보았습니다. 누름버튼스위치는 아래 그림처럼 내부 연결되어 있습니다. (실선) 버튼을 누르면 점선부분이 연결되면서 두 실선이 연결됩니다. 회로 연결은 아래와 같습니다. 아두이노 보드 2,3,4번핀에는 LED를 연결하고, 8,9,10핀에는 누름버튼스위치를 연결합니다. LED 부분 연결은 아래와 같습니다. 아두이노 2번핀 - 노란색 LED (+) - 노란색 LED (-) - 저항 220 Ω - 빵판 (-) GND 아두이노 3번핀 - 초록색 LED (+) - 초록색 LED (-) - 저항 220 Ω - 빵판 (-) GND 아두이노 4번핀 - 파란색 LED (+) - 파란색 LED (-) - 저항 220 Ω - 빵판 (-) GND ..
아두이노를 이용해 RC 모터 4개를 동시 구동해 보았습니다. 아두이노 보드 2번,4번,6번,8번핀에 RC 모터를 구동하기 위한 신호를 출력하기로 하고 아래 그림처럼 연결합니다. GND핀도 뽑아둡니다. RC 모터 노란색선과 아두이노에서 뽑아낸 신호선들을 각각 연결합니다. RC 모터 붉은선에는 5V(+), 검정색은 GND(-)와 연결합니다. 붉은 점퍼선이 모자라서 5V(+) 전원선으로 흰색과 붉은색 점퍼선을 사용했습니다. GND(-) 선은 검정색 점퍼선을 사용했습니다. 그리고 붉은색과 흰색 점퍼선은 빵판 (+) 라인에 검정색은 빵판 (-) 라인에 꽂습니다. 아두이노 GND에서 뽑아낸 점퍼선도 빵판 (-) 라인에 꽂습니다. 전원공급기에서 출력되는 5V(+)를 빵판 (+) 라인에 연결하고 GND 를 빵판 (-)..
오늘은 아두이노를 이용해서 RC 모터를 돌리기 연습을 해 보았습니다. 요즘에는 RC 모터도 종류가 엄청 많네요. 저는 집에 보관되어 있던 오래된 RC 모터를 꺼내서 움직여 보겠습니다. 서보모터 모델은 Hitec HS-322 입니다. RC 모터는 입력전압에 Duty 비를 조절해서 각도를 쉽게 변화시킬 수 있습니다. 다만, 회전 범위는 -90~90º로 총 180º 만 회전합니다. (360º 돌아가는 RC 모터도 있습니다.) 총 20 ms 를 주기로 아래 각도를 유지합니다. Pulse 의 High 상태 (5V)가 1.5 ms, Low 상태 (0V) 가 18.5 ms 일 때 각도 0º Pulse 의 High 상태 (5V)가 2 ms, Low 상태 (0V) 가 18 ms 일 때 각도 +90º (시계방향) Puls..
PWM 은 'Pulse Width Modulation' 의 약자로 '펄스폭 변조'입니다. 디지털 신호를 아날로그 신호처럼 사용하기 위해서 이용합니다. 디지털 신호는 High (1) 아니면 Low (0) 밖에 없는데, High 와 Low 출력시간을 조정해서 어중간한 출력값을 만들어 낼 수 있습니다. Reference : https://www.theengineeringprojects.com/2018/06/introduction-to-arduino-uno.html 위 그림에서 보면 아두이노 우노 보드에서 PWM 기능을 할 수 있는 핀은 3번, 5번, 6번, 9번, 10번, 11번 6개가 있습니다. 저는 5번핀에 PWM 값을 바꿔가며 신호를 내보내고 LED를 켜보겠습니다. 우선 5번핀을 출력핀으로 정의합니다. ..
이전 실험까지는 CdS 센서로 들어온 밝기 값을 곧바로 LED가 켜지는 delay 시간으로 사용해서 LED 불의 밝기를 조절했었습니다. 하지만 이런 방법으로는 주변 밝기에 따른 LED 밝기를 정확히 비례적으로 변하도록 하기가 어렵습니다. 그래서 찾아보니, map 함수라는 것이 있네요. map 함수는 아날로그 입력으로 받은 값를 일정 범위 안에서 비례적으로 출력값을 만들어 주는 함수입니다. int a= map (입력값, 입력값의 최소값, 입력값의 최대값, 출력값의 최소값, 출력값의 최대값) 예를 들어 int a = map (200, 0, 1000, 0, 200) 라고 쓴다면, 입력값 범위는 0 에서 1000 이고 200을 입력했을 때, 이는 전체 입력 범위에서 1/5 수준이므로 출력값 범위인 0에서 200..
이전 실험에서 주변이 어두워지면 LED 에 불이 들어오도록 해보았습니다. https://robotamin.tistory.com/8 하지만 주변환경을 충분히 밝게 해도 LED에 불이 살짝 들어와 있었습니다. 그래서 주변이 충분히 밝다면, LED 불이 완전히 꺼지도록 프로그램 수정을 해보았습니다. 수정을 하면서 두 가지를 알게 되었습니다. 1. digitalWrite 함수로 High 신호를 주면, delay 값을 0으로 해도, 어쨌든 High 신호가 나간다. 2. float 나누기 계산 시 유의점 너무 당연한 것일 수도 있는데 제가 잘 몰랐네요. 우선 Serial 통신으로 CdS 조도센서에서 들어오는 아날로그 값이 얼마인지 읽어봤습니다. A0 은 아날로그 입력에 따라 0~1023까지 값이 변하는데, 방에 형..
조도센서 Cds 모듈을 이용해서 LED 밝기를 조정해보았습니다. 주변이 어두워지면 LED가 밝아지는 테스트입니다. 조도센서 모듈에서 밝기에 따른 Analog 출력을 받아서 아두이노 보드에 Analog 입력을 하고, 2번부터 6번핀을 디지털 출력 (Digital Output)으로 해서 LED 밝기를 조정합니다. 우선 밝기에 따라 Analog 출력을 뽑기 위해 조도센서 모듈 4번핀에 점퍼선을 연결합니다. 조도센서 모듈 테스트 : https://robotamin.tistory.com/7 아두이노 우노 보드와 조도센서 모듈을 먼저 연결합니다. 아두이노 5V -- 조도센서 VCC 아두이노 GND -- 조도센서 GND 아두이노 A0 -- 조도센서 AO 그리고 빵판에 LED를 꽂습니다. 오늘은 우리 딸 추천으로 빨주..
메카솔루션에서 구매했던 조도센서 (CdS) 모듈을 테스트 해보았습니다. 설명서나 매뉴얼이 없었기 때문에 어떻게 써먹어야 하는지 확인해 보고 싶었습니다. 일단 다리는 4개입니다. [조도센서 모듈 윗면] [조도센서 모듈 아랫면] 모듈 보드에 각 핀이 무슨 핀인지 마킹이 되어있습니다. 아랫면 사진 기준, 위에서부터 각 핀은 아래와 같이 사용합니다. VCC : 5V 입력 GNC : 0V (Ground 연결) DO : Digital Output AO : Analog Output 아두이노 보드를 꺼낼까 하다가 그냥 파워서플라이와 오실로스코프로 측정해보기로 했습니다. (은근 오실로스코프 잘 쓰고 있습니다.) 우선 파워서플라이를 5V로 설정하고, 빵판에 (+)라인에는 5V, (-)라인에는 0V 를 연결합니다. 점퍼선으..