コンテンツにスキップ

114 UV

サンプルコードの動作

FaBo #114 UVを使用して1秒ごとに紫外線強度を計測します。

サンプルコード使用時の接続

A0にAnalog Brickを接続します。

Brick回路図

紫外線センサーには、G6262使用 紫外線強度により増幅度を選択します。 紫外線強度が増加すると数値が上昇します。


# coding: utf-8
import Jetson.GPIO as GPIO
import spidev
import time
import sys

# A0コネクタにAngleを接続
ANGLEPIN = 0

#######################################################################
def readadc(channel):
    """
    Analog Data Converterの値を読み込む
    @channel チャンネル番号
    """
    adc = spi.xfer2([1,(8+channel)<<4,0])
    data = ((adc[1]&3) << 8) + adc[2]
    return data

#######################################################################
def map(x, in_min, in_max, out_min, out_max):
    """
    map関数
    @x 変換したい値
    @in_min 変換前の最小値
    @in_max 変換前の最大値
    @out_min 変換後の最小
    @out_max 変換後の最大値
    @return 変換された値
    """
    return (x - in_min) * (out_max - out_min) // (in_max - in_min) + out_min

# 初期化
spi = spidev.SpiDev()
spi.open(0,0)
spi.max_speed_hz = 5000

try:
    while True:
        data = readadc(ANGLEPIN)
        print("UV : {:8} ".format(data))
        time.sleep(1)
except KeyboardInterrupt:
    GPIO.cleanup()
    spi.close()
    sys.exit(0)