我目前正在做一个项目,使用Arduino,粒子光子和基本的电气工程设置来构建节拍器。
我对这个项目的目标是通过调整/旋转电位器并在OLED屏幕上显示当前的BPM来轻松地调整节奏。然而,问题是,当我旋转电位器时,它并没有改变节拍的值。我之所以知道这一点,是因为蜂鸣器没有发出蜂鸣声,而OLED显示当前的BPM为0。
// This #include statement was automatically added by the Particle IDE.
#include "SparkFunMicroOLED/SparkFunMicroOLED.h"
#define PIN_RESET D7
#define PIN_DC D6
#define PIN_CS A2
MicroOLED oled(MODE_SPI, PIN_RESET, PIN_DC, PIN_CS);
int speakerPin = D2;
int potenMeter = A4;
void setup() {
pinMode(speakerPin, OUTPUT);
pinMode(potenMeter, INPUT);
oled.begin();
oled.clear(ALL);
}
void loop() {
oled.clear(PAGE);
oled.setFontType(0);
oled.setCursor(20,0);
int bpm = (analogRead(potenMeter)/4095) * 180;
tone(speakerPin, 50, 100);
delay(bpm);
oled.printf("BPM: %d", bpm);
oled.display();
} 每当我将程序闪存到我的面板/光子时,有机发光二极管总是显示bpm等于0……即使我调整了它。我很确定电子设备没有问题,因为我已经单独测试过所有东西了。
发布于 2016-07-22 22:47:14
我没有使用Arduino的经验,但我认为你不能将pinMode(potenMeter, INPUT);设置为模拟输入。还请记住,A4不必是您的电路板的4号引脚。
https://stackoverflow.com/questions/38529155
复制相似问题