私は0.96インチのAdafruit OLEDにLDRの表示を表示しようとしていますが、その結果を得ることに成功しました 今度は、ボタンと私は再びそれを押すと、このループに行く必要があり、それを止める 私はそのためのコードを起草してみました:。。プッシュボタンを使用して機能を開始/停止する
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
int sensorPin = A0; // select the input pin for ldr
int sensorValue = 0;
boolean state = false;
int buttonpin;
#define OLED_RESET 4 // not used/nicht genutzt bei diesem Display
Adafruit_SSD1306 display(OLED_RESET);
char inChar;
String string;
void setup() {
pinMode(13, OUTPUT);
buttonpin = 2; //whatever pin your button is plugged into
pinMode(buttonpin, INPUT_PULLUP);
// initialize with the I2C addr 0x3C/mit I2C-Adresse 0x3c initialisieren
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Serial.begin(9600);
display.display();
delay(2000);
display.clearDisplay();
display.setTextColor(INVERSE);
}
void loop()
{
while (state == false)
{
if (digitalRead(buttonpin) == HIGH)
{
display.clearDisplay();
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
display.setCursor(30,0);
display.setTextSize(1);
display.print("LDR Reading:");
display.setCursor(30,10);
display.setTextSize(2);
display.print(sensorValue);
delay(500);
display.display();
state = false;
}
}
}
しかし、画面が、私は継続的に押されたプッシュボタンを保つ場合にのみ、結果の表示を開始ボタンを離すと、プログラムは最後に画面に表示された読み取りと同時に停止します。
次のような結果が必要です。
第1プレス:読み取り値の表示を開始します
第2プレス:画面は空白にしてください。 (display.clearDisplay()はその仕事をします)
私はArduinoのスイッチケースの使い方に慣れていません。
私はちょうど初心者ですか?私のコードを変更してトグル状態を加えることができればあなたのようなものでしょう。 –