[Diao Ye가 프로그래밍을 배운다] Arduino 실습(212) --- Arduino의 10번째 유형 확장 실험을 완료하는 9-in-1 확장 보드 BH1750FVI 디지털 광도 모듈 광 센서

여기에 이미지 설명을 삽입하세요

37개의 센서와 모듈에 대한 언급이 인터넷에 널리 유포되고 있는데, 실제로 아두이노와 호환되는 센서 모듈은 37개 이상이어야 합니다. 실습(직접 시도)이라는 개념에 따라 학습과 의사소통을 목적으로 일부 센서와 모듈을 보유하고 있다는 점을 고려하여 여기서 하나씩 실험을 해볼 예정입니다. 성공 여부와 상관없이 기록해두는 어려운 문제인데, 벽돌을 던지고 옥을 튀길 수 있기를 바랍니다.

[Arduino] 168가지 센서 모듈 시리즈 실험(데이터 코드 + 시뮬레이션 프로그래밍 + 그래픽 프로그래밍)
실험 212: 9 in 1 다기능 확장 보드 DHT1 장치 온도 및 습도 LM3 온도 5 부저 1 UNO 호환

여기에 이미지 설명을 삽입하세요

"Arduino 프로그램 코드" + "Mind + 그래픽 프로그래밍" + "Linkboy 시뮬레이션 프로그래밍"의 조합을 선택하세요.

서로를 보완하고 견고한 기반을 마련하며 이해를 증진합니다.

여기에 이미지 설명을 삽입하세요

실험 카탈로그(아두이노 실습)
1. LED 실험
01 Blink: D13 파란색 LED 깜박임
02 Blink2: D12, D13 빨간색과 파란색 LED가 번갈아 깜박임
03 Blink3: 깜박이는 알람 빛 시뮬레이션
04 Breath_LED: D9 풀 컬러 LED 빨간색 호흡 빛 시뮬레이션
2. 버튼 실험
05 버튼: D2 버튼은 D13 파란색 LED를 제어
06 Button_Lock: D3 버튼은 D13 파란색 LED 자체 잠금 실험을 제어
3. 전위차계 실험
07 RS232_AD: 직렬 포트는 A0 전위차계를 읽어 값을 수집합니다(회전 각도 270° 출력 0 -3.3). V/5V 전압 신호 전위차계 저항 값 10K)
08 Rotation_LED: A0 전위차계는 D11 풀 컬러 LED 파란색 단자 밝기를 제어합니다. 09
RC_Motor: A0 전위차계는 D7 출력 포트의 조향 기어를 제어하여 회전 각도를 제어합니다(조향 기어는 Arduino는 자동으로 외부 전원 공급이 필요함)
4. RGB 풀 컬러 LED 실험
10 LED_RGB_Text: 풀 컬러 LED 기본 색상 변경
11 LED_RGB: 풀 컬러 LED 무지개 변경
5. 적외선 센서 D6 실험 (적외선 리모콘은 별도로 준비해야 함) 12
IRrelay: 적외선 리모컨 누르기 장치의 아무 키나 D13 LED 스위치를 제어할 수 있습니다(제어 거리 1-8미터, 주파수 38KHz, 시중에 나와 있는 대부분의 적외선 리모컨과 호환 가능) 13 IRrecord: 직렬 포트는 읽은 내용을 표시합니다
. 적외선 리모컨 코드
6. 온도 센서 실험
14 LM35_RS232AD: 직렬 포트는 A2 포트의 LM35 온도 센서가 읽은 온도를 표시합니다(실내 및 실외 온도를 테스트할 수 있으며 범위는 -50-150°C이며 감도는 좋습니다)
. 8. 밝기 센서 실험 16 광 센서: 직렬 포트는 포트 A1의 포토레지스터에 의해 수집된 값을 표시합니다. 17 Light_LED: 포트의 포토레지스터 제어 A1 D13 LED 스위치(빛에 민감하고 교육 실험 및 민간 장비에 적합) 9. 버저 실험 18 버저: 구급차 사이렌을 시뮬레이션하는 D5 포트 패시브 버저(간단한 음악 소리를 낼 수 있으며 음악을 프로그래밍해야 함) 10, 확장 실험 19 아날로그 초음파 거리 측정 센서(감지 유형 I, IIC/I2C 인터페이스) 20 버스 DS18B20 온도 센서(숫자 유형, 확장 보드의 디지털 D7 인터페이스에 연결됨) 21 TM1637 4자리 디지털 튜브(디지털 튜브 및 도트 매트릭스 유형, 확장 보드 디지털 D7/D8 인터페이스에 연결) 22 GY-BMP280-3.3 기압 고도계 센서 모듈 (숫자형, IIC/I2C 인터페이스) 23 GY-NEO-6MV2 신형 비행 제어 GPS 위성 신호 수신 모듈 (숫자형, TTL 인터페이스 ) 24 5V 저레벨 트리거 단일 채널 릴레이 모듈(실행 유형, 디지털 D7 인터페이스) 25 일렉트릿 마이크가 있는 4선 사운드 센서 모듈(트리거 유형, 디지털 D7 인터페이스) 26 BH1750FVI 디지털 조도 모듈 광 센서(숫자 유형, IIC/I2C 인터페이스)















