센서 작업을 하다보면 전류/전압에 대한 변경이 필요할 때가 많습니다.

아누이노에서도 마찬가지입니다.


아래는 저가형 DC 컨버터 중 LED가 달린 모델입니다. LED가 달려서 저가 중에서는 상대적으로 좀 비싼 녀석입니다. 특이사항으로 가변 저항(전위차계, potentiometer)이 달려서 출력 전압(output)을 조절할 수 있습니다.


□ DC 4.5-24V To 0.93-20V Converter Step Down Module With LED Voltmeter



아래는 6셀 리튬폴리머 22.2 volt 배터리로 테스트를 한 결과입니다.

22.2 V가 12V 로 step down된 것을 볼 수 있습니다. 


□ 테스트 1) 22.2 V → 12V


아래 가변저항을 돌려주면 전압 조절이 가능합니다. 보통 반시계방향일 경우 buck ( step down, 감압 ) 됩니다.


좀 더 낮은 전압도 잘 변경됩니다. 스펙처럼 4.5 V - 24 V를 0.93 - 20V 정도로 변경이 가능할 듯 합니다.

□ 테스트 2) 11.1 V → 5.0 V


□ 주의사항

22.2V 연결시 상당히 뜨거워 집니다. 장기간 사용해도 괜찮을까 생각이 스믈스믈 떠오르게 되는데요.

화재 위험이 있는 곳에서는 사용하지 않는 것이 좋겠습니다.

역시 ... 싼건 싼 이유가 있는 것일까요? 그러나, 간단한 테스트용으로는 가성비가 좋습니다.


□ 기타

보통 DC-DC 강압 컨버터는 강압 컨버터, step down 컨버터, 또는 buck 컨버터라도 흔히들 부릅니다. 사실 buck 컨버터는 강압 컨버터 중 하나이긴 하지만, 가격대 성능비와 작은 크기때문에 많이 사용되는 바람에 DC-DC 강압 컨버터의 대명사처럼 사용되죠.

아래 사이트는 buck 컨버터에 대해 잘 소개되어 있습니다.

시간날때 보셔도 좋을 듯 합니다.


관련 URL  buck converter란? http://blog.naver.com/pstek1124?Redirect=Log&logNo=70178049607





