이번엔 arduino uno를 가지고 좀 복잡한 미니 프로젝트를 했습니다. ds18b20 온도 센서로부터 값을 읽어오고 동시에 RTC에 저장된 날짜와 시간 데이터도 읽어옵니다. 그리고 나서 두 값을 ESP8266 모듈을 이용하여 MYSQL 서버에 접속하여 값들을 저장합니다. 그리고 마지막으로 웹상에서 그래프를 그려볼것입니다.. mysql에 데이터베이스 및 테이블을 새로 생성합니다. 1234567891011121314151617181920212223242526272829$ mysql -u root -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1576Server versi..
아래 명령을 사용하여 우선 I2C를 활성화시킵니다.sudo raspi-config 8 Advanced Options을 선택하면 I2c를 활성화 시키는 옵션을 찾을 수 있습니다. 그리고나서 다음 파일을 수정하여 sudo nano /etc/modules 다음 2줄을 추가해줍니다.i2c-bcm2708i2c-dev 이제 재부팅을 합니다. 부팅이 완료되면 i2c-tools 패키지를 설치합니다.$sudo apt-get install i2c-tools 아두이노에 다음 코드를 올려줍니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include //I2C ..
1. 아래 코드를 아두이노 UNO에 업로드 시켜줍니다. 12345678910111213141516 int ch_pd = 3; int io0 = 2; void setup() { pinMode(ch_pd, OUTPUT); pinMode(io0, OUTPUT); digitalWrite(io0,LOW); digitalWrite(ch_pd, LOW); delay(1000); digitalWrite(ch_pd, HIGH); } void loop() { } cs 2. https://drive.google.com/file/d/0B3dUKfqzZnlwdUJUc2hkZDUyVjA/view?usp=sharing에서 파일을 다운로드 받아 압축을 해제합니다.예전에 올린 글이라 펌웨어 최신버전이 있을지도 모릅니다.(2018. 1..
초음파 센서 HC-SR04를 구입했습니다. 저렴해서 4개나 질렀는데....( 로봇에 붙여 볼려고 많이 질렀는데 잘되려나 싶어요.. ) HC-SR04와 아두이노를 다음처럼 연결해주었습니다. HC-SR04 arduinoVCC 5VTRIG 12번ECHO 11번GND GND https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home#!download-install 에서 다운로드를 클릭하여 받은 다음...압축을 풀어 C:\Users\webnautes\Documents\Arduino\libraries 위치에 복사해 넣어주었습니다. 아두이노 IDE를 다시 실행시켜 보면 추가된 라이브러리 예제를 찾을 수 있습니다. NewPingExample이 하나의 초음파 센서로부터 값을 ..
예전에 올렸던 글들을 다시 읽어보며 정리하다말고.. 문뜩 떠오르는게 생겨서 만들어 봤습니다..바로 스위치를 돌리면 점점 밝아지는 전구 효과를 만들어 보는 것입니다.. [임베디드/Arduino Uno] - 아두이노에서 가변저항 사용하기 [임베디드/Arduino Uno] - 아두이노에서 PWM을 이용하여 LED 밝기 조정하기 가변저항의 양끝은 각각 5V와 그라운드에 연결하고 중앙은 a0에 연결합니다. 그리고 LED의 +극은 11번에 연결하고 -극은 그라운드에 연결해주었습니다. 동영상으로 찍어둘까 하다가.. 너무 허접한거 같아서 소스코드만 올립니다.... : ) void setup() { // 9600bps로 시리얼 속도를 설정 Serial.begin(9600); } void loop() { // 아날로그핀 ..
라이브러리 설치 https://github.com/shirriff/Arduino-IRremote 에 있는 라이브러리를 다운로드 받는다. https://github.com/shirriff/Arduino-IRremote/archive/master.zip 를 클릭하면 ZIP압축파일로 다운로드 받을 수 있다. 압축을 풀은 후.. C:\Users\webnautes\Documents\Arduino\libraries 위치에 붙여 넣었다. 그러면 아두이노 IDE에서 해당 라이브러리와 예제를 사용할 수 있다. 그리고 나서 충돌을 피하기 위해 C:\Program Files (x86)\Arduino\librarie\ RobotIRremote를 삭제한다. 그리고 아두이노 IDE를 다시 실행해야 반영이 된다. 아래와 같이 TS..
세븐 세그먼트에는 두 가지 타입이 있는데 연결방식이 차이가 있습니다. Anode 타입의 경우 COM 2개와 DP를 VCC에 연결하고 Cathode의 경우에는 그라운드를 연결해주면 됩니다. 세븐세그먼트가 Anode의 경우 연결한 예시입니다. 아래 그림에서 G는 5V가 아닌 D6에 연결해야 합니다. 동작방식의 차이는 Cathode의 경우 HIGH 신호를 준 곳이 켜지지만 Anode의 경우에는 LOW신호를 준 경우에 켜집니다. 아래 표는 Anode의 경우를 나타낸 것입니다. abcdefg0LOWLOWLOWLOWLOWLOWHIGH1HIGHLOWLOWHIGHHIGHHIGHHIGH2LOWLOWHIGHLOWLOWHIGHLOW3LOWLOWLOWLOWHIGHHIGHLOW4HIGHLOWLOWHIGHHIGHLOWLOW5LO..
PWM은 전압레벨을 제어 하여 아날로그 출력과 유사한 결과를 만들어 낼 수 있도록 해줍니다.디지털 출력 라인을 매우 빠르게 껐다 켰다 함으로써 전압을 결정 할 수 있습니다.예를 들어 아두이노의 디지털 라인은 0또는 5V의 전압을 출력할 수 있습니다. 만약 PWM을 Duty Cycle 50%로 설정한다면 평균 출력 전압은 2.5V가 되고 25% duty cycle이라면 출력은 1V가 됩니다. PWM은 아두이노 디지털 핀에서 전압을 제어 할 수 있도록 해주지만 모터를 제어하기 하기에는 전류의 제약이 있습니다. 마이크로 컨트롤러가 제공할 수 있는 전압보다 모터가 더 큰 전압을 요구하기 때문에 마이크로컨트롤러의 출력핀으로는 모터를 동작시키는데 무리가 있습니다. 그리고 또한 DC모터의 회전 방향을 조정하기 위해서..
참고한 원본 글은 http://arduino.cc/en/Tutorial/BlinkWithoutDelay 입니다. 두 가지 일을 동시에 실행시키려고 하는 경우 delay()함 수를 사용하게 되면 원하는 결과를 얻지 못할 수 있습니다. 예를 들어 LED를 깜박이게 하려고 delay함수를 사용하면 delay 함수 시간 동안 프로그램을 정지시키기 때문에 그 때 버튼을 누르는 경우 놓치게 됩니다. 그래서 delay함수를 사용하는 대신에 시간을 측정합니다. 이전 시간을 기록해두고 현재시간을 계속 체크해서 일정 시간이 경과했다면 LED의 상태를 바꾸어 주고 현재 시간을 기록해둡니다. 이 과정을 반복함으로써 LED는 깜박이게 됩니다. 별도의 하드웨어 추가없이 아두이노 Uno의 13번 핀에 연결되어 있는 내장되어 있는 ..
아날로그 값을 읽어와서 전압값으로 변환 후 시리얼로 출력하는 예제입니다. 참조한 원본 글은 http://arduino.cc/en/Tutorial/ReadAnalogVoltage 입니다. 가변저항기의 양끝핀을 각각 5V와 그라운드에 연결해주고 가운데 핀은 아날로그0번에 연결합니다. 가변저항기를 좌우로 돌리면 저항값이 변하게 되는데 그에 따라 가운데 핀의 전압이 바뀌게 됩니다. 가변저항기의 5V가 연결된 핀 쪽으로 다돌리면 저항이 0에 가까워져서 가운데 핀에서는 5V의 전압이 됩니다. 반대로 가변저항기의 그라운드가 연결된 핀 쪽으로 다돌리면 저항이 10K옴에 가까워져서 가운데 핀에서는 0V의 전압이 됩니다. 아두이노의 아날로그-디지털 컨버터에 의해서 0~5V사이의 전압은 0~1023 사이의 값으로 변환됩니다..