반응형
안녕하세요!
오늘은 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 (7, 100); } if(buttonPushCounter==2){ Serial.println("중"); analogWrite (7, 190); } if(buttonPushCounter==3){ Serial.println("강"); analogWrite (7, 255); } if(buttonPushCounter==0){ Serial.println("끄기"); analogWrite (7, 0); } } | cs |
반응형
'Programming > Arduino' 카테고리의 다른 글
CDS (조도센서) + OLED(I2C) 조도 값(ADC) 모니터링 (0) | 2020.01.09 |
---|---|
Arduino 대표 시리즈 사양(Spec) 모음-Uno,Nano,Mega,Micro (0) | 2020.01.09 |
◈ 코딩 어레이 스타터 키트 (아두이노ver.) [출처] ◈ 코딩 어레이 스타터 키트 (아두이노ver.) 체험단 모집 (~2/28) ◈ (아두이노 스토리) (0) | 2019.01.30 |
릴레이(Relay) 2ch + OLED (I2C) 릴레이 상태 체크 하기 (Relay Monitoring) (0) | 2019.01.19 |
sg90(Servo Motor)+터치 센서(Touch Sensor) 사용하기 (5) | 2019.01.18 |
댓글