반응형
  • 본 제품은 Sharp사의 적외선 근접센서(Part# GP2Y0A02YK0F)로 측정한 거리를 아날로그 출력으로 내보냅니다.
  • 4.5-5.5VDC를 공급받으며 15cm(2.8V) ~ 150cm(0.4V)을 측정합니다.
  • 센서에는 JST 커넥터가 부착되어 있습니다.
  •  

     

     

    gp2y0a02yk_e.pdf

     

    반응형

     

    10cm~80cm

    0~10cm까지를 사용할 수도 있지만, 그 값이 일정하지 않고, 0cm에서 0V를 출력하지 않는 것으로 확인되었습니다. 따라서 10cm 이후부터 사용하는 것이 적합하며, 10cm이내의 거리 센싱은 근거리 센서를 사용하는 것이 적합할 것입니다. 

     

     

     

     

     

    int ir = 0;

    void setup()

    {

      analogReference(DEFAULT);

      Serial.begin(9600);

      pinMode (ir, INPUT);

    }

     

    void loop()

    {

      int raw=analogRead(ir);

      int volt=map(raw, 0, 1023, 0, 5000);

      int cm=(21.61/(volt-0.1696))*1000;

      Serial.println(cm);  

      }

     

    반응형

    4~30 cm

     

     

     

     

    int IRpin = 1;                                    // analog pin for reading the IR sensor

    void setup() {
      Serial.begin(9600);                             // start the serial port
    }

    void loop() {
      float volts = analogRead(IRpin)*0.0048828125;   // value from sensor * (5/1024) - if running 3.3.volts then change 5 to 3.3
      float distance = 65*pow(volts, -1.10);          // worked out from graph 65 = theretical distance / (1/Volts)S - luckylarry.co.uk
      Serial.println(distance);                       // print the distance
      delay(100);                                     // arbitary wait time.
    }
    [출처] GP2Y0A41SK0F 적외선 거리센서 with 아두이노|작성자 roboholic84


     

     

    반응형

     

     

     

     

     

    GENERAL SPECIFICATIONS 

     
    CIRCUIT:SPST
    CURRENT RATING:12mA
    VOLTAGE RATING:24VDC
    CONTACT RESISTANCE:50mΩ Max.(inital)
    INSULATION RESISTANCE:100MΩ Min
    OPERATING FORCE:170gf±50g
    TOTAL TRAVEL:2.8mm±0.4mm
    OPERATING LIFE:50,000 CYCLES Min
    SOLDER SPECIFICATIONS:256°C for 3 seconds
    FUNCTION:Momentary
    OPERATING TEMPERATURE:+10°C ~ +60°C
     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    반응형

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

    Sharp 2Y0A21 : 적외선 거리센서  (0) 2014.12.24
    GP2Y0A41SK0F : 적외선 거리센서  (0) 2014.12.24
    스위치 : 푸시형 NON-LOCK DJP2213  (0) 2014.11.26
    HC-SR04 : 초음파 거리측정 센서  (0) 2014.11.24
    I2C Address  (0) 2014.11.21

     

     

     

     

     

     

     * Typical Specifications
     
    1.Rating : DC30V 0.1A
     2.Circuit : 2C - 2P
     3.Contact Resistance : 30mΩMax.
     4.Operating Force : 200±80gf, 300±100gf
     5.Operating Life : 10,000cycles
     6.KNOB 사이즈 : 10 X 10 X 6.5mm 

     

     

     

     

     

     

     

     

     

     

     

     

     

    반응형

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

    GP2Y0A41SK0F : 적외선 거리센서  (0) 2014.12.24
    스위치 : 푸시형 NON-LOCK PB86-A1  (0) 2014.11.26
    HC-SR04 : 초음파 거리측정 센서  (0) 2014.11.24
    I2C Address  (0) 2014.11.21
    801s : 진동센서  (0) 2014.11.20

     

    □ HC-SR04

     

     

     

     

    □ HC-SR04 특징(Specification)

     항목 

     내용 

     동작 전압(Working Voltage)

     5V

     동작 전류(Working Current)

     15mA

     동작 주파수(Working Frequency)

     40KHz

     측정 거리(Min, Max Range)

     2 cm ~ 4 m

     측정 각도(Measuring Angle)

     15도 (degree)

     트리거 입력 신호(Trigger Input Signal)

     10㎲ TTL Pulse

     응답 출력 신호(Echo Output Signal)

     거리에 비례하는 TTL Pulse

     크기(Dimension)

     45 * 20 * 15 mm

     라인 구성

     Vcc, Trig, Echo, GND 

     

     

    □ HC-SR04 아두이노 회로 구성도( HC-SR04 Arduino circuit diagram )

     

     

     

     

    □ HC-SR04 와 아두이노 Pin 배열 

     HC-SR04 

     Arduino 

     비고

     VCC

     5V

     

     TRIG

    Digital pin 12

     

     ECHO

    Digital pin 11

     

     GND

     GND

     

    * TRIG와 ECHO는 Digital INPUT 중 어떤 것을 사용해도 무방함

     

     

    □ HC-SR04 Sample Source 

    #define DEFN_TRIGGER 12
    #define DEFN_ECHO    11
    #define DEFN_DELAY   1000
    #define DEFN_BIT_RATE 9600
     
    void setup(){
     pinMode(DEFN_TRIGGER, OUTPUT);
     pinMode(DEFN_ECHO   , INPUT );
     Serial.begin(DEFN_BIT_RATE);    
    }
     
    void loop() {
     digitalWrite(DEFN_TRIGGER, LOW);                  
     DEFN_DELAYMicroseconds(2);
     digitalWrite(DEFN_TRIGGER, HIGH);
     DEFN_DELAYMicroseconds(10);
     digitalWrite(DEFN_TRIGGER, LOW);
     
     long time_us = pulseIn(DEFN_ECHO, HIGH);  // Get DEFN_ECHO time in microsecs
     long dist_mm = time_us * 0.17;            // 0.34 / 2
     
     Serial.print("Time(us) : ");        Serial.print(time_us); 
     Serial.print("\tDistance(mm) : ");  Serial.print(dist_mm);
     Serial.println("");
     
     DEFN_DELAY(DEFN_DELAY);
    }

     

     

    □ HC-SR04 참고자료

    HC-SR04 001 datasheet.pdf

     

     

     

     

     

    반응형

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

    스위치 : 푸시형 NON-LOCK PB86-A1  (0) 2014.11.26
    스위치 : 푸시형 NON-LOCK DJP2213  (0) 2014.11.26
    I2C Address  (0) 2014.11.21
    801s : 진동센서  (0) 2014.11.20
    BMP180 : 고도센서, 기압센서, 온도센서  (0) 2014.11.20

     

     

     

     

     

     

     MPU6050

     0x68 

     

     

     BMP180

     0x77

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    반응형

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

    스위치 : 푸시형 NON-LOCK DJP2213  (0) 2014.11.26
    HC-SR04 : 초음파 거리측정 센서  (0) 2014.11.24
    801s : 진동센서  (0) 2014.11.20
    BMP180 : 고도센서, 기압센서, 온도센서  (0) 2014.11.20
    복합 센서  (0) 2014.11.19

     

     

     

     

     

     

     

     

     

    GENERAL SPECIFICATIONS 
    Size: 41 * 15 * 12.5mm
     
    The main chip: LM393, vibrating probe
     
    Operating Voltage: DC 3-5V
     
    Main features:
     
    1, having a signal output instruction;
    2, with a TTL level signal, and the analog output signal;
    3, the output valid signal is high, the light goes out;
    4, the sensitivity is adjustable (fine-tuning);
    5, wide detection range of vibration, no direction;
    6, with mounting holes, firmware installation flexible and convenient.
    Applications: can be used in anti-theft devices, electronic locks, mechanical equipment vibration detection, detection range bull's-eye counts vibration testing occasions;

     

     

    CIRCUIT:SPST
    CURRENT RATING:12mA
    VOLTAGE RATING:24VDC
    CONTACT RESISTANCE:50mΩ Max.(inital)
    INSULATION RESISTANCE:100MΩ Min
    OPERATING FORCE:170gf±50g
    TOTAL TRAVEL:2.8mm±0.4mm a , long : measurement 10mm x wide 30mm x high 20mm
    2 , main chip : lm393 , vibration probe
     three , working voltage : dc 3-5v
     four , features :
    1 , possesses the signal output indication
    2 , with analogue and ttl level signal output signal output
    3 , output signal for high effective dbm0 , indicator lamp quellers .
    4 , sensitivity adjustable ( adjusting ) .
    5 , vibration wide range detection , directionality none .
    6 , belt mounting hole , firmware flexible and convenient installation .
    OPERATING LIFE:50,000 CYCLES Min
    SOLDER SPECIFICATIONS:256°C for 3 seconds
    FUNCTION:Momentary
    OPERATING TEMPERATURE:+10°C ~ +60°C
     

     

     

     

     

    801s 진동센서 001 specification.pdf

     

     

     

     

     

    반응형

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

    HC-SR04 : 초음파 거리측정 센서  (0) 2014.11.24
    I2C Address  (0) 2014.11.21
    BMP180 : 고도센서, 기압센서, 온도센서  (0) 2014.11.20
    복합 센서  (0) 2014.11.19
    GP2Y1010AU0F : 먼지 센서  (0) 2014.11.18

    BMP180은 BMP085의 상위모델로 기압센서입니다. 기압 측정값을 이용해서 고도로 변환이 가능합니다.

     

    □ BMP180 

     4 pin

     5 pin 

     

     

     

    BMP180 특징(Specification) 

    항목

    범위

     분해능력

     오차

     압력 (Pressure range)

     300 ~ 1100 hPa

     0.01 hPa 

     ± 0.02 hPa ( 약 0.17 m 고도 오차 )

     온도

     -40 ~ 85 도(C)

     0.1 도  

     

    □ BMP180 아두이노 회로 구성도( BMP180 Arduino circuit diagram )



     

    □ BMP180 와 아두이노 Pin 배열( BMP180 Arduino PIN Mapping )

    BMP180 4 pin

    BMP180 5 pin

     비고(Remark)

    Pin 배열

     Arduino

    Pin 배열

     Arduino

     SCL

     A5(SCL)

     SDA

     A4(SDA)

     

     SDA

     A4(SDA)

     SCL

     A5(SCL)

     

     VIN

     +5V  GND  GND  

     GND

     GND

     VDD

     +3.3V (Only)

     

       

     VDDIO

     N/A

     I/O voltage

    ※ VDD    : 5 pin의 경우 3.3V 연결 

        VDDIO : 특수 저전력 microprocessor용으로, 아두이노의 경우 별도 연결 필요없음

      ( VDD    : Connect the power pins (+ and -) ONLY to a 3.3V supply.

        VDDIO : Leave disconnected unless you're connecting to a lower-voltage microprocessor )

     

    BMP180 통신 프로토콜

     

     

    BMP180 Sample Source 

      - 기본 라이브러리(Basic Library)

        

     


      - Sample 1

    #include <Wire.h>

    #include <Adafruit_BMP085.h>


    void setup() {

      Serial.begin(9600);

      BMP180init();

    }

      

    void loop() {

     BMP180exec();

     delay(1000); 

    }


    Adafruit_BMP085 bmp;

    void BMP180init() {

        if (!bmp.begin(BMP085_ULTRAHIGHRES)) {

            Serial.println("BMP180 센서를 찾을 수 없습니다. 연결을 확인해 주세요!");

        }

    }

      

    void BMP180exec() {

        float Ftemperature = 0.0;    // 온도 측정 값

        float Fpressure    = 0.0;    // 기압 측정 값

        float Faltitude    = 0.0;    // 고도 측정 값

        

        Ftemperature =  bmp.readTemperature();

        Fpressure    =  bmp.readPressure();

        Faltitude    =  bmp.readAltitude( 100560 );     // 101560 : 서울 해면기압, 101325 : 표준기압



        char CAtemperature [20] = ""; 

        char CApressure    [20] = ""; 

        char CAaltitude    [20] = ""; 

        char CAbuffer      [254] = "";

        dtostrf( Ftemperature, 10, 2, CAtemperature );

        dtostrf( Fpressure   , 10, 2, CApressure    );

        dtostrf( Faltitude   , 10, 2, CAaltitude    );

        

        // 온도 압력 고도

        sprintf( CAbuffer, "Temp(C): %s\tPres(PA): %s\tAlt(M): %s", CAtemperature, CApressure, CAaltitude );

        Serial.println( CAbuffer );


        // TEST

        //Serial.print( "temp(C): "    ); Serial.print  ( Ftemperature );

        //Serial.print( "\tpres(Pa): " ); Serial.print  ( Fpressure    );

        //Serial.print( "\talti(M) : " ); Serial.println( Faltitude    );

    }

     



      - Sample 2

     

    #include <Wire.h>
    #include <Adafruit_BMP085.h>


    void setup() {
      Serial.begin(9600);
      BMP180init();
    }
     
    void loop() {
     BMP180exec();
     delay(1000);
    }


    Adafruit_BMP085 bmp;

    void BMP180init() {
     if (!bmp.begin(BMP085_ULTRAHIGHRES)) {
      Serial.println("BMP180 센서를 찾을 수 없습니다. 연결을 확인해 주세요!");
     }
    }
     
    void BMP180exec() {
     float temperature = 0.0;  // 온도 측정 값들
     float pressure    = 0.0;     // 기압 측정 값들
     float altitude    = 0.0;     // 고도 측정 값들

        temperature =  bmp.readTemperature();
        pressure    =  bmp.readPressure();
        altitude =  bmp.readAltitude(101340);
     
        Serial.print("temperature(℃): "); Serial.print(temperature);
        Serial.print("\tpressure(Pa): "); Serial.print(pressure);
        Serial.print("\taltitude(M): ");  Serial.print(altitude);

        /*
         * 고도 계산을 표준 기압 1013.25 millibar를 사용하여 계산합니다.
         * 1013.25 mbar = 101325 Pa(Pascal)입니다.
         */
        Serial.print("\tbase altitude(M): ");   Serial.print(bmp.readAltitude());
        Serial.print("\tSea Level(Pa - X): "); Serial.print(bmp.readSealevelPressure());
        Serial.println( " " );
     
    /*
     * 기상청 지역별상세관측자료(AWS)에 들어가면 해면 기압 정보를 얻을 수
     * 있습니다. 이 mbar(millibar)값에 100을 곱하면 Pa(Pascal) 값을 얻을
     * 수 있습니다.
     *
     * 1 hPa =  100 Pa =  1 mbar
     * 1 kPa = 1000 Pa = 10 mbar
     *
     * http://www.kma.go.kr/weather/observation/aws_table_popup.jsp
     *
     * 2014/09/11/22:21 - 1013.4 mbar
     *
     */

     

     

      - Sample 3 

     

    /***************************************************
      This is an example for the BMP085 Barometric Pressure & Temp Sensor
     
      Designed specifically to work with the Adafruit BMP085 Breakout
      ----> https://www.adafruit.com/products/391
     
      These displays use I2C to communicate, 2 pins are required to 
      interface
      Adafruit invests time and resources providing this open source code,
      please support Adafruit and open-source hardware by purchasing
      products from Adafruit!
     
      Written by Limor Fried/Ladyada for Adafruit Industries. 
      BSD license, all text above must be included in any redistribution
     ****************************************************/
     
    #include <Wire.h>
    #include <Adafruit_BMP085.h>
     
    const int CIrowSize = 20;

    int index = 0;                    // 현재 센서값을 넣어야 할 인덱스
    float temperatures[CIrowSize];  // 온도 측정 값들
    float pressures[CIrowSize];     // 기압 측정 값들
    float altitudes[CIrowSize];     // 고도 측정 값들
    float totalTemperature = 0.0;     // 온도 총합
    float totalPressure = 0.0;        // 기압 총합
    float totalAltitude = 0.0;        // 고도 총합
     
    /*
     * mode :
     *        BMP085_ULTRALOWPOWER 0
     *        BMP085_STANDARD      1
     *        BMP085_HIGHRES       2
     *        BMP085_ULTRAHIGHRES  3
     *
     */
    void setup() {
      Serial.begin(9600);
      BMP180init();
    }
     
    void loop() {
     BMP180exec();
     delay(1000); 
    }


    Adafruit_BMP085 bmp;

    void BMP180init() {
     if (!bmp.begin(BMP085_ULTRAHIGHRES)) {
      Serial.println("BMP180 센서를 찾을 수 없습니다. 연결을 확인해 주세요!");
     }
     
     for(int i = 0; i < CIrowSize; i++) {
      temperatures[i] = 0.0;
      pressures[i] = 0.0;
     }
    }
     
    void BMP180exec() {
     

        totalTemperature    =  totalTemperature - temperatures[index];
        temperatures[index] =  bmp.readTemperature();
        totalTemperature    += temperatures[index];
      
        totalPressure   =  totalPressure - pressures[index];
        pressures[index]  =  bmp.readPressure();
        totalPressure   += pressures[index];


        totalAltitude   =  totalAltitude - altitudes[index];
        altitudes[index]  =  bmp.readAltitude(101340);
        totalAltitude   += altitudes[index];

     
        Serial.print("측정 온도(℃): "); Serial.print(totalTemperature / CIrowSize);
        Serial.print("측정 압력(Pa): "); Serial.print(totalPressure / CIrowSize);
        Serial.print("측정 고도(M): ");  Serial.print(totalAltitude / CIrowSize);

        /*
         * 고도 계산을 표준 기압 1013.25 millibar를 사용하여 계산합니다.
         * 1013.25 mbar = 101325 Pa(Pascal)입니다.
         */
        Serial.print("표준 고도(M): ");  Serial.print(bmp.readAltitude());
        Serial.print("해면 기압(Pa - X): ");  Serial.print(bmp.readSealevelPressure());
        Serial.println( " " );
     
    /*
     * 기상청 지역별상세관측자료(AWS)에 들어가면 해면 기압 정보를 얻을 수
     * 있습니다. 이 mbar(millibar)값에 100을 곱하면 Pa(Pascal) 값을 얻을
     * 수 있습니다.
     *
     * 1 hPa =  100 Pa =  1 mbar
     * 1 kPa = 1000 Pa = 10 mbar
     *
     * http://www.kma.go.kr/weather/observation/aws_table_popup.jsp
     *
     * 2014/09/11/22:21 - 1013.4 mbar
     *
     */

     
     
        ++index;
       
      // 만약 배열의 끝에 있다면...
      if (index >= CIrowSize)             
        // ...배열의 처음으로 돌아가게 합니다:
        index = 0;
         

    }

     


     

    반응형

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

    I2C Address  (0) 2014.11.21
    801s : 진동센서  (0) 2014.11.20
    복합 센서  (0) 2014.11.19
    GP2Y1010AU0F : 먼지 센서  (0) 2014.11.18
    Piezo Disk Sensor  (0) 2014.11.18

    + Recent posts