トップ «前の日記(2021-06-22(Tue)) 最新 次の日記(2021-07-09(Fri))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2021-07-04(Sun) 真夏(俺定義)とは、水浴のできる気温の時節

可変抵抗器ではないけど

analog

RasPicoネタ。アナデジ変換ができるとかいう("GET STARTED WITH MICROPYTHON ON RASPBERRY PI PICO" の Chapter 8.より)

RP2040にはADCが4つ(GP26, GP27、GP28に加え温度計を接続したコンバータ)あり、 12ビットの分解能があるが、MicroPythonは 他のコントローラに合わせて16ビットに変換しているとのことである。

36番ピン(3V3 OUT) と31番ピン(GP26)を 手近にあった適当な抵抗器( カラーコードで68kΩ±3.4kΩ)、実測約66.4kΩ)を挟んで接続。

Thonnyでコピペを少し修正して、平均、最大、最小を求めてみた。

import utime
import machine
 
potentiometer = machine.ADC(26)
times = 10
total = 0
temp = []
for x in range(times):
    temp.append(potentiometer.read_u16())
    print(temp[x])
    utime.sleep(2)
 
print("")
average = sum(temp) / len(temp)
print("averrage is ", average)
print("max is ", max(temp), "max/average is", max(temp)/average * 100, " %.")
print("min is ", min(temp), "max/average is", min(temp)/average * 100, " %.")
>>> %Run -c $EDITOR_CONTENT
62943
62495
62751
62783
62495
62687
61519
62527
62143
62191
 
averrage is  62453.4
max is  62943 max/average is 100.7839  %.
min is  61519 max/average is 98.50385  %.

接続しない場合には不定(0が多かったが、それ以外も)となり、 抵抗器を挟まない、あるいは 抵抗値が(ある値より)小さいと65535になった。

上の出力値に3.3/65535をかけると電圧になる(potentionmeter.py)らしいが、 このあたりもちゃんと読まないと。

machine.ADC(4)からread.u16()すると温度データが出るので、 これを変換して、摂氏に換算すれば温度計になるらしい。
コピペから一歩も出ないので貼るのはやめる。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。