新入手体验:三个小实验

新入手体验:三个小实验

一:一个LED闪烁

控制要求:1个LED灯,每隔50ms闪烁一次

实物连接图:

控制代码:

 1 //2018.6/11
 2
 3 int LED = 10;//定义数字接口10,对应
 4
 5 void setup()
 6
 7 {
 8
 9   pinMode(LED,OUTPUT);//设置数字10 口为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。
10
11 }
12
13
14
15 void loop() //死循环体
16
17 {
18
19  digitalWrite(LED,HIGH);//IO口10设置为高电平,点亮数字10 口LED
20
21  delay(50);//延时50MS
22
23  digitalWrite(LED,LOW);//IO口10设置为低电平,熄灭数字10 口LED
24
25  delay(50);//延时50MS
26
27 }

二:流水灯

控制要求:1.一共6个LED,从左到右每隔200ms依次点亮,然后从右到左每隔200ms依次熄灭;

  1. 全熄灭后暂停200ms,间隔200ms闪烁两次;
  2. 然后从中间向两边全部点亮每次间隔200ms,两边向中间熄灭,间隔200ms;
  3. 全熄灭后暂停200ms,间隔200ms闪烁两次;
  4. 两边向中间依次点亮,每次间隔400ms,中间向两边依次点亮,每次间隔400ms,
  5. 两末端亮后暂停200ms,间隔200ms闪烁两次;

实物连接图:

控制代码:

 1 int Led1 = 1;//定义数字接口1
 2 int Led2 = 2;//定义数字接口2
 3 int Led3 = 3;//定义数字接口3
 4 int Led4 = 4;//定义数字接口4
 5 int Led5 = 5;//定义数字接口5
 6 int Led6 = 6;//定义数字接口6
 7
 8 void style_1(void)
 9 {
10   unsigned char j;
11   for(j=1;j<=6;j++)//每隔200ms依次点亮1-6引脚相连的LED灯
12   {
13     digitalWrite(j,HIGH);//点亮J引脚相连的LED灯
14     delay(200);//延时200ms
15   }
16   for(j=6;j>=1;j--)//每隔200ms依次熄灭6-1引脚相连的LED灯
17   {
18     digitalWrite(j,LOW);//熄灭J引脚相连的LED灯
19     delay(200);//延时200ms
20   }
21 }
22 //灯闪烁子程序
23 void flash(void)
24 {
25   unsigned char j,k;
26   for(k=0;k<=1;k++)//闪烁两次
27   {
28     for(j=1;j<=6;j++)//点亮1~6引脚相连的led灯
29       digitalWrite(j,HIGH);//点亮于j引脚相连的led灯
30     delay(200);//延时200ms
31     for(j=1;j<=6;j++)//熄灭1~6引脚相连的led灯
32       digitalWrite(j,LOW);//熄灭与j引脚相连dled灯
33     delay(200);//延时200ms
34   }
35 }
36 //led灯花样显示样式2子程序
37 void style_2(void)
38 {
39   unsigned char j,k;
40   k=1;//设置k的初值为1
41   for(j=3;j>=1;j--)
42   {
43     digitalWrite(j,HIGH);//点亮灯
44     digitalWrite(j+k,HIGH);//点亮灯
45     delay(400);//延时400ms
46     k +=2;//设置k的值加2
47   }
48   k=5;//设置k的值为5
49   for(j=1;j<=3;j++)
50   {
51     digitalWrite(j,LOW);;//熄灭灯
52     digitalWrite(j+k,LOW);;//熄灭灯
53     delay(400);//延时400ms
54     k -=2;//设置k的减2
55   }
56 }
57 //led灯花样显示样式3子程序
58 void style_3(void)
59 {
60   unsigned char j,k;
61   k=5;//设置k的值为5
62   for(j=1;j<=3;j++)
63   {
64     digitalWrite(j,HIGH);//点亮灯
65     digitalWrite(j+k,HIGH);//点亮灯
66     delay(400);//延时400ms
67     digitalWrite(j,LOW);//熄灭灯
68     digitalWrite(j+k,LOW);//熄灭灯
69     k -=2;//设置k的减2
70   }
71   k=3;//设置k的值为3
72   for(j=2;j>=1;j--)
73   {
74     digitalWrite(j,HIGH);//点亮灯
75     digitalWrite(j+k,HIGH);//点亮灯
76     delay(400);//延时400ms
77     digitalWrite(j,LOW);//熄灭灯
78     digitalWrite(j+k,LOW);//熄灭灯
79     k +=2;//设置k的加2
80   }
81 }
82 void setup()
83 {
84   unsigned char i;
85   for(i=1;i<=6;i++)//依次设置1-6个数字引脚为输出模式
86     pinMode(i,OUTPUT);//设置第i个引脚为输出模式
87 }
88 void loop()
89 {
90   style_1();//样式1
91   flash();//闪烁
92   style_2();//样式2
93   flash();//闪烁
94   style_3();//样式3
95   flash();//闪烁
96 }

