본문 바로가기
Programming/Arduino

Arduino Tact Switch count or 5v Pan PWM Control

by 크레노트 2019. 2. 21.
반응형

안녕하세요!


오늘은 5v짜리 작은 쿨링팬으로 선풍기 기능을 만들어 보았습니다.


사실 잘 안될것을 미리 알고 기능만 간단하게 구현하였습니다.


컨트롤 보드는 Arduino Mega 를 사용하였구요


나머지는 일반 택트 스위치와 5v 쿨링팬을 사용하였습니다.


핵심은 !! 택트 스위치 카운터 간단 알고리즘과


간단한 PWM에 대한 이해입니다.


저는 솔직하게... 문서보다 그냥 한번 해보는 것이


이해가 더 잘되더라구요..


간단하지만 혹시나 도움 되실 분들이 있었으면 좋겠네요..


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
 
void setup() {
 // 시리얼 모니터 및 사용 핀 설정
  Serial.begin(9600);
pinMode(3, INPUT_PULLUP);
pinMode(7, OUTPUT);
}
 
void loop() {
   
     buttonState = digitalRead(3);
   //버튼 카운터를 위한 설정
  if (buttonState != lastButtonState) {
 
    if (buttonState == LOW) {
      if(buttonPushCounter<=3 &&mode==0)
      {
      buttonPushCounter++;
      if(buttonPushCounter==4){
      buttonPushCounter--;
          mode=1;
      }
      }
      if(buttonPushCounter>=0 &&mode==1){
        buttonPushCounter--;
        if(buttonPushCounter==0)
              mode=0;
        }
      
    }
 
    delay(50);
  }
 
  lastButtonState = buttonState;
  //버튼 카운터별 pwm 
 if(buttonPushCounter==1){
  Serial.println("약");
    analogWrite (7100); 
 
 }
 if(buttonPushCounter==2){
  Serial.println("중");
  analogWrite (7190); 
 }
 if(buttonPushCounter==3){
  Serial.println("강");
  analogWrite (7255); 
 }
 if(buttonPushCounter==0){
  Serial.println("끄기");
  analogWrite (70); 
 }
 
}
cs                      


반응형

댓글