1602 LCD와 포토센서 연결하여 LCD로 출력값을 나타내는 방법입니다.


※ 준비물 

아두이노 우노 1EA

1602LCD 1EA

포토센서 1EA

점퍼 와이어 적당히

10KΩ 저항 1EA

1KΩ 저항 1EA


※ 배선연결



※ 아두이노 코드


#include <LiquidCrystal.h>             // LCD 헤더 호출 LiquidCrystal lcd(12, 11, 2, 3, 4, 5);             // LiquidCrystal 라이브러리 초기화 명령 void setup()

{      lcd.begin(16, 2);                         // LCD Cell 규격, 16개의 글자를 2줄로 표시 ,      lcd.print("hello, world!"); } void loop()

{     lcd.setCursor(0,1); //출력위치 시작점      lcd.print(analogRead(A0)); //Analog 입력값을 출력     delay(200); }


LCD에 포토센서 입력 아날로그 값이 0.2초 간격으로 표시됩니다.

 

'아두이노' 카테고리의 다른 글

초음파센서 LCD  (0) 2016.07.27
LCD온도표시  (0) 2016.07.27
신호등제어  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20

Traffic sign control with Arduino UNO

int redPin = 2;     //2번 포트를 redPin으로 지정

int yellowPin = 3;     //3번포트

int greenPin = 4; 

int buttonPin = 5;

int state = 0;        //상태변수 state를 0으로 default(=초기화)시킴



void setLights(int red, int yellow, int green)     //메소드::함수를 새로 만드는 코드

//문법:: 변수명(내부변수, 내부변수, 내부변수)

digitalWrite(redPin, red);

digitalWrite(yellowPin, yellow); 

digitalWrite(greenPin, green); 

}



void setup() 

pinMode(redPin, OUTPUT);

pinMode(yellowPin, OUTPUT);

pinMode(greenPin, OUTPUT);        //LED를 출력으로 지정

pinMode(buttonPin, INPUT);         //버튼은 입력으로 지정

}



void loop() 

if (digitalRead(buttonPin))   

//만약 버튼핀의 Digital값을 읽었을때 이 값이 True인가? (입력이 되었는가? /False는 앞에 !를 붙인다.)

//풀업 풀다운 그림 링크

if (state == 0)        //초기상태

setLights(HIGH, LOW, LOW); 

state = 1;          //현재상태 (이런 변수를 보통 Flag bit라고 부른다.)

else if (state == 1) 

setLights(HIGH, HIGH, LOW); 

state = 2;    //현재상태의 Flag bit는 2

 }

else if (state == 2) 

setLights(LOW, LOW, HIGH); 

state = 3; 

else if (state == 3) 

setLights(LOW, HIGH, LOW); 

state = 0; 

delay(3000);

delay(1000); 

}

 

'아두이노' 카테고리의 다른 글

LCD온도표시  (0) 2016.07.27
포토센서  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20
아두이노 블루투스 연결기초  (0) 2016.07.20

다이나믹셀은 로보티즈 사에서 판매하는 모터입니다.

ax-12a를 사용해봤고 컨트롤러를 통해서 제어를 할수있네요

 

ax-12a에 대한 정보는 http://www.robotis.com/index/product.php?cate_code=13101111&bbs_no=24#product_title

여기에있어요.

프레임을 뭘써야하는지 어떻게 조립하는지 자세하게 나와있네요

 

 

회사에서만든 프로토콜을 이용해서 제어가가능합니다.

 

프로토콜에 대한 정보

http://support.robotis.com/ko/e-manual_kor.htm#product/dynamixel/ax_series/dxl_ax_actuator.htm

링크에 가시면 프로토콜에 대한정보를 알수있어요

 

 

 

sdk를 이용해서 플랫폼을 개발할수도있구요

sdk에 대한정보는 아래링크에있어요

http://support.robotis.com/ko/software/dynamixelsdk.htm

 

 

 

제공하는 컨트롤로가 아닌 atmega128이나 컨트롤러를 이용해서 제어할수도있다고 하네요

플랫폼 개발이겠죠

atmega128을 이용해서 개발하는방법은 아래링크에 가시면 확인할수있어요

http://www.robotis.com/xe/?mid=download&page=2&document_srl=5697

 

 

로보티즈에서

제공하는 플랫폼의 경우에도 소스가 오픈되어있어요

http://support.robotis.com/ko/e-manual_kor.htm#software/embeded_c/embeded_c_main.htm

 

