산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

사운드 레벨 데이터용 LCD가 있는 사운드 센서 활성화 LED!

구성품 및 소모품

Arduino UNO
× 1
무납땜 브레드보드 전체 크기
× 1
9V 배터리(일반)
선택 사항입니다.
× 1
9V 대 배럴 잭 커넥터
선택 사항입니다.
× 1
남성/남성 점퍼 와이어
× 1
남성/여성 점퍼 와이어
× 1
Adafruit Standard LCD - 파란색 바탕에 16x2 흰색
i2c 백팩을 사용했습니다.
× 1
사운드 센서 모듈 KY-038
× 1
5mm LED:노란색
× 2
5mm LED:녹색
× 4
5mm LED:빨간색
× 2
5mm LED:흰색
× 4
SparkFun 5mm LED:파란색
× 4
저항 100옴
흰색 및 파란색 LED용
× 8
저항 220옴
빨간색 및 노란색 LED용
× 4
저항 330옴
녹색 LED용
× 4

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

이 프로젝트는 스피커에서 방출, 생성 또는 출력(?)되는 사운드 레벨 데이터를 모니터링하는 것입니다.

아아... 호기심과 지루함의 산물입니다.

[KY-038] 마이크 사운드 센서 모듈을 사용하여 시리얼 모니터에서 수집한 값을 받아 스프레드시트에 옮겨 오름차순으로 정렬한 다음 다른 것보다 반복적으로 발생하는 값이나 내가 선택한 값만 선택했습니다. 처럼.

가장 낮은 범위에서 중간 및 높은 범위에 이르기까지 여러 변수를 선택했습니다.

값의 가장 낮은 범위의 변수는 노란색 LED를 활성화하고 중간 범위의 변수는 녹색 LED를 활성화하고 높은 범위의 변수는 빨간색을 활성화합니다.

특정 sensorValue에 도달하거나 사운드 센서가 감지하면 LED가 활성화되거나 켜집니다.

또한 재미를 위해 실시간으로 값을 볼 수 있도록 LCD(옵션)도 포함했습니다.

기본적으로 이 코드를 업그레이드했습니다.

여기에서 일부 코드를 추가했습니다.

그리고 여기

LCD 코드는 이전 프로젝트에서 가져온 것입니다.

그리고 여기에 사용자 이름 MAS3의 코멘트

LCD에 표시되는 데이터에 과거 sensorValue의 일부 숫자가 남아 있는 문제가 발생했습니다. 예를 들어, 현재 값이 619로 되어 있는데 시리얼 모니터에 있는 그대로인데 과거 값이 1234였기 때문에 6194가 되는 경우입니다.

여기에서 .cpp 및 .h 파일을 다운로드하십시오.

************************************************** ****************************

팔로우할 소셜 미디어 링크(원하는 경우):

페이스북 - https://fb.me/HeathenHacks

트위터 - https://twitter.com/HeathenHacks

인스타그램 - https://instagr.am/HeathenHacks

************************************************** ****************************

