아두이노 타이머 (4)

아두이노 코딩 스위치 채터링과 디바운스 디바운싱

Arduino Uno Switch Debouncing and Chattering대부분의 스위치를 손으로 한번 누를 때, 접점 부근에서 스위치의 물리적인 떨림에 의해 여러 번 눌러지는 현상을 채터링(Chattering) 이라고 합니다. 이 채터링에 의한 노이즈를 보호하기 위해 디바운스(Debounce)라는 방법을 사용합니다. 디바운싱은 회로적인, 소프트웨어적인 방법으로 처리가 가능합니다. 본 포스트에서는 스위치의 물리적인 떨림에 의한 채터링 현상을 제거하는 디바운스 처리에 대해 작성하였습니다.채터링과 디바운스채터링아래와 같이 스위치를 짧게 한번 눌렀다 때면, 스위치의 물리적 떨림에 의해 스위치가 여러번 눌러진 것과 같은 현상을 채터링 이라고 합니다. 첫 번째 파형사진 시간 간격이 한칸에 20ms 이고, 채..

Embedded/Arduino 2020. 7. 21.

아두이노 코딩 LED Toggle (On/OFF) 여러 가지 방식

Arduino Uno LED Toggle with / without delay()아두이노 우노 보드에서 delay(), millis() 함수와 MsTimer2 라이브러리를 사용한 LED Toggle 예제입니다.Hardware준비물 본 예제 구성품은 아래와 같습니다.Arduino Uno x 1 EADIP LED x 1 EAResistor 1kΩ x 1 EA ( 200 Ω ~ 1 kΩ 무관)Bread Board x 1 EAJumper Wires회로도 회로 참고사항 LED 직렬 저항 크기 선정시 아래의 사항이 고려 되어야 합니다.아두이노 digital Pin 의 최대 출력 전류는 30mA 이하로 되도록 저항 값 결정LED (일반적으로) 정방향 전류 IF가 20mA 를 초과 하지 않도록 저항 값 결정 Softw..

Embedded/Arduino 2020. 7. 19.

아두이노 강좌 #14 타이머 인터럽트 MsTimer2.h

아두이노 타이머 인터럽트 : MsTimer20.5초 마다 센서의 값을 시리얼 통신으로 송신, 0.1초 마다 현재 센서 값을 저장하는 등, 주기적인 시간마다 수행하는 코드는 타이머 인터럽트를 사용하면 쉽게 구현이 가능합니다. 아두이노는 타이머 인터럽트를 위한 MsTimer2 라이브러리를 지원합니다. MsTimer2 라이브러리는 마이크로프로세서 전문 지식이 없이도 간단한 방법으로 특정 시간 간격으로 코드를 실행 할 수 있는 함수를 제공합니다. 본 포스트에서는 라이브러리 설치 방법, MsTimer2 라이브러리 사용 방법과 예제에 대해 작성하였습니다. 관련포스트 아두이노 인터럽트 관련 포스트 - '아두이노 강좌 #10' 포스트는 인터럽트에 대한 설명도 포함합니다.2020/07/09 - [Arduino/Basic..

Embedded/Arduino 2020. 7. 13.

아두이노 강좌 #3 시간 관련 함수 설명, delay() 없이 LED Blink 코드 작성

delay() delayMicroseconds() millis() micros() 아두이노에서는 일정 시간 동안 프로그램을 멈추거나, 특정 순간부터 시간을 측정 할 수 있는 함수를 제공합니다. 시간 지연 함수는 delay(), delayMicroseconds() 가 있고, 시간을 측정하는 함수는 micros(), millis() 가 있습니다. 이 함수들을 사용하여 1초마다 온도 센서의 값을 PC로 데이터 송신하거나, 0.5초 이내에 버튼이 두 번 눌리면 더블 클릭 같은 기능을 추가하는 방법 등 다양한 방법으로 프로그램 개발이 가능합니다. 본 포스트에서는 아두이노에서 제공하는 시간 함수 사용법과 내장 LED를 사용한 간단한 예시를 작성하였습니다. 시간 지연 vs 시간 측정 차이 아두이노에서 시간 지연 함수..

Embedded/Arduino 2020. 7. 2.