조금 뒷 기술이지만 ESP8266에서 AD 변환하는 방법
ESP8266의 AD 변환(개요)
ESP8266은 TOUT 핀을 가지고 있으며 이것이 AD를 변환 할 수있는 유일한 핀처럼 보입니다.
이 핀은 사양서를 읽는 한, 「전원 전압의 측정」혹은 「외부의 적당한 전압의 측정」을 실시할 수 있는 것 같습니다.
(영어에 자신이 없기 때문에 틀렸다면 고민하십시오)
이번에는, 「외부의 적당한 전압」의 측정을 해 봅니다.
주의점이 하나 있습니다!
TOUT 핀을 사용한 AD 변환은 0v~1V의 범위에서 10bit의 분해능을 가지고 계측할 수 있다는 것
1V 이상의 전압을 넣으면 망가지는지는 시도하지 않지만, 전압의 계산 주의해 주세요.
그리고 지금의 AD 변환은 Arduino처럼 사용할 수 없으므로 프로그램에서 잘 읽으십시오.
간단한 회로도
쇼보이지만 필기 회로도입니다. 저항으로 3.3V의 전원 전압을 분압하고 있을 뿐입니다만・・
프로그램
본래는, Arduino같이, 아날로그 리드라고 쓰고 싶은 곳입니다만 지금의 시점에서는, 아날로그 리드는 실장되어 있지 않은 모습으로 잘 움직이지 않았습니다.
그래서, 여러가지 조사하면 다음의 코드를 사용하면 잘 움직였습니다.
extern "C" {
#include "user_interface.h"
}
프로그램 시작 ESP 헤더 파일을 읽는 곳에 위 설명을 추가합니다.
system_adc_read()
그리고 AD 변환을 하는 것은 이 함수로 할 수 있는 것 같습니다.
마지막 WiFi 프로그램에 적어보면 다음과 같습니다.
QiitaWiFi02
#include <ESP8266WiFi.h>
extern "C" {
#include "user_interface.h"
}
char toSSID[] = "XXXXXXX";
char ssidPASSWD[] = "YYYYYYYYYY";
void setup() {
//デバッグ用にシリアルを開く
Serial.begin(115200);
Serial.println("PG start");
//WiFiに繋がったらLEDを点灯させるので、そのピンをOUTPUTに設定して、LOWに。
pinMode(5, OUTPUT);
digitalWrite(5, LOW);
//WiFiクライアントモード設定
WiFi.mode(WIFI_STA);
//WiFiを繋ぐ前に、WiFi状態をシリアルに出力
WiFi.printDiag(Serial);
//WiFiの設定を入れる。IPは、デフォルトがDHCPのようで、IPが共有されるときはWiFiのアクセス情報だけでOK
WiFi.begin(toSSID, ssidPASSWD);
// 固定IPではネットワークステータスが上手く動かないので、今は使えなさそう。本家にバグ登録はされているらしい。
// WiFi.config(ip, gateway, subnet);
//接続が確立するまで、・・・を表示
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
//WiFi.printDiag(Serial);
}
//ここに来たら、接続完了している。
//改行して繋がったことをシリアルで伝える。
Serial.println("");
Serial.println("WiFi connected");
//WiFiの状態を表示
WiFi.printDiag(Serial);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// 無線LAN接続OK LED点灯
digitalWrite(5, HIGH);
}
void loop() {
//unsigned int 型の入れ物を用意
uint ADC_Value = 0;
//AD変換実行
ADC_Value = system_adc_read();
//計測結果をシリアルに書き出す。0-1024の値
Serial.println("=======ANALOG " + String(ADC_Value) + "ANALOG ");
if (WiFi.status() != WL_CONNECTED) {
// コネクション確立済み以外のステータスなので
// 無線LAN接続NG LED消灯
digitalWrite(5, LOW);
} else {
//コネクションOKなので、点灯
digitalWrite(5, HIGH );
}
delay(500);
}
이 프로그램을 실행하면, 이런 식으로 시리얼로 AD변환한 값이 흐릅니다.
전원의 전압을 측정하는 명령은 무엇인가 조사되지 않았지만, 알고 있으면 이 기사에 써 보고 싶습니다.
다음에 할 생각
ESP8266의 진골정? ! 딥 슬립 모드에 돌입하는 방법, 복귀하는 방법
입니다. 기대하세요~
또한 빠져나갈 곳을 아래에 순차적으로 정리하고 있습니다. 아울러 이쪽도 봐 주세요. (수시로 갱신중이므로, 재고해 주시면 갱신시에 통지 받습니다)
ぃ tp // 코 m / 아즈사 9 / ms / 후 20794 아 858 아 73fd97b
Reference
이 문제에 관하여(조금 뒷 기술이지만 ESP8266에서 AD 변환하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/azusa9/items/26e74e4e0d5773ce9c41텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)