返回首页

arduino语言编程,如何读取湿度传感器和如何输出到LED上

239 2024-04-19 18:13 admin

一、arduino语言编程,如何读取湿度传感器和如何输出到LED上

硬件设备:

Arduino 控制器×1

Arduino 传感器扩展板×1

Moisture Sensor模块×1

3P传感器连接线×1

USB数据通信线×1

使用杜邦线将MoistureSensor连接到Arduino传感器扩展板接口A5上。完成硬件连接后,将代码编译后下载到Arduino里。Arduino实验代码如下。

void setup(){

Serial.begin(9600);

}

void loop(){

if(analogRead(5) < 300){

Serial.println(I am thirsty ,please give me water); }

if(analogRead(5) > 300 && analogRead(5) < 700){

Serial.println(I feel so comfortable);

}

if(analogRead(5) > 700){

Serial.println(Too much water, I might get hurt);

}

delay(200);

}

二、如何在arduino上编写小游戏

首先我们来尝试下头文件的编写 我们在这中间添加程序主体的代码部分,首先来添加程序的头文件,需要引用什么都可以加进来 之后我们可以预定义一些需要的常量,这样维护起来比较方便,如果常量值改变只要统一修改这里就好 接下来我们来定义变量和

三、在arduino上编写程序做智能小车要调用哪些程序

int outputPin = 5;

int inputPin = 4;

int cmdPin = 3;

int pinI1=8;//定义I1接口

int pinI2=9;//定义I2接口

int speedpin1=11;//定义EA(PWM调速)接口

int pinI3=6;//定义I3接口

int pinI4=7;//定义I4接口

int speedpin2=10;//定义EB(PWM调速)接口

int average_speed_l = 150;

int average_speed_r = 100;

int speed_limit_l = 80;

int speed_limit_r = 60;

int target_distance = 30;//in cm

int lost_distance = 80;

float detect_distance()

{

digitalWrite(outputPin, LOW); // 让超声波发射低电压2μs

delayMicroseconds(2);

digitalWrite(outputPin, HIGH); // 让超声波发射高电压10μs,这里至少是10μs

delayMicroseconds(10);

digitalWrite(outputPin, LOW); // 维持超声波发射低电压

float Fdistance = pulseIn(inputPin, HIGH); // 读差相差时间

Fdistance= Fdistance/5.8/10; // 将时间转为距离距离(单位:公分)

Serial.print(F distance:); //输出距离(单位:公分)

Serial.println(Fdistance); //显示距离

return Fdistance;

}

void rightSpeed(int speed_r)

{

if(speed_r < speed_limit_r)

{

speed_r = 0;

}

analogWrite(speedpin1,speed_r);//输入模拟值进行设定速度

digitalWrite(pinI1,HIGH);//使直流电机(左)顺时针转

digitalWrite(pinI2,LOW);

}

void leftSpeed(int speed_l)

{

if(speed_l < speed_limit_l)

{

speed_l = 0;

}

analogWrite(speedpin2,speed_l);//输入模拟值进行设定速度

digitalWrite(pinI3,LOW);//使直流电机()顺时针转

digitalWrite(pinI4,HIGH);

}

void stop_l()

{

digitalWrite(speedpin2,LOW);//输入模拟值进行设定速度

digitalWrite(pinI3,LOW);//使直流电机()顺时针转

digitalWrite(pinI4,LOW);

}

void stop_r()

{

digitalWrite(speedpin1,LOW);//输入模拟值进行设定速度

digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转

digitalWrite(pinI2,LOW);

}

void turn_l()

{

leftSpeed(100);

rightSpeed(150);

}

void turn_r()

{

leftSpeed(200);

rightSpeed(80);

}

void noturn()

{

leftSpeed(100);

rightSpeed(80);

}

void rotate()

{

leftSpeed(200);

rightSpeed(0);

}

void setup()

{

Serial.begin(9600);

pinMode(outputPin, OUTPUT);

pinMode(inputPin, INPUT);

pinMode(pinI1,OUTPUT);

pinMode(pinI2,OUTPUT);

pinMode(speedpin1,OUTPUT);

pinMode(pinI3,OUTPUT);

pinMode(pinI4,OUTPUT);

pinMode(speedpin2,OUTPUT);

pinMode(cmdPin, INPUT);

}

void loop()

{

if(digitalRead(cmdPin) == LOW){

float dis = detect_distance();

if(dis > lost_distance){

while(true)

{

rotate();

delay(100);

stop_l();

stop_r();

delay(100);

dis = detect_distance();

if(dis < lost_distance) break;

}

}else{

if(dis > target_distance){

if(dis - target_distance > 2){ //if the difference is small enough, it can be neglected.

turn_r();

}else{

noturn();

}

}

if(dis < target_distance){

if(target_distance - dis > 2){

turn_l();

}else{

noturn();

}

}

}

}else{

stop_l();

stop_r();

}

delay(100);

}

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片