三:练习题:SOS信号灯

控制要求:1.三短三长三短闪烁,暂停时间都是100ms,长亮时间间隔为400ms,短亮时间间隔为150ms;

2.一个周期完成时间间隔为5S;

二:流水灯

原文地址:https://www.cnblogs.com/automachinengineering/p/9167418.html

时间: 2024-10-02 10:48:58

新入手体验:三个小实验的相关文章

寻找水王2——寻找三个小水王

一.实验题目 二.实现方法及设计思路 三.实验代码 //data:2016.5.27 #include<iostream> #include<string> #include<fstream> using namespace std; void getArray(string a[]) { string strTemp; //获取文件中第一个字符,判断文件是否为空 cout << "读取帖子列表可得:" << endl; fs

关于java中equals与==的区别的小实验

java中equals与==经常容易混淆,简单一点说就是equals比较的是值是否相等,是一种方法,==比较的是二者是都为同一对象,是一种操作符. 做了几个小实验比较结果. 实验一: String str1="ab": String str2="ab": System.out.println(s1==s2)://trueSystem.out.println(str1.equals(str2));//true 这里的str1与str2都指向了常量池中的同一对象,所以S

Swift初体验(三)

/*******************************************************************************/ // 协议 protocol Description{ func description() -> String mutating func aMutatingMethod() class func aTypeMethod() // func anOptionalMethod() } // 如果要声明可选择实现的方法,需要在func前

基于互联网内容的中文分词小实验

分词对于搜索引擎,输入法输入提示,语音识别等其它人机交互系统等都很有用.互联网的海量信息为分词研究提供了大量的,动态更新的原始资料库.很多互联网公司都有基于互联网内容的分词系统.并且采用HADOOP等分析大量数据.这些听上去很高大上,但是仔细想想基本原理应该是比较容易理解的,我们每个程序员也很容易可以研究这个领域.所以做了一个简单的POC实验. 首先写一个Spider,从互联网页面抓取内容.因为只是简单实验,我只抓取一个页面,没有做递归抓取链接页面.抓取内容过滤掉HTML标签留下纯文本. 第二部

javascript数据结构和算法 第一章(编程体验)三

变量作用域 变量作用域就是指在一个程序中,变量的值在哪里可以被获取到.javascript函数作用域被定义为函数作用域,这意味着变量的值在定义和声明该变量的函数,包括任何在该函数的嵌套函数里是可见的. 当一个变量定义在函数的外面,在主程序中,该变量将会拥有全局作用域.这就意味着它的值可以被程序的任何地方,包括函数获取. 下面的小程序演示全局变量时如何工作的. function showScope() { return scope; } var scope = "global"; pri

Hadoop之词频统计小实验(基于单节点伪分布)

声明:1)本文由我bitpeach原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Ubuntu操作系统,hadoop1-2-1,jdk1.8.0. 3)统计词频工作在单节点的伪分布上,至于真正实际集群的配置操作还没有达到,希望能够由本文抛砖引玉. (一)Hadoop的配置修正 网上有很多Hadoop的配置教程,可自行寻找,这一部分主要是根据自身实际情况,结合自身特点,设置Hadoop.因为有时候根据别人的教程,设置总是不成功,因为别人的教程依赖于别人的软件或操作环境特点. 本部分也

lamp综合小实验

lamp综合小实验 <font color=red>禁止转载,禁止搬运</font> 遇到的问题: 一.浏览器打不开blog.jd.com:已经配置DNS,最终原因:这个图形化的CentOS7使用dncp获取的ip,DNS也获取的网关:解决:固定IP,手动设置DNS,并确认/etc/reslov.conf 二.NFS权限问题php对NFS目录没有写权限:最终解决:php是以apache运行的,NFS那边也创建个一模一样的apache并对/data/wordpress设置acl权限

C# 6.0语法新特性体验(二)

之前我在文章通过Roslyn体验C# 6.0的新语法中介绍了一些C# 6.0的语法特性,现在随着Visual Studio 14 CTP3的发布,又陆续可以体验一些新的特性了,这里简单的介绍一下之前没有介绍的新语法. 属性表达式(Property Expressions) 我们常常会在类中写一些通过函数生成的只读属性: ????class Point????{????????public int X { get; set; }????????public int Y { get; set; }

DCDC纹波小实验

关于使用示波器测试纹波的注意事项 使用示波器的AC耦合方式测量 由于示波器的头套容易引人噪声,因此在测试前必需把探头的头套去掉 因为电源的高频噪声很容易通过小电感就可以滤掉,因此更关心的是中低频的噪声.测试时将示波器的带宽限制调到尽可能的低(20MHz),避免从表笔引入噪声(我之前就吃过这方面的亏) DCDC后端接LDO AMS1117-5V的Datasheet上要求的最低压差(VIN-VOUT)为1.1V到1.25V,这就要求输入要大于5V+1.1V=6.1V,如果输入不满足这个条件会怎么样呢