1.通过超声波传感器实现感应功能Arduino串口监视器读取距离参数;
2.用舵机模块按压,喷出消毒洗手液;
3.使用贴片式LED实现感应灯,变绿时感应手,消毒
实现代码:
#include <Servo.h> // 声明调用Servo.h库 Servo myservo; //创建一个舵机类,命名为myservo #define SERVO_PIN 10 ////宏定义舵控制引脚 unsigned int PWM = 90; //变量pwm存储舵机角度位置,PWM的500对应0度,2500对应舵机最大角度 //(180度舵机2500度对应180度,270度舵机2500对应270度。 const int TrigPin = 4; const int EchoPin = 6; float distance; void setup() { Serial.begin(9600); pinMode(TrigPin,OUTPUT); myservo.attach(SERVO_PIN); // 将10引脚与声明的舵机对象连接起来 pinMode(EchoPin,INPUT); Serial.println("Ultrasonic sensor:"); } void loop() { digitalWrite(TrigPin,LOW); delayMicroseconds(2); digitalWrite(TrigPin,HIGH); delayMicroseconds(10); digitalWrite(TrigPin,LOW); distance = pulseIn(EchoPin,HIGH)/58.00; Serial.print(distance); Serial.print("cm"); Serial.println(); delay(100); if(distance<15 && distance>1) { for(PWM = 975; PWM>50; PWM-=5){ myservo.writeMicroseconds(PWM); delay(10); } } else { myservo.writeMicroseconds(PWM); } }