영문 도로명주소 찾기

 

해외 직구시 필요한 영문주소 찾는방법입니다.

zipcode도 확인가능합니다.

 

 

 

네이버 포털에서 "도로명 주소찾기" 검색하세요

 

서울시청을 검색하겠습니다.

 

우측의 더보기 버튼을 누르면 영문주소가 확인됩니다.

지번은 영문주소 서비스를 제공하지 않네요

 

'기타' 카테고리의 다른 글

알리익스프레스 구매방법  (1) 2016.07.27
가오리 로봇?  (0) 2016.07.20
엑셀 특수문자 표  (0) 2016.07.20

자동차 번호판인식하기

 

준비중입니다.

아두이노 코딩을 웹으로 작성 및 저장할 수 있는 코드밴더라는 사이트를 소개하겠습니다.


장점은 빠른설치, 클라우드 방식으로 타인과 코드 공유가능하며 인터넷이 되는 곳에서는

어디서나 코드를 불러올 수 있습니다.  링크 <<눌러주세요.


▶ 우측 상단 Register를 클릭합니다.


 ▶ 가입시 사용할 User name, E-mail 주소, Password를 입력 후 Register를 눌러주세요.


▶ 입력한 E-mail 주소로 도착한 메일을 열어 Confirm Account를 눌러주세요


▶ 설정을 위한 5단계의 설정이 있습니다. 2분이면 끝납니다. GET ME THERE을 클릭하세요.


▶ Let's Go 누르고 2단계는 동영상 tutorial 같은데 자동으로 3단계 넘어갑니다.


▶ 아두이노 보드 칩셋을 동작시킬 드라이버를 다운로드 및 실행합니다. 

    이미 아두이노에 코딩을 했었다면 추가 다운로드할 필요는 없습니다.


▶ Arduino Uno로 선택 후 USB 포트에 아두이노를 연결합니다. 자동으로 COM6 연결됨 

   다른 보드도 선택가능합니다.

▶ 5단계 설정이 완료되면 위 화면이 나옵니다. 가운데 하단 Homepage를 클릭하여 이동합니다.


▶ 우측 중간의 Create Sketch를 눌러주세요.


▶ 작성할 스케치의 속성 설정입니다. Sketch type 및 이름, 설명을 작성 후 Create를 눌러주세요.

▶ 이제 코드를 작성하면 됩니다. 

Verify Code : Compile 기능

Run on Arduino : 보드에 스케치 업로드

Save Sketch : 코드밴더에 스케치 저장


It takes only 5 minutes.

'아두이노' 카테고리의 다른 글

포토센서  (0) 2016.07.27
신호등제어  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20
아두이노 블루투스 연결기초  (0) 2016.07.20
아두이노 개발환경 설치  (0) 2016.07.20

알리익스프레스 직구방법을 심플하게 소개합니다.

 

무료 배송선택 시 배송기간은 20~40일? 가량 소요되며 기다리는동안 암에 걸릴수 있으니

급한 제품은 배송 옵션에서 배송비를 추가하면 됩니다.

 

주문전 해외결재가 가능한 비자 또는 마스터 카드를 준비합니다.

 

▶ 포털에서 알리익스프레스 검색하여 홈페이지에 접속 후 우측 사람모양으로 커서이동

 

▶ 우측의 Join Free를 클릭합니다.

 

▶ ID로 사용할 Email 주소 및 기타정보를 입력 후 Create Your Account를 클릭합니다.

 

▶ 검색창에 찾고자하는 품명을 입력합니다. Free Shipping 박스를 선택하고

저렴한 상품을 찾기위해 Sort by 항목에 Price를 클릭합니다.

 

▶ 원하는 상품을 찾아 선택합니다.

 

▶ 배송시간 및 비용을 보기위해 Shipping을 클릭합니다.

 

▶ 팝업 상단이 보통 Free Shipping 입니다. 원하는 배송방법 선택 후 OK 클릭합니다.

Add to Cart를 선택하여 장바구니에 담거나 바로 구매를 원하면 Buy Now를 선택합니다.

 

▶ View Shipping Cart로 장바구니 가거나 Continue를 눌러 계속 쇼핑을 합니다.

 

▶ 장바구니에 담긴상품을 구매하려면 Buy from this seller를 클릭합니다.

여러상품이 있다면 Buy all을 눌러줍니다.

 

 

