我試圖在我的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;
}
}
}
但屏幕開始只顯示結果時,我按住此按鈕當我釋放按鈕時,程序停止,屏幕上顯示最後一次讀數。
我需要的結果如下:
第一次按下:開始顯示讀數
第二次按下:屏幕應該是空白的。 (display.clearDisplay()做那個工作)
我不熟悉在Arduino中使用switch case。
請您詳細說明一下嗎?..我只是一個初學者。如果你可以修改我的代碼來添加切換狀態,那將是很有用的。 –