【周辺ゼロベース総合チュートリアル】GPIO
前回記事へのリンク:【Peripheral Zero-Basic General Tutorial】 GPIO については、主に動画を作る際に、前回の記事でいろいろな説があることを知りましたが、それらを分けた方が構造が明確で見やすくなります。
GPIO の入力と出力を定義していますが、ボタンと LED には、押された状態と押されていない状態、オンとオフの 2 つの状態があります。これをどのように表現すればよいでしょうか。
手順
GPIO 値
電子回路では、高電圧と低電圧の状態を記録するために 1 と 0 が使用されます。! !
#对于GPIO的输入,可以直接读取:
cs.value() # 返回1或者0
#对于GPIO的输出,我们可以使用下面方法控制:
cs.high() #设置高电平
cs(1) # 1为高电平
cs.low() #设置低电平
cs(0) # 0为低电平
読み取り値を入力
たとえば、開発ボードにはボタンが押された後に値 1 が与えられ、開発ボードはこのステータスを受け取るとボタンが押されたことを認識します。
次に、押したときに読み取られる値は1 です。実際には、単純な記録状態です。
出力設定値
この理解は簡単で、LED がハイレベル信号 1 を受信すると測定され、ローレベルが 0 の場合は消灯します。だから、このピンのハイとローの状態を設定するだけです〜
注:上記はGPIOの周辺ピンだけで、こうして理解できるのはIIC、SPIなど、このように理解されるかもしれません〜
GPIO 入出力アプリケーション
GPIO 入力アプリケーション
祖先の鍵
from pyb import Pin
#将 USR 按键-"X17"配置为输入方式
p_in = Pin('X17', Pin.IN, Pin.PULL_UP)
p_in.value()
GPIO出力アプリケーション
祖先の照明
from pyb import Pin
#将 LED(1)-"A13"配置成推挽输出模式
p_out=Pin('A13',Pin.OUT_PP)
#点亮 LED(1)红灯
p_out.high()
これで、簡単なボタン制御と LED ライト制御を直接行うことができます。〜それはそれと同じくらい簡単です。
ドキュメントの使用
前に述べたように、パッケージが異なるため、GPIO の書き方も異なります。そのため、ボードを購入する前に必ずドキュメントをお読みください。たとえば、micpython と maixpy は次のように GPIO を記述します (どちらも python です)。
理論補足
出力方法
下図に示すように、GPIO の出力は、内部 MOS のオフの切り替えに関連しています。出力には 3 つの状態があることがわかります。
ハイレベル、ローレベル、フローティング/ハイインピーダンス状態です。
喫煙状態は直接Gであり、この種の開発ボードを出荷したい場合、メーカーは殺されるべきではありません. ここでは、表示されない状況を参照してください。考慮しないでください。
プッシュプル出力
電子用語であるプッシュプル出力は、通常、高レベルと低レベルを出力し、デジタル デバイスに接続できるプッシュプル増幅回路に表示されます。プッシュプル構造とは、一般に、2 つの三極管が常に 1 つの 2 つの相補信号によって制御されることを意味します。トランジスタがオンのとき、もう一方はオフです。
プッシュプルと呼ばれる高信号状態と低信号状態があります
VCC は電気、開発ボードの内部放電をセンサーにハイレベル
GND はグランド、開発ボードの内部放電、
つまりローレベル「大電流から低電力へ」を放電するのがセンサーです。引く」
はわかりやすい。
オープンドレイン出力
オープンドレイン出力、オープンドレイン回路の概念でいうドレインとは、MOS FETのドレインを指します。同様に、オープンコレクタ回路の「セット」は、三極管のコレクタを指します。オープンドレイン回路とは、MOS FETのドレインを出力とする回路のことです。
低電力でフローティング/高抵抗状態のものは、オープンドレインと呼ばれます
上記の P-MOS はなくなったわけではありませんが、この状態の P-MOS とは関係ありませんので、見やすいように削除しました。
見てみると、現状はアース(GND)のみセンサーからしか給電できず、低レベル状態です。N-MOSをオフにすると、無限抵抗(誰も電気を与えず、誰も動けない、つまり電流が動かないのと同じ)に等しいので、この状態では出力はローレベルでフローティング状態になります。 /ハイインピーダンス状態。
なぜ私たちがGPIO出力を毎日使用するのかを理解してください。定義されたプッシュプルモードです〜