#author("2022-06-14T14:12:26+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] > 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() [[セキュアなページ]]へ~ [[出荷時スクリプト一覧ページ]]へ~ ---- [[Wikiトップへ>Developers Page]] > [[SANSHOトップへ>../]]