▶ 배송정보를 입력합니다. 배송지의 영문 주소를 모른다면 링크를 클릭하세요

 

▶ 상품 배송관련 정보를 확인 후 Place Order를 클릭합니다.

 

▶ Card 결재를 선택합니다.

 

 

▶ 미리 준비한 Card 정보를 입력 후 Save & Pay를 클릭합니다.

홈 페이지에서 My order를 누르면 주문정보를 확인할 수 있습니다.

'기타' 카테고리의 다른 글

영문 도로명주소찾기  (0) 2016.07.27
가오리 로봇?  (0) 2016.07.20
엑셀 특수문자 표  (0) 2016.07.20

아두이노 블루투스 LED, 모터제어

 

아두이노 보드와 블루투스 어플을 사용하여 LED 및 DC 모터를 제어하는 방법을 소개합니다.

 

적용어플은 이번에 적용할 코드에 특성화된 어플이기에 하기와 같이 접속하여 다운받으시기

바랍니다.

 

# 어플 다운로드 방법

  플레이스토어에서 Arduino Bluetooth 검색

 

 

 

# 아두이노 회로구성은 다음과 같습니다.

   - led에 220Ω 저항하나 추가해주세요. 저항 위치는 LED +,-극 어디에 연결해도

     상관없습니다.

 

 

DC 모터를 연결하고 싶다면 시 LED를 제거 후 모터를 연결하면 됩니다. ↓↓

위와 같은 종류의 DC 모터는 무극성 타입이며 +,- 연결 순서에 따라 회전방향이 달라집니다.

 

아두이노 코드는 다음과 같습니다.

 

#include <SoftwareSerial.h>

 

int bluetoothTx = 2;             // 디지털 2번핀 블루투스 TX핀 지정

int bluetoothRx = 3;            // 디지털 3번핀 블루투스 RX핀 지정

int led = 13;                      // 디지털 13번 핀 led 지정

int buttonPin1 = 7;             // 디지털 7번 핀 1번 버튼 지정

int buttonPin2 = 8;             // 디지털 8번 핀 2번 버튼 지정

int button1State = 0;          // 1번 버튼 상태 초기화

int button2State = 0;          // 2번 버튼 상태 초기화

int dataFromBt;                 // Bluetooth 앱으로부터 입력이 담길 변수 지정 

 

boolean lightBlink = false;    //boolean 변수 lightBlink에 거짓값 담는다. (초기화)

 

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);   //소프트웨어 시리얼 채널 지정

//하드웨어 시리얼인 아두이노의 Tx, Rx 핀을 사용하면 코드 업로드 및 다운로드 시  충돌 발생

 

void setup()

{

  Serial.begin(9600);            // 초당 9600비트 시리얼 통신 시작

  bluetooth.begin(9600);      // 초당 9600비트 블루투스 통신 시작

  pinMode(led, OUTPUT);     // led 연결 핀  출력지정

  pinMode(buttonPin1, INPUT); // 1번 버튼 연결 핀 입력지정

  pinMode(buttonPin2, INPUT); // 2번 버튼 연결 핀 입력지정

}

 

void loop()

{

 

  if (bluetooth.available())                 //bluetooth 사용 가능시

  { 

    // Serial.println((char)bluetooth.read());

    dataFromBt = bluetooth.read();     // bluetooth 입력값이 변수에 담긴다

 

    if (dataFromBt == '1')                 // bluetooth 입력이 1이면 

    {             

        Serial.println("led on");            // 시리얼모니터에 "led on" 출력

        digitalWrite(led, HIGH);           // led ON

        bluetooth.print("1");              // bluetooth 1을 출력한다.

    }

   if (dataFromBt == '0')                 //bluetooth 입력이 0이면 

   {

      Serial.println("led off");             // 시리얼모니터에 "led off" 출력

      digitalWrite(led, LOW);             // led OFF

      bluetooth.print("0");                 // bluetooth 앱의 off 버튼 동작

    }

    if (dataFromBt == 'b')                // 변수에 b가 입력되면(앱에서 b입력시)

    {

       Serial.println("a");                  // 시리얼 모니터 a출력

       lightBlink = true;                  // lightBlink 변수에 참값을 넣는다.

    }

    else                                       //변수에 b가 입력되지 않을 시

    {

       lightBlink = false;                 // lightBlink 변수에 거짓값을 넣는다.

    }

  }

    if (lightBlink)                         // lightBlink 참이면 (블루투수 b 입력시) led 점멸 반복

    {

       digitalWrite(led, HIGH);        // led ON

       bluetooth.print("1");            // 블루투스 1출력

       Serial.println("HIGH");          // 시리얼 모니터에서 "HIGH"를 출력

       delay(500);                       // 0.5초 딜레이

       digitalWrite(led, LOW);        // led OFF

       bluetooth.print("0");            // 블루투스 0 출력

       Serial.println("LOW");           //시리얼 모니터에서 "LOW"를 출력

       delay(500);                        // 0.5초 딜레이

  }

 

  //------arduino push button code----------------

 

  button1State = digitalRead(buttonPin1);      // 1번 버튼 상태값 변수에 7번핀 입력값을 대입

  button2State = digitalRead(buttonPin2);      // 2번 버튼 상태값 변수에 8번핀 입력값을 대입

  if (button1State == HIGH)                        // 버튼1번 누를 시

  { 

     digitalWrite(led, HIGH);                         // led ON

     bluetooth.print("1");                             // 블루투스 앱 1 출력

     Serial.println("on");                               //시리얼모니터 "on" 출력

  }

  if (button2State == HIGH)                         //버튼2번 누를 시 

  { 

      digitalWrite(led, LOW);                         // led OFF

      bluetooth.print("0");                             // 블루투스 앱 0 출력

      Serial.println("off");                              //시리얼모니터 "off" 출력

   }

}

 

 

