2016년 8월 1일 월요일

AnalogInput

AnalogInput은 아두이노 보드의 ADC 핀을 다룰 수 있도록 만든 ArdunityController입니다.


ADC란 Analog-Digital Converter의 약자로 Analog 신호를 숫자로 변환시켜주는 장치입니다. 아두이노 보드에는 ADC가 내장되어있으며 이것을 사용하기 위해서는 A로 표기된 핀을 사용해야 합니다.
ADC 핀은 주로 센서 연결에 활용됩니다.
ADC는 0V ~ 5V 전압을 해상도(Resolution)에 의해 숫자로 변환시켜서 프로그램에서 사용할 수 있도록 만들어줍니다.
대부분의 아두이노 보드는 ADC가 10bit로 고정되어 있고, 이에 따라 1024단계로 값을 사용합니다. 아두이노 Zero 혹은 Due 보드의 경우 이것을 조정할 수 있으며, 아두니티에서도 이것을 설정할 수 있습니다.

AnalogInput의 설정 항목은 다음과 같습니다.
  • id: ArdunityApp이 ArdunityController를 구분하기 위한 식별자
  • pin: ADC 핀 번호

AnalogInput의 값은 Resolution과 상관 없이 사용할 수 있도록 0 ~ 1로 Normalize되어 사용할 수 있습니다.

AnalogInput을 사용하는 가장 간단한 구성은 다음과 같습니다.


C# Script에서 AnalogInput의 Value를 얻어올 수 있는데, 방법은 다음과 같습니다.

using UnityEngine;
using System.Collections;
using Ardunity;

public class MyComponent : MonoBehaviour
{
 public AnalogInput analogInput;

 
 void Update ()
 {
  Debug.Log(analogInput.Value);
 }
}


댓글 5개:

  1. 아날로그로 리드스위치에 연결해서 자전거 속도를 측정하려고 하는데 아두이노 소스를 고쳐서 사용할 수 있나요? 글을 읽어보니까 아두이노 소스를 건드리는 부분이 없어서 그러는데..

    답글삭제
    답글
    1. 소스는 공개되어있기에 고쳐 쓰셔도 상관없습니다.
      다만, 질문하신 내용에 목적이 맞는지 잘 모르겠네요.

      삭제
    2. 아두이노 보드의 ADC Pin으로 제어가 가능한 모든 하드웨어에
      reed switch가 없는데 사용할 수 있나요?

      삭제
  2. Hello, Congratulations on the project!
    I recently made the acquisition of Ardunity Deluxe and I am studying it.
    I have 2 doubts for now
    1º How to connect several MPU 6050 sensors, something like 10+?
    2º How would I use a multiplexer like the TCA9548A with MPU's?

    답글삭제
    답글
    1. Hello,
      You can get better support by using the ARDUnity Foreign Forum.
      (https://groups.google.com/forum/#!forum/ardunity-forum)
      I'm sorry, but I would appreciate it if you could post your question on that side.

      삭제