BASIC4MCU | 질문게시판 | 가변저항으로 세그먼트
페이지 정보
작성자 비공개 작성일2018-06-18 15:43 조회14,515회 댓글4건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=1969
작성일
작성일
본문
가변저항으로 아날로그값을 조절해서 세그먼트 0~9까지 나오도록 코딩했는데 뭐가 틀린걸까요?
세그먼트 위부터 순서대로
1
2 3
4
5 6
7
코딩문:int segPin1 = 4;
int segPin2 = 10;
int segPin3 = 2;
int segPin4 = 11;
int segPin5 = 8;
int segPin6 = 3;
int segPin7 = 7;
int sensorPin = 5;
int sensorVal = 0;
void setup() {
pinMode(segPin1, OUTPUT);
pinMode(segPin2, OUTPUT);
pinMode(segPin3, OUTPUT);
pinMode(segPin4, OUTPUT);
pinMode(segPin5, OUTPUT);
pinMode(segPin6, OUTPUT);
pinMode(segPin7, OUTPUT);
Serial.begin(9600);
}
void loop() {
sensorVal = analogRead(sensorPin);
Serial.println(sensorVal);
if(0<=sensorVal <100) { //0출력
digitalWrite(segPin1, HIGH);
digitalWrite(segPin2, HIGH);
digitalWrite(segPin3, HIGH);
digitalWrite(segPin4, LOW);
digitalWrite(segPin5, HIGH);
digitalWrite(segPin6, HIGH);
digitalWrite(segPin7, HIGH);
}
else if (100<=sensorVal <200) { //1출력
digitalWrite(segPin1, LOW);
digitalWrite(segPin2, LOW);
digitalWrite(segPin3, HIGH);
digitalWrite(segPin4, LOW);
digitalWrite(segPin5, LOW);
digitalWrite(segPin6, HIGH);
digitalWrite(segPin7, LOW);
}
else if (200<=sensorVal <300) { //2출력
digitalWrite(segPin1, HIGH);
digitalWrite(segPin2, LOW);
digitalWrite(segPin3, HIGH);
digitalWrite(segPin4, HIGH);
digitalWrite(segPin5, HIGH);
digitalWrite(segPin6, LOW);
digitalWrite(segPin7, HIGH);
}
else if (300<=sensorVal <400) { //3출력
digitalWrite(segPin1, HIGH);
digitalWrite(segPin2, LOW);
digitalWrite(segPin3, HIGH);
digitalWrite(segPin4, HIGH);
digitalWrite(segPin5, LOW);
digitalWrite(segPin6, HIGH);
digitalWrite(segPin7, HIGH);
}
else if (400<=sensorVal <500) { //4출력
digitalWrite(segPin1, LOW);
digitalWrite(segPin2, HIGH);
digitalWrite(segPin3, HIGH);
digitalWrite(segPin4, HIGH);
digitalWrite(segPin5, LOW);
digitalWrite(segPin6, HIGH);
digitalWrite(segPin7, LOW);
}
else if (500<=sensorVal <600) { //5출력
digitalWrite(segPin1, HIGH);
digitalWrite(segPin2, HIGH);
digitalWrite(segPin3, LOW);
digitalWrite(segPin4, HIGH);
digitalWrite(segPin5, LOW);
digitalWrite(segPin6, HIGH);
digitalWrite(segPin7, HIGH);
}
else if (600<=sensorVal <700) { //6출력
digitalWrite(segPin1, HIGH);
digitalWrite(segPin2, HIGH);
digitalWrite(segPin3, LOW);
digitalWrite(segPin4, HIGH);
digitalWrite(segPin5, HIGH);
digitalWrite(segPin6, HIGH);
digitalWrite(segPin7, HIGH);
}
else if (700<=sensorVal <800) { //7출력
digitalWrite(segPin1, HIGH);
digitalWrite(segPin2, HIGH);
digitalWrite(segPin3, HIGH);
digitalWrite(segPin4, LOW);
digitalWrite(segPin5, LOW);
digitalWrite(segPin6, HIGH);
digitalWrite(segPin7, LOW);
}
else if (800<=sensorVal <900) { //8출력
digitalWrite(segPin1, HIGH);
digitalWrite(segPin2, HIGH);
digitalWrite(segPin3, HIGH);
digitalWrite(segPin4, HIGH);
digitalWrite(segPin5, HIGH);
digitalWrite(segPin6, HIGH);
digitalWrite(segPin7, HIGH);
}
else if (900<=sensorVal <1023) { //9출력
digitalWrite(segPin1, HIGH);
digitalWrite(segPin2, HIGH);
digitalWrite(segPin3, HIGH);
digitalWrite(segPin4, HIGH);
digitalWrite(segPin5, LOW);
digitalWrite(segPin6, HIGH);
digitalWrite(segPin7, HIGH);
}
댓글 4
조회수 14,515master님의 댓글
master 작성일
증상을 자세히 적어주세요
동영상을 첨부하면 더 좋고요
//
가변저항을 돌리면 뭔가 움직이기는 하나요?
아두이노초보2757님의 댓글
비공개 작성일돌려도 바뀌진않습니다 시리얼모니터로 보면 아날로그값은 변하구요 그냥 4에 해당하는 부분만 불이 들어옵니다 코딩좀 부탁드릴수있을까요?ㅠㅠ
master님의 댓글
master
시리얼 모니터에는 값이 0~1023 다 변하든가요?
아두이노초보2757님의 댓글
비공개
네 0부터 1023까지 다 변합니다