27 오픈소스 DFPlayer Mini TF 카드 MP3 플레이어 모듈(출력 액츄에이터 타입 D7/D8 디지털 인터페이스)
28 LCD1602 LCD 스크린 모듈(출력 디스플레이 타입, IIC/I2C 인터페이스)
29 인체 적외선 초전 모션 센서 모듈(트리거 타입, 디지털 D7 인터페이스) )
30 DS1307 클럭 모듈 Tiny RTC I2C 모듈(감지 센서형, IIC/I2C 인터페이스)
31 호환 HC-06 슬레이브 블루투스 모듈(통신 및 저장형, TTL 인터페이스)
32 0.96인치 OLED12864 LCD 화면 모듈(디스플레이형, IIC 인터페이스)

여기에 이미지 설명을 삽입하세요

X. 확장 실험
26 BH1750FVI 디지털 광도 모듈 광 센서(숫자 I2C 인터페이스)

지식 포인트: BH1750FVI 칩
BH1750은 ROHM Semiconductor가 개발한 16비트 디지털 조도 센서로, 넓은 범위의 빛 강도를 정확하게 측정할 수 있습니다. 주요 특징은 다음과 같습니다:
I2C 디지털 인터페이스, 최대 400Kbps
출력 지원 속도는 조도(조도)
측정 범위 1~65535lux, 최소 해상도 1lux 50/60Hz 주 주파수로 인한 빛을 차폐하는
저전력 소비(전원 차단) 기능
간섭 변경
2개의 I2C 주소 지원, ADDR 핀을 통해 선택
측정 오류 감소(최대 정확도 오류 +/-20%)

여기에 이미지 설명을 삽입하세요

BH1750FVI 디지털 광도 모듈 광 센서
BH1750 센서를 기반으로 한 GY-302 모듈은 조도 측정에 이상적입니다. 센서는 높은 감도로 배경 조명을 측정하도록 특별히 설계되었으며 감도 스펙트럼은 인간 눈의 감도 곡선과 일치합니다. BH1750은 공통 I2C 인터페이스를 통해 Arduino에 연결됩니다. BH1750의 내부 로직은 의미 있는 럭스(lx) 디지털 데이터를 직접 출력하므로 복잡한 계산이 필요하지 않습니다. BH1750을 사용하면 Arduino에서 집에서 조도계를 만들 수 있습니다. 센서 모듈에는 BH1750 센서와 16비트 아날로그-디지털 변환기로 구성된 브레이크아웃 보드가 있습니다.

