1
私は、12個のLEDと4個のボタンが付いたスケッチで、ボタンを押して特定のLEDを消すことになっています。私は1つのLEDと1つのボタンで私の問題を示すためのより基本的なスケッチを作ったが、この基本的なスケッチは完全に機能した!だから私はなぜ私の基本的な例(スケッチ1)完璧に動作しますが、LEDが私のより複雑な例(スケッチ2)でフラッシュするのだろうか?複数のLED /ボタンがある場合、LEDが点滅します。
SKETCH 1(完璧に動作します):
//sets up button and LED connections:
const int led_1 = 4;
const int but_1 = 8;
//sets up variable butState that will be changed later
int butState;
void setup() {
//sets pin modes:
pinMode(led_1, OUTPUT);
pinMode(but_1, INPUT);
}
void loop() {
//variable that reads the button state:
butState = digitalRead(but_1);
//if the button state is high, sets LED state low. Opposite if button state is low:
if (butState == HIGH) {
delay(200);
digitalWrite(led_1, LOW);
}
else {
delay(200);
digitalWrite(led_1, HIGH);
}
}
SKETCH 2(LEDが点滅):任意の助け
//turns all lights on. turns in1 lights off when button 1 pressed.
//turns in2 lights off when second button is pressed.
//turns out lights off when third button is pressed
//turns all lights off when fourth button pressed
//result (output) lights:
const int res_8 = A5;
const int res_4 = A4;
const int res_2 = A3;
const int res_0 = A2;
//in1 lights:
const int in1_4 = 4;
const int in1_2 = 3;
const int in1_0 = 2;
//in2 lights:
const int in2_4 = 7;
const int in2_2 = 6;
const int in2_0 = 5;
//input buttons:
const int b_4 = 8;
const int b_2 = 9;
const int b_0 = 10;
const int b_enter = 11;
// set up switch states
int b4State = 0;
int b2State = 0;
int b0State = 0;
int benterState = 0;
void setup() {
// set up pins
pinMode(res_8, OUTPUT);
pinMode(res_4, OUTPUT);
pinMode(res_2, OUTPUT);
pinMode(res_0, OUTPUT);
pinMode(in1_4, OUTPUT);
pinMode(in1_2, OUTPUT);
pinMode(in1_0, OUTPUT);
pinMode(in2_4, OUTPUT);
pinMode(in2_2, OUTPUT);
pinMode(in2_0, OUTPUT);
pinMode(b_4, INPUT);
pinMode(b_2, INPUT);
pinMode(b_0, INPUT);
pinMode(b_enter, INPUT);
}
void loop() {
//reads the state of button inputs
b4State = digitalRead(b_4);
b2State = digitalRead(b_2);
b0State = digitalRead(b_0);
benterState = digitalRead(b_enter);
//checks button 1
if (b4State == HIGH) {
delay(1000);
digitalWrite(in1_4, LOW);
digitalWrite(in1_2, LOW);
digitalWrite(in1_0, LOW);
}
else {
delay(1000);
digitalWrite(in1_4, HIGH);
digitalWrite(in1_2, HIGH);
digitalWrite(in1_0, HIGH);
}
//checks button 2
if (b2State == HIGH) {
delay(1000);
digitalWrite(in2_4, LOW);
digitalWrite(in2_2, LOW);
digitalWrite(in2_0, LOW);
}
else {
delay(1000);
digitalWrite(in2_4, HIGH);
digitalWrite(in2_2, HIGH);
digitalWrite(in2_0, HIGH);
}
//checks button 3
if (b0State == HIGH) {
delay(1000);
analogWrite(res_8, 0);
analogWrite(res_4, 0);
analogWrite(res_2, 0);
analogWrite(res_0, 0);
}
else {
delay(1000);
analogWrite(res_8, 1023);
analogWrite(res_4, 1023);
analogWrite(res_2, 1023);
analogWrite(res_0, 1023);
}
//checks enter button
if (benterState == HIGH) {
delay(1000);
digitalWrite(in1_4, LOW);
digitalWrite(in1_2, LOW);
digitalWrite(in1_0, LOW);
digitalWrite(in2_4, LOW);
digitalWrite(in2_2, LOW);
digitalWrite(in2_0, LOW);
analogWrite(res_8, 0);
analogWrite(res_4, 0);
analogWrite(res_2, 0);
analogWrite(res_0, 0);
}
else {
delay(1000);
analogWrite(res_8, 1023);
analogWrite(res_4, 1023);
analogWrite(res_2, 1023);
analogWrite(res_0, 1023);
digitalWrite(in1_4, HIGH);
digitalWrite(in1_2, HIGH);
digitalWrite(in1_0, HIGH);
digitalWrite(in2_4, HIGH);
digitalWrite(in2_2, HIGH);
digitalWrite(in2_0, HIGH);
}
// //delays
// delay(250);
}
ありがとう!
これは意味があります、ありがとう!そして、ええ、第2と第3のボタンは同じことをしました、私はそれを修正するつもりだったが、私は一度に1つの問題を修正したい。さらに、これは私が実際に望むスケッチを書く前に私のボードを正しく配線したことを確認するためのスケッチにすぎませんでした。 – JetpackAwaaay