https://drive.google.com/file/d/15NRocdFjr-DG7Hu2zyyvSvRz7bcncvU7/

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • SoundSensorLEDwData
  • SoundSensorLEDwData아두이노
    설명을 위해 코드에 주석을 추가했습니다. 내가 무엇을 하고 있는지 알기를 바랍니다. lol.
    #include "Arduino.h" #include "LiquidCrystal_PCF8574.h" #define LCD_ADDRESS 0x27#define LCD_ROWS 2#define LCD_COLUMNS 16#define SCROLL_DELAY 150#define BACKLIGHT 255Liquid2Cry의 위치 및 LCD 이름 추가 브레드보드의 전구 + Arduino에 연결된 위치.// LED1은 브레드보드의 LED 전구 1이고 Arduino의 3은 디지털 PWM 3입니다. int LED1=3;int LED2=4;int LED3=5;int LED4=6;int LED5=7;int LED6=8;int LED7=9;int LED8=10;int soundSensor=2; // Arduino의 디지털 핀 2는 사운드 센서의 "DO"가 연결된 곳입니다.int sensorValue =analogRead(A0); //사운드 센서의 "AO"가 연결된 곳입니다.boolean LEDStatus=false;void setup () { Serial.begin(9600); LCDi2C.begin(LCD_COLUMNS, LCD_ROWS, LCD_ADDRESS, BACKLIGHT); //이것은 우리가 이전에 정의한 것들입니다. 핀모드(사운드센서, 입력); //사운드 센서가 입력 장치이기 때문입니다. 핀모드(LED1, 출력); 핀모드(LED2, 출력); 핀모드(LED3, 출력); 핀모드(LED4, 출력); 핀모드(LED5, 출력); 핀모드(LED6, 출력); 핀모드(LED7, 출력); 핀모드(LED8, 출력); 핀모드(센서값, 출력); //sensorValue는 LCD와 직렬 모니터에 출력되기 때문에 출력으로 선언됩니다.}void loop() { int sensorValue=analogRead(sensorValue); int SensorData=digitalRead(사운드 센서); if(SensorData=1){ if(LEDStatus==false){ LEDStatus=true; Serial.println(센서값); //이것은 LCD의 데이터가 동일한지 확인하기 위해 직렬 모니터에 인쇄됩니다. LCDi2C.setCursor(0,0); // sensorValue 데이터가 추가될 때 텍스트가 위로 스크롤되지 않고 사라지고 다시 표시되도록 하기 위한 것입니다. LCDi2C.print("사운드레벨 데이터:"); //LCD의 1행에 표시될 텍스트입니다. LCDi2C.setCursor(0,1); // sensorValue 데이터가 추가될 때 텍스트가 위로 스크롤되지 않고 사라지고 다시 표시되도록 하기 위한 것입니다. LCDi2C.print(센서값); // LCD에 표시될 데이터. LCDi2C.print(" "); // 현재 값에 과거 값의 여분의 자릿수가 나타나지 않도록 하기 위함입니다. 마찬가지로 과거 값이 1234이면 현재 값은 619로 되어있지만 6194로 나타납니다. } if(sensorValue>=750) { // sensorValue가 XX보다 크거나 같습니다. XX 번호는 직렬 모니터의 가장 최근 데이터에서 수집됩니다. 그것을 복사해서 스프레드시트에 붙인 다음 가장 낮은 음량 수준에서 준 높은 음량 수준으로 배열합니다. 디지털 쓰기(LED8, 높음); // 센서 값 데이터에 따라 해당 LED 전구를 표시하거나 조명하여 센서처럼 작동하려면 각 LED 전구의 센서에서 다른 값을 사용할 수 있습니다. } // 센서가 낮은 볼륨의 소리를 감지하면 노란색 LED 전구가 켜집니다. 최소 볼륨 레벨, 볼륨 레벨이 정상이면 녹색 LED 전구가 켜지고 볼륨이 큰 볼륨 임계값에 도달하면 빨간색 LED 전구가 켜집니다. else{ // 또는 모든 LED가 동시에 반응하도록 하려면 모든 LED에 동일한 값을 추가하면 됩니다. LEDStatus=거짓; // 센서 값을 사용하여 LED를 춤추게 할 수도 있습니다. 예를 들어 센서 값을 무작위로 재배열합니다. 또는 2개의 LED가 동일한 값으로 반응하고 다른 LED는 다른 값에 반응하도록 합니다. 디지털 쓰기(LED8, LOW); } if(sensorValue>=735) { digitalWrite(LED7,HIGH); } else{ LEDStatus=거짓; 디지털 쓰기(LED7, LOW); } if(sensorValue>=725) { digitalWrite(LED6,HIGH); } else{ LEDStatus=거짓; 디지털 쓰기(LED6, LOW); } if(sensorValue>=720) { digitalWrite(LED5,HIGH); } else{ LEDStatus=거짓; 디지털 쓰기(LED5, LOW); } if(sensorValue>=715) { digitalWrite(LED4,HIGH); } else{ LEDStatus=거짓; 디지털 쓰기(LED4,LOW); } if(sensorValue>=700) { digitalWrite(LED3,HIGH); } else{ LEDStatus=거짓; 디지털 쓰기(LED3, LOW); } if(sensorValue>=675) { digitalWrite(LED2,HIGH); } else{ LEDStatus=거짓; 디지털 쓰기(LED2, LOW); } if(sensorValue>=650) { digitalWrite(LED1,HIGH); } else{ LEDStatus=거짓; 디지털 쓰기(LED1, LOW); } } else{ LEDStatus=거짓; // 왜 이것을 추가했는지 잘 모르겠습니다. ㅋ ㅋ ㅋ. 디지털 쓰기(LED1, LOW); 디지털 쓰기(LED2, LOW); 디지털 쓰기(LED3,LOW); 디지털 쓰기(LED4, LOW); 디지털 쓰기(LED5,LOW); 디지털 쓰기(LED6, LOW); 디지털 쓰기(LED7, LOW); 디지털 쓰기(LED8, LOW); } } 

    회로도

    전선을 끝에서 끝까지 따라가기만 하면 됩니다.

    제조공정

    1. Würth:사전 설정된 기능이 있는 3축 가속도 센서
    2. 센서 데이터와 Raspberry Pi 마이크로프로세서의 통합
    3. RPi가 있는 라인 추적 센서
    4. RPi가 있는 환경 센서 API
    5. 시각 데이터를 IoT와 통합할 수 있는 가능성
    6. 성공적인 센서 기반 애플리케이션을 위한 6가지 필수 요소
    7. Arch Systems는 제조 데이터 변환을 위해 Flex와 협력 관계를 맺었습니다.
    8. 피부와 유사한 특성을 지닌 로봇용 소프트 촉각 센서
    9. ISS용 WiFi RSSI 센서 추적기
    10. 차세대 LED 기반 데이터 통신용 소재