원본 작성자가 올린코드는 약간의 에러가 있어 하기를 주석처리 하였습니다.

// Serial.println((char)bluetooth.read());

 

그로인해 시리얼 모니터 출력내용 코드 일부는 실행되지 않고 있습니다.

 

원본내용은 유투브 동영상에 연결되어 있으니 링크를 눌러주세요.

'아두이노' 카테고리의 다른 글

포토센서  (0) 2016.07.27
신호등제어  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 연결기초  (0) 2016.07.20
아두이노 개발환경 설치  (0) 2016.07.20

하기 내용은 회로 초보자를 위한 간단한 전압분배 법칙을 설명한 내용입니다.

 

키르히 호프의 전압법칙(KVL)에 따라 임의의 폐회로에서 전압강하의 합은 전압 상승의 합과

 

같다.

 

5V 입력에서 3.3V를 얻기위한 전압분배 방법은 아래와 같다.


 

        


각 1KΩ의 저항을 사용했다는 가정하에 Vout을 계산해 보자.

 

Vout = R2/(R1+R2) *Vin

 

Vout = (1KΩ+1KΩ)/(1KΩ+1KΩ+1KΩ) *Vin

 

Vout = 2/3 *5 = 10/3 = 3.3

 

상기의 전압분배 법칙을 사용하여 원하는 전압값을 추출할 수 있습니다.

 

해당출력으로 전자기기를 동작하는 등의 응용은 좀 더 정확한 회로이론을 확인 후 적용 하세요.

→ Vin으로 10V 이상의 전압 적용 및 입력값이 전류일 때는 소자파손등의 위험성이 있습니다.

 

제너다이오드와 일반 다이오드를 이용한 전압분배 방법은 링크를 눌러 확인해 주세요.

 

'전자' 카테고리의 다른 글

기본 논리게이트  (0) 2016.07.20

기본 논리 게이트 설명입니다.



 논리 곱인 AND 게이트는 두 입력 모두 참인 경우만 출력이 참이 되며 두 입력의 최소값을

 구한다. 논리식은 Y = A * B 이다.



논리 합인 OR 게이트는 두 입력이 모두 거짓일 때만 출력이 거짓이 되며 두 입력의 최대값을

구한다. 논리식은 Y = A + B 이다.

 

논리 부정인 NOT 게이트는 입력이 참이면 거짓, 입력이 거짓이면 참을 출력한다.

논리식은 out = A' 이다.


논리 부정의 곱인 NAND 게이트는 입력 모두가 참일 때만 출력이 거짓이 된다.

논리식은 Y = (A * B)' 이다.


 

논리 부정의 합인 NOR 게이트는 입력 모두가 거짓일 때만 출력이 참이 된다.

논리식은 Y = (A + B)'이다.

 

배타적 논리합인 XOR 게이트는 두 입력값이 동일한 경우에 출력은 항상 거짓이 된다.

논리식은 Y = A'B + AB' 이다.

'전자' 카테고리의 다른 글

5V입력 3.3V 전압분배  (0) 2016.07.20

+ Recent posts