원래 노키아 핸드폰에서 사용되던 LCD인데 PCD8544 컨트롤러를 사용하고 있습니다. 그래픽 LCD라 간단한 그래픽 출력도 가능한데 가로 x 세로가 84x48의 해상도를 가집니다. 문자를 출력해보니 가로 12자가 들어가고 6줄이 가능합니다.. 아래 5개 핀은 순서대로 아래처럼 연결해주고아두이노 7번핀 ---- LCD 3번핀아두이노 6번핀 ---- LCD 4번핀아두이노 5번핀 ---- LCD 5번핀아두이노 4번핀 ---- LCD 6번핀아두이노 3번핀 ---- LCD 7번핀 LCD8번핀과 LCD1번핀은 3.3V에 같이 연결해주고 LCD2번핀은 GROUND에 연결해주었습니다... https://github.com/sparkfun/GraphicLCD_Nokia_5110/tree/master/Firmware/N..
서보모터를 아래처럼 직접 아두이노에 연결을 해주었습니다. 시리얼 모니터를 열고 -180에서 180 사이의 숫자를 입력하면 서모 모터가 해당 방향으로 이동하게 됩니다. #include Servo myservo; int servo_position = 0; void setup() { Serial.begin(9600); myservo.attach(9); //디지털9번핀에 서보모터를 연결 } String readSerial() { String str = ""; char ch; while( Serial.available() > 0 ) { ch = Serial.read(); str.concat(ch); delay(10); } return str; } void loop() { String str = readSerial..
예전에 올렸던 글들을 다시 읽어보며 정리하다말고.. 문뜩 떠오르는게 생겨서 만들어 봤습니다..바로 스위치를 돌리면 점점 밝아지는 전구 효과를 만들어 보는 것입니다.. [임베디드/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모터의 회전 방향을 조정하기 위해서..
밖에 나왔다가 아두이노 확인할게 있는데 들고 온게 없어서 혹시나 해서 찾다보니 시뮬레이터라는게 있네요.. 찾는 부품이 없어서 결국 확인은 못해보고 LED 켜는 것만 해봤는데 참 신기합니다... 현재 태스트 해본건 웹 상에서 시뮬레이터를 돌려볼 수 있는 아래 사이트로 무료로 가입하면 테스트 해볼 수 있습니다. http://123d.circuits.io/ 아래 화면은 실제로 돌려본 화면인데 부품들을 연결하고 아래쪽에 코드를 작성해주고 실행시켜보니 LED가 동작합니다. 괜찮긴 한데 웹상이라 좀 반응이 느린 감도 있지만 .. 한번쯤 사용해 볼만 한거 같습니다..
참고한 원본 글은 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 사이의 값으로 변환됩니다..
불을 끄면 CDS값이 50이하로 떨어지고 LCD화면에 plz turn on을 출력합니다. 다시 불을 켜면 cds값은 올라가게 되고 LCD화면에 plz turn off를 출력합니다. 한줄만 지우는 방법을 못찾아서 약간 깜박입니다. 소스코드 #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int cdsPIN = 0; int ledPIN = 6; void setup() { // put your setup code here, to run once: Serial.begin(9600); lcd.begin(16,2); } void loop() { // put your main code here, to run repeatedly: int value = analogRead(cdsPI..