누름버튼스위치를 누르는 동안에만 LED가 켜지는 아두이노 회로를 만들고 테스트를 해보았습니다. 누름버튼스위치는 아래 그림처럼 내부 연결되어 있습니다. (실선) 버튼을 누르면 점선부분이 연결되면서 두 실선이 연결됩니다. 회로 연결은 아래와 같습니다. 아두이노 보드 2,3,4번핀에는 LED를 연결하고, 8,9,10핀에는 누름버튼스위치를 연결합니다. LED 부분 연결은 아래와 같습니다. 아두이노 2번핀 - 노란색 LED (+) - 노란색 LED (-) - 저항 220 Ω - 빵판 (-) GND 아두이노 3번핀 - 초록색 LED (+) - 초록색 LED (-) - 저항 220 Ω - 빵판 (-) GND 아두이노 4번핀 - 파란색 LED (+) - 파란색 LED (-) - 저항 220 Ω - 빵판 (-) GND ..
교육용 소프트웨어인 엔트리로 아두이노를 실행시킬 수 있다는 사실을 접하여, 엔트리(Entry)를 이용하여 아두이노 LED를 켜보았습니다. 우선 엔트리 홈페이지에 접속합니다. https://playentry.org/#!/ 엔트리 - 소프트웨어 교육의 첫걸음 누구나 쉽고 재미있게 소프트웨어 교육을 체험할 수 있도록 블록 코딩 방식으로 만들어진 비영리 서비스입니다. playentry.org 메뉴에서 학습하기 > 작품만들기를 선택합니다. 작품만들기 화면에서 '블록'을 누르고 스크롤을 아래로 내리면 '하드웨어'가 있습니다. '하드웨어'를 선택합니다. 이어서 '연결 프로그램 다운로드'를 눌러 프로그램을 다운로드 받습니다. 연결프로그램 설치를 마치고 실행시킨 다음 연결할 하드웨어를 선택합니다. 꽤 많은 하드웨어들이 ..
아두이노를 이용해 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..
I tried to turn on 8 LEDs sequentially using the Arduino Digital Pin0 to Pin7. To find out what pins do on the Arduion Uno board, I looked up the pinmap. Reference : https://www.theengineeringprojects.com/2018/06/introduction-to-arduino-uno.html Introduction to Arduino Uno - The Engineering Projects Today, I am going to uncover the details on the Introduction to Arduino Uno. It is a microcontrol..
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까지 값이 변하는데, 방에 형..