可変抵抗を使ってみました。
可変抵抗を使って、LEDの明るさを制御してみました。
スケッチは以下の通りです。
void setup() { // put your setup code here, to run once: pinMode(9,OUTPUT); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: int i; i = analogRead(2); analogWrite(9,map(i,0,255,0,1023)); Serial.println(i); }
可変抵抗の値をA2で読み取っています。読み取り値は0-1023までの1024段階ですが、analogWrite関数は0-255の256段階です。
※この0-255が0V-5Vに対応します。
そこで、map関数を使って数値を変換しています。この変換された値でD9から電圧を出力します。
シリアルは、確認用です。
スイッチを押すと、LEDが点灯するようにしたよ。
スケッチは以下の通り。
void setup() { // put your setup code here, to run once: pinMode(9,OUTPUT); pinMode(2,INPUT); } void loop() { // put your main code here, to run repeatedly: if(digitalRead(2)==LOW){ digitalWrite(9,HIGH); }else{ digitalWrite(9,LOW); } }
この回路はスイッチを押さない状態ではD2には5V(HIGH)が印加されている。
この状態を「スイッチを押していない状態」とする。
スイッチを押すと、GNDとD2が繋がるために、D2=0V(LOW)状態となる。
この状態を「スイッチを押した状態」とする。
あとは、「スイッチを押した状態」でLEDが点灯するようにすれば良い。
すなわち、D2=LOWでD9=HIGHとなるようにプログラムすればよい。
※間違っていたらごめんなさい。その場合、ぜひ教えてください!
AE-ESP-WROOM-02の配線
備忘録として、AE-ESP-WROOM-02の配線を記録しておきます。動作確認はATコマンドを認識するところまでです。
スケッチは以下を作成しました。
#include <doxygen.h> #include <ESP8266.h> #include <SoftwareSerial.h> //SSIDとpasswordの定義付け #define SSID "*******" #define PASSWORD "*******" SoftwareSerial mySerial(10, 11); // RX, TX ESP8266 wifi(mySerial); void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); //本来esp-wroom-02は115200で動作する。しかし、今回はAT+UART_DEF=9600,8,1,0,0で既に動作速度変更済。そのため、このプログラムでよい。 while (!Serial) { // wait for serial port to connect. Needed for native USB port only } //Serial.begin(9600); Serial.println("setup begin"); Serial.print("ファームウェアバージョン: "); Serial.println(wifi.getVersion().c_str()); // //ステーションモードかどうかを判別 if (wifi.setOprToStationSoftAP()) { Serial.println("to Station ok"); } else { Serial.println("to Station err"); } //接続可能なアクセスポイントの一覧取得 Serial.println(wifi.getAPList()); if (wifi.joinAP(SSID, PASSWORD)) { Serial.print("Join AP success\r\n"); Serial.print("IP: "); Serial.println(wifi.getLocalIP().c_str()); } else { Serial.print("Join AP failure\r\n"); } Serial.print("setup end\r\n"); } void loop() { // run over and over if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } }