今天我们学习了红外感应器,实现功能:检测红外感应器开关,并发声。#define PIN_IR_IN 7 红外线感应开关引脚 #define PIN_TONE_OUT 8 发声引脚 Serial.begin(9600);pinMode(PIN_IR_IN, INPUT);初始化,if (digitalRead(PIN_IR_IN) == HIGH) {for (int i = 0; i <5 ; i++) {for (int j = 0; j < 1500; j++) {tone(PIN_TONE_OUT, map(j,0,1499,650,1550));delay(1);}for (int j = 0; j < 3500; j++) {
tone(PIN_TONE_OUT, map(j,0,3499,1550,650));delay(1);}}}消防车声音:低频650Hz~750Hz,高频1450~1550, 由低频到高频1.5s, 再由高频降至低频3.5s.
超声波传感器的应用,进行编程,实现对距离测试,从而有不同的提示与操作,digitalWrite(TrigPin, HIGH); //开始发送高电平,US-100开始测量距离,delayMicroseconds(50); // 设置高脉冲宽度为50us (>10us),digitalWrite(TrigPin, LOW); // 结束高脉冲
Time_Echo_us = pulseIn(EchoPin, HIGH); // 敲击是第一个上升沿,返回波是第二个上升沿,两沿宽度,if((Time_Echo_us < 60000) && (Time_Echo_us > 1)) //有效的宽度范围 (1, 60000).{// 1m->5882us, 10m->58823us
Len_mm = (Time_Echo_us*34/100)/2; //长度(mm)Len_mm = (Time_Echo_us * 0.34mm/us) / 2 (mm), 最大10.2米
frequence = map(Len_mm, MIN_DISTANCE, MAX_DISTANCE, NOTE_B7, NOTE_C3 );
tone(PIN_TONE_OUT, frequence, DURATION/4);delay(Len_mm/2); // 距离越近,时间间隔越小,声音越急促。