BASIC4MCU | 질문게시판 | if문 중복이 안되나요? 소스좀 봐주세요
페이지 정보
작성자 지니아빠 작성일2019-05-24 03:54 조회3,139회 댓글0건본문
첨부 회로에서 누르는 버튼의 LED만 점등되는건 잘 됩니다.
그래서 소스를 살짝 수정해서 아래의1,2번 버튼중 한개를 먼저 누른후 위의 보튼을 누르면
해당 버튼의 LED 2개가 들어오게 고칠려고 했는데 아예 LED점등이 안되네요
회로는 PULL_UP으로 구성되어 있습니다.
[소스]
int i, j;
void setup()
{
Serial.begin(9600);
for (i=2; i<8; i++) {
pinMode(i, INPUT);
Serial.print(i);
}
for (j=8; j<14; j++) {
pinMode(j, OUTPUT);
Serial.print(j);
}
}void loop()
{
if (digitalRead(2) == LOW) {
if (digitalRead(4) == LOW) {
digitalWrite(9, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(8, HIGH);
digitalWrite(10, HIGH);
}
}
else if (digitalRead(2) == LOW) {
if (digitalRead(5) == LOW) {
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(8, HIGH);
digitalWrite(11, HIGH);
}
}
else if (digitalRead(2) == LOW) {
if (digitalRead(6) == LOW) {
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
}
}
else if (digitalRead(2) == LOW) {
if (digitalRead(7) == LOW) {
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(8, HIGH);
digitalWrite(13, HIGH);
}
}
else if (digitalRead(3) == LOW) {
if (digitalRead(4) == LOW) {
digitalWrite(8, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}
}
else if (digitalRead(3) == LOW) {
if (digitalRead(5) == LOW) {
digitalWrite(8, LOW);
digitalWrite(10, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(9, HIGH);
digitalWrite(11, HIGH);
}
}
else if (digitalRead(3) == LOW) {
if (digitalRead(6) == LOW) {
digitalWrite(8, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
digitalWrite(9, HIGH);
digitalWrite(12, HIGH);
}
}
else if (digitalRead(3) == LOW) {
if (digitalRead(7) == LOW) {
digitalWrite(8, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(9, HIGH);
digitalWrite(13, HIGH);
}
}
}[소스 End]
소스를 이렇게도 고쳐봤습니다
[소스]
int i, j;
void setup()
{
Serial.begin(9600);
for (i=2; i<8; i++) {
pinMode(i, INPUT);
Serial.print(i);
}
for (j=8; j<14; j++) {
pinMode(j, OUTPUT);
Serial.print(j);
}
}void loop()
{
if (digitalRead(2) == LOW) {
if (digitalRead(4) == LOW) {
digitalWrite(9, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(8, HIGH);
digitalWrite(10, HIGH);
}
else if (digitalRead(5) == LOW) {
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(8, HIGH);
digitalWrite(11, HIGH);
}else if (digitalRead(6) == LOW) {
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
}
else if (digitalRead(7) == LOW) {
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(8, HIGH);
digitalWrite(13, HIGH);
}
}else if (digitalRead(3) == LOW) {
if (digitalRead(4) == LOW) {
digitalWrite(8, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}else if (digitalRead(5) == LOW) {
digitalWrite(8, LOW);
digitalWrite(10, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(9, HIGH);
digitalWrite(11, HIGH);
}
else if (digitalRead(6) == LOW) {
digitalWrite(8, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
digitalWrite(9, HIGH);
digitalWrite(12, HIGH);
}
else if (digitalRead(7) == LOW) {
digitalWrite(8, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(9, HIGH);
digitalWrite(13, HIGH);
}
}
}
[소스 End]
그런데
if (digitalRead(2) == LOW) {
if (digitalRead(4) == LOW) {
digitalWrite(9, LOW);
Serial.print() 를 걸어보니
1번 버튼(2번핀)을 누르면 if (digitalRead(2) == LOW)는반응 했는데
이후 3번 버튼(4번핀)을 눌러도 if (digitalRead(4) == LOW 안으로 들어가지 않네요..
댓글 0
조회수 3,139등록된 댓글이 없습니다.