2014暑期短学期Arduino(3)

早上一去就完成了“红绿灯”,就是普通直行路口的那种:

*“红绿灯”程序是用blink原型嵌套了个for循环很简单的改造了下:

int led = 9;
int ledy = 8;
int ledg = 7;
void setup() {
pinMode(led, OUTPUT);
pinMode(ledy, OUTPUT);
pinMode(ledg, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(10000);
digitalWrite(led, LOW);
delay(500);
for(int x=0;x<=9;x++){
digitalWrite(led, HIGH);
delay(300);
digitalWrite(led, LOW);
delay(300);
}
digitalWrite(ledy, HIGH);
delay(2000);
digitalWrite(ledy, LOW);
delay(300);
digitalWrite(ledg, HIGH);
delay(10000);
digitalWrite(ledg, LOW);
delay(500);
for(int x=0;x<=9;x++){
digitalWrite(ledg, HIGH);
delay(300);
digitalWrite(ledg, LOW);
delay(300);
}
delay(30);
}


然后去捞了一个湿度传感器,看着传感器上奇奇怪怪的接口查查资料弄了一个上午,终于成功的弄成,三叉口的传感器结果读数只有1023和30+两种,后来问老师,老师说三叉口的智能判断是否有水(0或1):

然后换了四岔口的传感器,因为比三叉口多个DO端所以又做了一个小灯(有水灭没水亮):


面包板拿着不方便,全部换成电线了(蓝色端接电源5V):

湿度传感器基础完成,但是存在读数的问题,不插电源读数0,插上电源空气中1023,遇到水会减小相应数值...所以需要把这个机器读的数值换算成湿度,需要取实验数据计算,老师说大概就是线性关系了,打算明天再弄啦~
*湿度计使用的代码:

int potPin = 4;
int val=0;
int led=13;
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop ()
{
val=analogRead(A4);
Serial.print("Moisture Sensor Value:");
Serial.println(val);
if(val>500){
digitalWrite(led, HIGH);
delay(1000);
}
delay(2000);
}


*湿度数据转换的相关资料:
用Arduino和温度传感器测量您周边的温度
*我们知道Arduino的引脚上有数字量IO和模拟量IO。它们有什么不同?
http://www.arduino.cn/reference/ 参考右侧函数:数字 I/O与模拟 I/O。
*同学教了我一个Map函数:
map(val, 0, 1023, 0, 255)
*今天做LED显示屏没成功,上面生词很多,明天再查。目前知道VSS是接地的意思。

posted @ 2014-08-25 19:56  susyxu  阅读(162)  评论(0编辑  收藏  举报