#author("2022-06-14T14:12:26+09:00","","")
#author("2022-12-15T12:48:32+09:00","","")
[[Wikiトップへ>Developers Page]] > [[SANSHOトップへ>../]]

* ADCについて [#ge62549b]
アナログ入力の為の操作を説明します。~


#contents

SANSHOシリーズでは 複数のPINがデジタル入出力として割り当て可能になっています。~
アナログ入力の為のポートは下記が用意されています。

**ポート [#mab9e2b1]
|ポート番号|機能|h
|PIN4|ADC入力|


モジュール pyb
クラス ADC


**使用例 [#f94c2604]

>
 >>> import pyb
 >>> adc=pyb.ADC(0)		# ADCを
 >>> adl[num]=adc.read()		# ADCのデータを変換して読み込みます。


#br

**サンプルプログラム [#j2c1cb50]

** LEDへの出力について [#a58e5d4a]
p1_pin.init(p1_pin.OUT)		出力へのセット

>
 date
 time
 
 import pyb
 
 threshold=3000
 stime=100
 times=120
 
 rtc = pyb.RTC()
 adc=pyb.ADC(0)
 led=pyb.Pin.board.P3
 led.init(led.OUT)
 led.value(1)
 led.value(0)
 
 adl=list(times+1)
 num=0
 while true:
 	#AD sampling.
 	while true:
 		#delay 100mS
 		pyb.delay(100)
 		adl[num]=adc.read()
 
 		if adl[num] > threshold:
 			if num > 10:
 				break
 		else
 			if num == 0:
 				continue
 			else num >= times
 				break
  		num+=1 
 
 	led.value(0)
 	#filemake
 	dt=rtc.datetime()
 	fname="data"+str(dt[4])+str(dt[5])+str(dt[6])+".csv"
 
 	f1=open(fname,'w')
 	for val in num:
 		s=str(adl[val])
 		f1.write(s+'\n')
 	f1.close()
 	led.value(1)
 
 if 時間が過ぎた場合
   
 
 pyb.delay(100)
 data=adc.read()
 
 #filemake
 dt=rtc.datetime()
 fname="data"+str(dt[4])+str(dt[5])+str(dt[6])+".csv" 
 
 
 記録中はLEDをON
 
 終了したので記録を開始
 for val in buf1:
 	s=str(val)
 	f1.write(s+'\n')
 	f1.close()
 
 
 tim=pyb.Timer(6, freq=1000)
 adc1.read_timed(buf1,tim)
 
 f1=open(fname,'w')
 for val in buf1:
 	s=str(val)
 	f1.write(s+'\n')
 	f1.close()
 
 f1=open('data1.dash','w')
 for val in buf1:
 s=str(val)
 f1.write(s+'\n')
 f1.close()
 >>> p1_pin.value(1)	値を出力
 >>> p1_pin.value()	現値を確認


[[出荷時スクリプト一覧ページ:http://www.telepower.jp/wiki/?TPSGW9-P-PYTHON]]へ~


[[セキュアなページ]]へ~
[[出荷時スクリプト一覧ページ]]へ~

----
[[Wikiトップへ>Developers Page]] > [[SANSHOトップへ>../]]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS