通过本次简单的Arduino智能垃圾桶小实验可以快速了解Arduino的基本用法
1、材料准备
Arduino UNO
HC-SR04超声波模块
SG90舵机
杜邦线
电源
电脑
2、代码分析
电机的控制
#include<Servo.h>
#define duoji D5
Servo myduoji;
void setup() {
myduoji.attach(duoji); //舵机连接
Serial.begin(115200);
}
void loop() {
myduoji.write(20); //设置角度
delay(1000);
myduoji.write(100); //设置角度
}
超声波模块控制
#define echo D2
#define trig D8
long getTime()//获取时间
{
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
return pulseIn(echo,HIGH);
}
void initBo()//初始化超声波
{
pinMode(echo,INPUT);
pinMode(trig,OUTPUT);
}
void setup() {
initBo();
Serial.begin(115200);
}
void loop() {
long dis;
dis = getTime()/58;//获取距离
Serial.print(dis);
Serial.println("cm");
delay(1000);//每隔1s扫面一次
串口通讯
void setup() {
Serial.begin(115200);
}
void loop() {
int cmd;
if(Serial.available() > 0)
{
cmd = Serial.read();
if (cmd == 5)//当输入5的时候就输出你好到串口通讯助手
{
Serial.println("nihao");
}else
{
Serial.println("nihaocai");
}
}
}
蜂鸣器
#define beep D5
void setup() {
pinMode(beep,OUTPUT);
digitalWrite(beep,HIGH);
Serial.begin(115200);
}
void loop() {
int cmd;
if(Serial.available() > 0)
{
cmd = Serial.read();
if (cmd == 5)//当输入5的时候就输出你好开始beep到串口通讯助手
{
Serial.println("nihao");
digitalWrite(beep,LOW);
delay(1000);
}else
{
Serial.println("nihaotingzhibb");
digitalWrite(beep,HIGH);
}
}
delay(1000);
}
整合
#include<Servo.h>
#define echo D2
#define trig D8
#define duoji D5
Servo myduoji;
long getTime()
{
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
return pulseIn(echo,HIGH);
}
void initBo()
{
pinMode(echo,INPUT);
pinMode(trig,OUTPUT);
}
void setup() {
initBo();//超声波初始化
myduoji.attach(duoji); //舵机连接
Serial.begin(115200);
}
void loop() {
long dis;
dis = getTime()/58;
Serial.print(dis);
Serial.println("cm");
if(dis<10)
{
myduoji.write(20);
delay(3000);
}else
{
myduoji.write(100);
}
delay(50);
}