基于Wemos的感应开盖垃圾桶
编译环境为Arduino
1. Wemos控制蜂鸣器
基础控制:蜂鸣器叫唤和不叫唤
void setup() {
pinMode(D5, OUTPUT); //设置引脚为输出引脚
}
void loop() {
digitalWrite(D5, HIGH); // 输出高电平,蜂鸣器闭嘴
delay(1000); //这一秒内都得闭嘴
digitalWrite(D5, LOW); //输出低电平,蜂鸣器吼起来
delay(1000); //吼一秒(延时期间,蜂鸣器控制引脚属于低电平)
}
2.Wemos串口通信
串口控制蜂鸣器
void setup() {
pinMode(D5, OUTPUT); //设置引脚为输出引脚
Serial.begin(115200); //初始化串口,设置波特率为115200
Serial.println(“start”); //测试串口是否启动,启动成功就发送start
}
void loop() {
int cmd;
if ( Serial.available() > 0 ) { //检测串口是否有数据
cmd = Serial.read(); // 读取串口数据
if (cmd == 1) { //如果读取的数据是1
digitalWrite(D5, LOW); // 蜂鸣器响起
} else {
digitalWrite(D5, HIGH); // 否则(读取数据非1)蜂鸣器不响
}
}
}
3. Wemos和超声波测距
4.Wemos和SG90舵机
5.综合
#include<Servo.h>
#define DuoPIN D5
Servo myDuoJi;
#define Echo D2
#define Trig D8
long getTime()
{
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
return pulseIn(Echo, HIGH);
}
void initChaoShengBo() {
pinMode(Echo, INPUT);
pinMode(Trig, OUTPUT);
}
void setup() {
// put your setup code here, to run once:
myDuoJi.attach(DuoPIN);
initChaoShengBo();
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
long dis;
dis = getTime() / 58;
if (dis < 10) {
myDuoJi.write(90);
delay(2000);
}
else
{
myDuoJi.write(180);
}
// Serial.print(dis);
// Serial.println(“cm”);
// delay(500);
}