어제 온도와 습도값을 LCD에 출력하는 걸 마무리하고 자신감을 갖고 오늘은 다른 것을 해 보는데..
우선 가변저항을 이용해서 아날로그 값을 입력하고 그 값에 따라 LED의 밝기가 변하게 하는 것이다.
가변저항을 연결하고 출력값을 A0에 연결하고...
그 값의 1/4를 PMW단자인 ~3에 연결해서 LED의 밝기를 조절하는 것은 성공
이제 이 정도 간단한 것은 잘 할 수 있단 말이지..
그 다음엔 CDS를 연결하는데... 뭐 괜찮았다. 코딩도 잘 했고..
근데.. 밝기가 변해도 CDS의 출력값이 변하지 않는 것이 아닌가!!!
void setup() { Serial.begin(9600); pinMode(3,OUTPUT); pinMode(9,OUTPUT); } void loop() { int Knobvalue=analogRead(A0); int Bright=analogRead(A3); Serial.print(Knobvalue); Serial.print(" "); Serial.println(Bright); analogWrite(3,(1024-Knobvalue)/4); if(Bright>=180){ digitalWrite(9,HIGH); } else{ digitalWrite(9,LOW); } } |
가변저항의 손잡이를 시계방향으로 돌리니까 저항이 커져서 입력되는 값이 0이 되길래
그 값을 1024에서 뺀 다음 4로 나눠서 LED는 손잡이를 시계방향으로 돌릴 때 더 밝아지게 했다.
여기까진 딱 좋아!!
근데 CDS를 연결하고 CDS가 읽어들이는 값도 화면에 표시하게 했더니..
이 값이 가변저항의 값을 따라가는 것이 아닌가!!!
도대체 이게 무슨 일인가.. 설마 저항값이 이상해서 그런가.. 별 고민을 다 하다가 우연히 발견한 것이...
CDS 값을 A2에 연결했는데 정작 코드는 A3... 그러니 제대로 읽어오면 그게 이상하지 -_-;;
여튼.. CDS는 정상인걸로 -_-;;
그리고 GND에 10k 저항을 달아주니까 그냥 출력이 100정도 선이 되더라
다음 차례는 피에조 부저와 모터 구동이다!!!