여기에 이미지 설명을 삽입하세요
여기에 이미지 설명을 삽입하세요

모듈의 주요 특징
(1) ROHM 오리지널 BH1750FVI 칩 채택
(2) 전원 공급 장치: 3-5v
(3) 광도 범위: 0-65535 lx
(4) 센서에 내장된 16비트 AD 컨버터
(5) 직접 디지털 출력, 복잡한 계산 및 보정 불필요
(6) 주변광을 구분하지 않고 분광 특성에 가까운 시각적 감도
(7) 광범위한 밝기에서 1lux의 고정밀 측정이 가능함
(8) 표준 NXP IIC 통신 프로토콜
( 8) 9) 모듈에는 통신 레벨 변환이 포함되어 있으며 5v 마이크로 컨트롤러는 직접 연결됩니다.

여기에 이미지 설명을 삽입하세요

4. 모듈 핀 설명
GND: Pin1은 접지 핀입니다.
ADDR: I2C 인터페이스의 주소를 설정합니다. I2C를 통해 주소를 선택한 후 이 핀을 접지 또는 Vcc에 연결합니다.
SDA: 직렬 데이터 주소 핀은 I2C 버스를 통해 데이터를 전송합니다.
SCL: I2C 인터페이스를 통한 통신에 사용되는 직렬 클럭 핀입니다.
Vcc: 이 핀에 3.3V-5V를 적용합니다.

여기에 이미지 설명을 삽입하세요

여기에 이미지 설명을 삽입하세요

열 번째 범주 확장 실험
26 BH1750FVI 디지털 광도 모듈 광 센서(숫자 I2C 인터페이스)
프로젝트: A3 아날로그 인터페이스 테스트, 주변 광 파형을 읽는 직렬 포트

Arduino 실험 오픈 소스 코드

/*
Eagler8系列实验程序列表
第十类 扩展实验
26 BH1750FVI 数字光强度模块光照传感器(数值类 I2C接口)
项目:测试A3模拟接口,串口读取环境光照波形

Module      UNO
VCC   ——   5V
GND  ——  GND
SCL   ——   A5
SDA  ——   A4
ADD ——   NC
*/

#include <Wire.h>
#include <math.h>
int BH1750address = 0x23;

byte buff[2];
void setup()
{
    
    
  Wire.begin();
  Serial.begin(57600);
}

void loop()
{
    
    
  int i;
  uint16_t val=0;
  BH1750_Init(BH1750address);
  delay(200);

  if(2==BH1750_Read(BH1750address))
  {
    
    
    val=((buff[0]<<8)|buff[1])/1.2;
    Serial.println(val,DEC);     
  }
  delay(150);
}

int BH1750_Read(int address)
{
    
    
  int i=0;
  Wire.beginTransmission(address);
  Wire.requestFrom(address, 2);
  while(Wire.available())
  {
    
    
    buff[i] = Wire.read();  
    i++;
  }
  Wire.endTransmission();  
  return i;
}

void BH1750_Init(int address)
{
    
    
  Wire.beginTransmission(address);
  Wire.write(0x10);
  Wire.endTransmission();
}

실험적인 직렬 포트 반환

여기에 이미지 설명을 삽입하세요
실험적인 오픈 소스 그래픽 프로그래밍(Mind+, 학습하면서 프로그래밍)

여기에 이미지 설명을 삽입하세요
실험적인 직렬 포트 반환
여기에 이미지 설명을 삽입하세요

실험적인 오픈 소스 시뮬레이션 프로그래밍(Linkboy V5.33)

여기에 이미지 설명을 삽입하세요
Arduino 실험 장면 다이어그램

여기에 이미지 설명을 삽입하세요
여기에 이미지 설명을 삽입하세요

Supongo que te gusta

Origin blog.csdn.net/weixin_41659040/article/details/132464407
Recomendado
Clasificación