이 프로젝트에서는 ARDUINO UNO에서 ADC (Analog to Digital Conversion) 개념을 사용하여 Clapper 회로 를 만들 것 입니다. MIC와 Uno를 사용하여 사운드를 감지하고 응답을 트리거합니다. 이 Clap ON Clap OFF 스위치는 기본적으로 박수 소리를 스위치로 사용하여 장치를 켜거나 끕니다. 우리는 이전에 555 Timer IC를 사용하여 Clap 스위치와 Clap ON Clap OFF 스위치를 구축했습니다.
박수를 치면 정상보다 훨씬 높은 MIC에 피크 신호가있을 것이며,이 신호는 하이 패스 필터를 통해 증폭기로 공급됩니다. 이 증폭 된 전압 신호는 ADC에 공급되어이 고전압을 숫자로 변환합니다. 따라서 UNO의 ADC 판독 값에 피크가 있습니다. 이 피크 감지에서 우리는 각 박수에서 보드의 LED를 토글합니다. 이 프로젝트는 아래에 자세히 설명되어 있습니다.
마이크 또는 마이크는 기본적으로 소리 에너지를 전기 에너지로 변환 하는 소리 감지 변환기 입니다. 따라서이 센서를 사용하면 전압을 변경하는 소리가 들립니다. 우리는 보통이 장치를 통해 소리를 녹음하거나 감지합니다. 이 변환기는 모든 휴대폰 및 랩톱에 사용됩니다. 일반적인 MIC는 다음과 같습니다.
콘덴서 마이크의 극성 결정:
MIC에는 두 개의 단자가 있습니다. 하나는 양수이고 다른 하나는 음수입니다. 마이크 극성은 Multi-Meter를 사용하여 찾을 수 있습니다. Multi-Meter의 포지티브 프로브 (미터를 DIODE TESTING 모드로 설정)를 가져 와서 MIC의 한 단자에 연결하고 네거티브 프로브를 MIC의 다른 단자에 연결합니다. 화면에 판독 값이 표시되면 양극 (MIC) 단자는 Multi-Meter의 음극 단자에 있습니다. 또는 간단히보고 단자를 찾을 수 있습니다. 음극 단자에는 마이크의 금속 케이스에 연결된 2 ~ 3 개의 납땜 라인이 있습니다. 음극 단자에서 금속 케이스까지의 이러한 연결은 음극 단자를 찾기 위해 연속성 테스터를 사용하여 테스트 할 수도 있습니다.
필요한 구성 요소:
하드웨어:
ARDUINO UNO, 전원 공급 장치 (5v), 콘덴서 마이크 (위에 설명)
2N3904 NPN 트랜지스터,
100nF 커패시터 (2 개), 100uF 커패시터 1 개,
1K Ω 저항, 1MΩ 저항, 15KΩ 저항 (2 개), LED 1 개,
그리고 브레드 보드 및 연결 전선.
소프트웨어: Arduino IDE-Arduino nightly.
회로도 및 작동 설명:
클래퍼 회로의 회로도 도 아래에 도시된다:
우리는 작업을 네 부분, 즉 여과, 증폭, 아날로그-디지털 변환 및 LED 토글 프로그래밍으로 나눴습니다.
소리가있을 때마다 MIC는 소리를 잡아서 소리의 크기에 선형적인 전압으로 변환합니다. 따라서 더 높은 사운드는 더 높은 값을, 더 낮은 사운드는 더 낮은 값을가집니다. 이 값은 먼저 여과 를 위해 고역 통과 필터에 공급됩니다. 그런 다음이 필터링 된 값은 증폭 을 위해 트랜지스터에 공급 되고 트랜지스터는 컬렉터에서 증폭 된 출력을 제공합니다. 이 콜렉터 신호는 아날로그-디지털 변환을 위해 UNO의 ADC0 채널에 공급됩니다. 마지막으로 Arduino는 ADC 채널 A0이 특정 수준을 넘어 설 때마다 PORTD의 PIN 7에 연결된 LED를 토글하도록 프로그래밍되어 있습니다.
1. 여과:
먼저 노이즈 를 필터링하는 데 사용 된 RC High Pass Filter 에 대해 간략히 설명하겠습니다. 설계가 쉽고 단일 저항과 단일 커패시터로 구성됩니다. 이 회로의 경우 세부 사항이 많이 필요하지 않으므로 간단하게 유지하겠습니다. 고역 통과 필터를 사용하면 고주파 신호가 입력에서 출력으로 전달됩니다. 즉, 신호의 주파수가 필터에 규정 된 주파수보다 높으면 입력 신호가 출력에 나타납니다. 지금은 오디오 증폭기를 설계하지 않기 때문에 이러한 값에 대해 걱정할 필요가 없습니다. 회로에 하이 패스 필터가 표시됩니다.
이 필터 후 전압 신호가 증폭을 위해 트랜지스터에 공급됩니다.
2. 증폭:
MIC의 전압은 매우 낮으며 ADC (Analog to Digital Conversion)를 위해 UNO에 공급할 수 없으므로이를 위해 트랜지스터를 사용하는 간단한 증폭기를 설계합니다. 여기에서는 MIC 전압을 증폭하기위한 단일 트랜지스터 증폭기를 설계했습니다. 이 증폭 된 전압 신호는 Arduino의 ADC0 채널에 추가로 공급됩니다.
3. 아날로그에서 디지털로 변환:
ARDUINO에는 6 개의 ADC 채널이 있습니다. 이 중 하나 또는 모두를 아날로그 전압 입력으로 사용할 수 있습니다. UNO ADC는 10 비트 분해능입니다 (따라서 (0- (2 ^ 10) 1023)의 정수 값). 즉, 0에서 5V 사이의 입력 전압을 0에서 1023 사이의 정수 값으로 매핑합니다. (5 / 1024 = 4.9mV) 단위당.
이제 UNO가 아날로그 신호를 디지털 신호로 변환하려면 아래 기능을 사용하여 ARDUINO UNO의 ADC 채널을 사용해야합니다.
1. analogRead (핀); 2. analogReference ();
UNO ADC 채널의 기본 참조 값은 5V 입니다. 즉, 모든 입력 채널에서 ADC 변환을 위해 최대 5V의 입력 전압을 제공 할 수 있습니다. 일부 센서는 0-2.5V의 전압을 제공하므로 5V 기준으로 정확도가 떨어 지므로이 기준 값을 변경할 수있는 명령이 있습니다. 따라서 참조 값을 변경하려면 "analogReference ();"가 있습니다.
회로 에서이 기준 전압을 기본값으로 두었으므로 "analogRead (pin);"함수를 직접 호출하여 ADC 채널 0에서 값을 읽을 수 있습니다. 여기서 "핀"은 아날로그 신호를 연결 한 핀을 나타냅니다. 이 경우 "A0"이됩니다. ADC의 값은“int sensorValue = analogRead (A0); ”,이 명령에 의해 ADC의 값은 정수“sensorValue”에 저장됩니다. 이제 UNO의 메모리에 디지털 형식의 트랜지스터 값이 있습니다.
4. 각 Clap의 LED를 토글하도록 Arduino를 프로그래밍합니다.
정상적인 경우 MIC는 정상적인 신호를 제공하므로 UNO에 정상적인 디지털 값이 있지만 MIC가 제공하는 피크가있는 경우 UNO에 피크 디지털 값이 있으므로 UNO가 토글하도록 프로그래밍 할 수 있습니다. 피크가있을 때마다 LED가 켜지고 꺼집니다. 그래서 처음 박수를 치면 LED가 켜지고 계속 켜져 있습니다. 두 번째 박수를 치면 LED가 꺼지고 다음 박수 때까지 꺼져 있습니다. 이것으로 클래퍼 회로가 있습니다. 아래 프로그램 코드를 확인하십시오.