我试图在我的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。
请您详细说明一下吗?..我只是一个初学者。如果你可以修改我的代码来添加切换状态,那将是很有用的。 –