arduino学习笔记4–利用数组使6个led闪烁
- 格式:docx
- 大小:78.92 KB
- 文档页数:2
#include<reg52.h> //包含头文件,一般情况不需要改动,//头文件包含特殊功能寄存器的定义/*-------------------------IO口定义----------------------------*/sbit P20 = P2^0;//这是为了关闭开发板上的数码管实际应用去掉sbit P21 = P2^1;//这是为了关闭开发板上的数码管实际应用去掉sbit CS88 = P2^2;//这是为了关闭开发板上的点阵实际应用去掉sbit LED0=P1^0;// 用sbit 关键字定义LED到P1.0端口,LED是自己任意定义且容易记忆的符号sbit LED1=P1^1;sbit LED2=P1^2;sbit LED3=P1^3;sbit LED4=P1^4;sbit LED5=P1^5;sbit LED6=P1^6;sbit LED7=P1^7;void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数------------------------------------------------*/void main (void){//此方法使用bit位对单个端口赋值unsigned char i; //定义一个无符号字符型局部变量i 取值范围0~255P1=0x00;//这是为了关闭开发板上的数码管实际应用去掉P20=0; //这是为了关闭开发板上的数码管实际应用去掉P21=0; //这是为了关闭开发板上的数码管实际应用去掉CS88=0; //这是为了关闭开发板上的点阵实际应用去掉P1=0xFF;//P1口置1while (1) //主循环{for(i=0;i<10;i++) //加入for循环,表明for循环大括号中//的程序循环执行10次{LED0=0; //将P1.0口赋值0,对外输出低电平LED2=1;LED4=0;Delay(5000); //调用延时程序;更改延时数字可以更改延时长度;//用于改变闪烁频率LED0=1; //将P1.0口赋值1,对外输出高电平LED2=0;LED4=1;Delay(5000);}for(i=0;i<10;i++){LED0=0; //将P1.0口赋值0,对外输出低电平LED2=1;LED4=0;Delay(60000); //调用延时程序;更改延时数字可以更改延时长度;//用于改变闪烁频率LED0=1; //将P1.0口赋值1,对外输出高电平LED2=0;LED4=1;Delay(60000);}//主循环中添加其他需要一直工作的程序}}/*------------------------------------------------延时函数,含有输入参数unsigned int t,无返回值unsigned int 是定义无符号整形变量,其值的范围是0~65535------------------------------------------------*/void Delay(unsigned int t){while(--t);}。
Arduino⼊门笔记(4):⽤蜂鸣器演奏⾳乐并配有LED闪烁转载请注明:@⼩五义欢迎加⼊讨论群 64770604⼀、本次实验所需器材1、Arduino板 https:///item.htm?spm=a1z10.5-c-s.w4002-158********.16.AtgoEm&id=5450933403952、⽆源蜂鸣器:⼀种⼀体化结构的电⼦讯响器,分为有源蜂鸣器与⽆源蜂鸣器。
这⾥的“源”不是指电源,⽽是指震荡源,有源蜂鸣器内部带震荡源,所以只要⼀通电就会响,⽽⽆源内部不带震荡源,所以如果仅⽤直流信号⽆法令其鸣叫,必须⽤2K-5K的⽅波去驱动它。
从外观上看,两种蜂鸣器区别不⼤,但将两种蜂鸣器的引脚都朝上放置时,可以看出有绿⾊电路板的⼀种是⽆源蜂鸣器,没有电路板⽽⽤⿊胶封闭的⼀种是有源蜂鸣器。
如图:3、LED:⼀个4、杜邦线:若⼲5、⾯包板:⼀个⼆、⽆源蜂鸣器发声实验通过上⽹查询参数,得到其⼯作电压为5V,和arduino控制板数字端⼝输出电压⼀致,所以不需要接电阻,于是其与arduino的布线图和原理图如下:把下⾯的代码上传到arduino控制板上:int tonepin=6;//设置控制蜂鸣器的数字6脚void setup(){pinMode(tonepin,OUTPUT);//设置数字IO脚模式,OUTPUT为输出}void loop(){unsigned char i,j;while(1){for(i=0;i<80;i++)//输出⼀个频率的声⾳{digitalWrite(tonepin,HIGH);//发声⾳delay(1);//延时1msdigitalWrite(tonepin,LOW);//不发声⾳delay(1);//延时ms}for(i=0;i<100;i++)//输出另⼀个频率的声⾳,这⾥的100与前⾯的80⼀样,⽤来控制频率,可以⾃⼰调节{digitalWrite(tonepin,HIGH);delay(2);digitalWrite(tonepin,LOW);delay(2);}}}从上⾯的代码可以看出,for语句中的80、100控制了频率,delay控制了时长,类似与⾳乐中的节拍。
arduino案例Arduino案例。
Arduino是一款开源的电子原型平台,由一个简单的硬件和软件组成,旨在帮助学生、爱好者和专业人士快速、轻松地创建互动的物理设备。
它可以用来制作各种有趣的项目,比如智能家居系统、机器人、电子游戏等。
本文将介绍一些基于Arduino的实际案例,以帮助读者更好地了解和学习这一平台的应用。
首先,我们来看一个简单的Arduino案例,LED闪烁。
LED是一种常见的电子元件,可以发光。
通过Arduino控制LED的亮灭,我们可以制作出一个简单的闪烁灯。
首先,我们需要准备一块Arduino开发板、一颗LED、一根电阻和几根杜邦线。
将LED的长腿连接到数字引脚13,短腿连接到电阻,再将电阻的另一端连接到地。
接下来,我们在Arduino IDE中编写一个简单的程序,让LED在一定时间内交替亮灭。
通过这个案例,我们可以学习到如何使用Arduino控制外部设备,以及简单的电路连接和编程。
接着,我们来看一个稍复杂一点的案例,温度监测系统。
在这个案例中,我们将使用Arduino和温度传感器制作一个可以实时监测环境温度的系统。
首先,我们需要准备一块Arduino开发板、一个温度传感器(比如DS18B20)、一块LCD显示屏和一些杜邦线。
将温度传感器连接到Arduino的数字引脚,并将LCD显示屏连接到另外几个数字引脚。
然后,我们编写一个程序,让Arduino可以读取温度传感器的数值,并将结果显示在LCD屏幕上。
通过这个案例,我们可以学习到如何使用Arduino与传感器进行交互,以及如何实现简单的数据显示和处理。
最后,我们来看一个更加复杂和有趣的案例,遥控小车。
在这个案例中,我们将使用Arduino和无线模块制作一个可以远程控制的小车。
首先,我们需要准备一块Arduino开发板、两个直流电机、一个无线模块(比如HC-05蓝牙模块)、一块电池供电模块和一些杜邦线。
将电机连接到Arduino的数字引脚,并将无线模块连接到另外几个数字引脚。
6位循环彩灯课程设计。
一、课程目标知识目标:1. 学生能理解6位循环彩灯的电路原理,掌握基本电子元件的功能及运用。
2. 学生能运用编程软件,编写控制6位循环彩灯的程序,理解程序中的循环、条件判断等基本编程概念。
3. 学生了解6位循环彩灯在实际生活中的应用,如广告、装饰等。
技能目标:1. 学生能独立完成6位循环彩灯的电路搭建,提高动手操作能力。
2. 学生能运用编程软件,实现对6位循环彩灯的控制,培养编程思维和解决问题的能力。
3. 学生通过小组合作,学会与他人沟通、协作,共同完成任务。
情感态度价值观目标:1. 学生对电子制作产生兴趣,培养创新精神和实践能力。
2. 学生在实践过程中,树立自信心,勇于面对挑战,克服困难。
3. 学生认识到科技对生活的影响,增强社会责任感,关注科技发展。
本课程针对中学生设计,结合电子和编程知识,注重实践操作,旨在提高学生的动手能力、编程思维和团队协作能力。
通过本课程的学习,使学生能够将所学知识运用到实际生活中,激发他们对科学的热爱和探索精神。
二、教学内容本课程依据课程目标,结合教材内容,制定以下教学大纲:1. 电子元件的认识与使用- 了解常见的电子元件,如电阻、电容、二极管、三极管等。
- 学习如何读取电子元件的参数,正确使用电子元件。
2. 6位循环彩灯电路原理- 掌握6位循环彩灯的电路结构,理解电路工作原理。
- 学习如何搭建6位循环彩灯电路,并进行调试。
3. 编程控制6位循环彩灯- 学习编程软件的使用,如Arduino等。
- 掌握编程中的循环、条件判断等基本概念,编写控制6位循环彩灯的程序。
4. 6位循环彩灯应用案例分析- 分析6位循环彩灯在实际生活中的应用,如广告、装饰等。
- 学习如何根据实际需求设计6位循环彩灯的控制系统。
教学内容安排和进度如下:第1课时:电子元件的认识与使用第2课时:6位循环彩灯电路原理及搭建第3课时:编程控制6位循环彩灯(上)第4课时:编程控制6位循环彩灯(下)第5课时:6位循环彩灯应用案例分析及小组实践教学内容与教材紧密关联,旨在确保学生能够系统地掌握6位循环彩灯的相关知识,为后续的实际应用打下坚实基础。
做任何一个电路之前,一定要先了解电路中原件的参数,其工作电压,工作电流等。
第一个实验咱们用到的LED从网上查找资料得知,其工作电压一般为1.5-2.0V,工作电流一般为10-20ma,反向击穿电压为5V。
控制板逻辑电路供电为5V。
根据以上参数假设LED工作电压选用1.7,工作电流选用15ma,限流电阻=(总电压-LED电压)/电流,所以限流电阻=(5-1.7)/0.015=220Ω。
首先需要从arduino官方网站下载其编译软件,地址是笔者使用的平台为win7 32位,如果大家使用的是其他平台,按照对应的下载就可以。
下载回来的软件包解压缩后的目录结构如下图,arduino.exe是程序的启动文件,driver目录是控制板usb芯片驱动,usb接上控制板后如果要寻找驱动,把目录指定到这里就可以。
本次实验所用到的器材为一个面包板,一个LED,一个220Ω的电阻,几根导线,如下图:本次实验的连接方法如下图,LED两个针脚有一长一短,短的是连接GND,长的是连接正极。
在LED的长引脚前,需要添加一个220Ω的限流电阻。
连接数字5号接口。
实物连接如下图:通过面包板把个个电子器件连接好以后,接上USB线,设置好控制板型号、端口号。
程序语言先不详解,大家先照猫画虎对着抄,后面通过各个实验,将对不同命令进行详解。
编写程序前,先需要选择控制板的型号。
如下图:控制板型号选择好后,选择串口位置,笔者电脑的串口为COM3:串口具体是多少号可以到设备管理中进行查看,如下图:先把程序复制进去:int ledPin=5; //设定控制LED的数字IO脚void setup(){pinMode(ledPin,OUTPUT);//设定数字IO口的模式,OUTPUT 为输出}void loop(){digitalWrite(ledPin,HIGH); //设定PIN5脚为HIGH = 5V左右delay(2000); //设定延时时间,2000 = 2秒digitalWrite(ledPin,LOW); //设定PIN5脚为LOW = 0Vdelay(2000); //设定延时时间,2000 = 2秒}复制代码图中int;void setup等褐色的文字是系统命令,OUTPUT等蓝色文字是命令的功能开关,黑色文字是变量。
第2课闪烁LED
一、教材与学生情况分析
《闪烁LED》位于《Arduino创意机器人》课程的第一章《LED》的第二课,经过第一节课的学习,学生对Arduino机器人已经有了一定的了解,掌握了Arduino驱动的安装,但是限于编程能力以及硬件的搭建,虽然感兴趣,但无从下手。
通过这一节课的学习,学生真正的动手体验Arduino机器人的魅力——自己动手搭建硬件,编写程序,完成LED闪烁。
二、教学目标
1.通过制作闪烁LED,学会LED与Arduino控制器数字口的连接,了解编程的一般过程,掌握ArduBlock的基本模块和语法,熟悉循环结构,掌握数字口的输出和延时语句。
2.体验自然语言描述到程序编写的一般过程。
3.使用图形化的编程环境,激发对编程的学习兴趣。
重点:字口的输出、硬件的搭建教学难点:数字口的输出
四、教学流程
1.引入新课
教师:上节课我们已经体验了Arduino机器人的魅力,但是我们并没有自己动手去完成;而完成一个机器人作品,不仅要有硬件的搭建,还要有程序的编写,这节课我们来制作第一个机器人作品。
出示课题《闪烁LED》。
教学新课(1)LED 1)LED(Light Emitting Diode,发光二极管)是一种能够将电能转化为可见光的固态半导体器件,颜色有白绿蓝等;高低电平可以驱动LED的亮灭。
2)LED与Arduino的连接 LED发光模块有三根针脚,接线的时候黑线接GND,红线接VCC,绿线接数字口。
数字口0和 1不能接,数字口0和1用于Arduino与计算机通信。
(2)ArduBlock。
Arduino 入门教程(2)—LED 灯闪烁回顾一下 Lesson 1 的内容,我简单分了以下几点:了解 Arduino 软件编辑环境-- Arduino IDE如何通过 Arduino IDE 下载一个 Blink 程序"//" 和"/*...*/"的含义setup()和 loop()函数的重要性及作用pinMode(pin,mode)函数digitalWrite(pin,value)函数delay(ms)函数开始新的一课!这次我们还是同样要用 Blink 程序,有所不同的是,这里我们需要外接一个 LED 到数字引脚,而不是使用焊在 Arduino 板上的 LED 13(也就是“L”灯)。
便于我们能清晰的认识 LED 的工作原理及一些硬件电路的搭建。
STEP 1:需要准备的东西:1 ×DFduino UNO R3(以及配套 USB 数据线)STEP 2:硬件连接首先,从我们的套件中取出 Prototype shield 扩展板和面包板,将面包板背面的双面胶歇下,粘贴到 Prototype shield 扩展板上。
再取出 UNO,把贴有面包板 Prototype shield 扩展板插到 UNO 上。
取出所有元件,按照下图连接。
图中的蓝色与红色的线用彩色面包线连接,使用面包板上其他孔也没关系,只要元件和线的连接顺序与上图保持一致即可。
确保 LED 连接是否正确的,LED 长脚为+,短脚为-,完成连接后,给 Arduino 接上 USB 数据线,供电,准备下载程序。
STEP 3:输入代码打开 Arduino IDE,在编辑框中输入样例代码 1-1 所示代码。
(输入代码也是一种学习编程的过程,虽然提供代码的压缩包,但还是建议初学者自己输入代码,亲身体验一下。
)样例代码1-1:1.3. 描述:LED 每隔一秒交替亮灭一次5. int ledPin = 10;6. void setup() {8. }9. void loop() {14. }15.输入完毕后,点击 IDE 的“校验(Verify)”,查看输入代码是否通过编译。
实验四:核心板上的八个LED灯交替闪烁一、试验目的1、掌握NiosII 软核的定制流程;2、掌握NiosII 软件开发流程;3、熟识NiosII IDE 开发环境的使用;4、掌握基本的软件调试方法;原理:在本实验中,我们用软件来控制核心板上的八个LED灯交替闪烁。
二、硬件开发流程1、新建QuartusII 工程。
新建一个工程目录“F:/shiyan”,在此目录下建立一个名为“led”的QuartusII 工程,并新建一个顶层原理图,保存于工程中。
过程如下所示:(1)、创建QuartusII 工程目录。
在QuartusII的File菜单下,选择New project wizard..,如下图:在弹出的对话框中,填入以下内容:点击Next进入下一步,在family中选择Cyclone,在Available devices中选择EP1C12F324C8,然后点击finish,完成QuartusII 工程的创建。
(2)、创建顶层原理图在QuartusII的File菜单下,选择New,如下图:在弹出的界面中,选择Block Diagram/Schematic File,并点击OK,返回QuartusII界面,如下图所示:2、SOPC Builder系统的定制,用SOPC Builder 定制NiosII 处理器及其外设。
(1) 打开Tools SOPC Builder,如下图:要求指定系统名字,本例中我们输入ledshow。
按OK 进入SOPC 定制界面:(2) 选择目标板及时钟频率。
Target,本例选择Nios Evaluation Board Cyclone(ep1c12);选择时钟频率,Clock(MHz):本例选24.0;选择目标器件系列,Target Device Family:本例选Cyclone。
在SOPC 定制界面的左边,我们可以看到有很多功能模块,这些功能模块用户可以按照需要添加到所设计的系统中(3) 添加CPU元件。
实验器件:前天,我们已经玩了面包板上的led,大家应该尝试了各种闪法,当然你肯定不会满足于一盏灯的闪烁,今天我们就来演示怎么好多好多的led一起闪。
第一步当然是设计电路,我们先构思好自己的电路设计,下面就是我设计的电路(可能大家发现了,电路图上的led有个小弯角的是正极,对应真实LED比较长的那只脚)电路设计就是这样了,为什么我空出了0和1两个接口呢?这两个接口其实共享了板子的串口,tx和rx,也就是说,如果在这两个接口上连接led的话,就无法进行正常的程序下载了。
所以,一般我们会空出来不使用,一定要使用的情况下,也是先下载好程序然后再连接电路。
然后我们来面包板上按照电路图来搭建电路。
[大家可以看到,实际的电路不一定像电路图设计上那么理想,所以我们会进行变通,我们的实际电路就是这样,将负极全部接到了板子的上部,然后将上部的负极和下部的负极联通,然后接到板子的GND(地线)接口,完成电路。
然后我们连接好板子的USB接口,编译下载下面的程序ARDUINO 代码复制打印1./*2.作者:极客工坊3.时间:2012年5月24日4.IDE版本号:1.0.15.发布地址:6.作用:让六个led依次点亮熄灭7.*/8.void setup()9.{10.for(int i=2; i<=7; i++)//通过循环的方式设置2-7号引脚为输出状态11.{12.pinMode(i,OUTPUT);13.}14.}15.void loop()16.{17.for(int x=2; x<=7; x++)//通过循环的方式依次让每个引脚的led在1秒内完成明灭18.{19.digitalWrite(x,HIGH);20.delay(500);21.digitalWrite(x,LOW);22.delay(500);23.}24.}下载好后就可以看见led每半秒一个灯的速度依次闪动,这个就是传说中的流水灯,当然,闪烁的方法千变万化,LED的摆放方式也是千变万化,希望大家自己多思考多研究,将自己的变种多灯闪烁的视频和程序发帖与我们分享。
SmartArduino1.Arduino控制LED灯闪烁QQ:1234337721.1问题描述:如何利用Arduino控制板子上的LED灯不停地闪烁?通过这个非常简单的Arduino控制实验,将对Arduino的编程环境及其语言有所了解。
其原理非常简单,就是Arduino板子上本身带有的LED灯,其对应的端口为控制板上的13端口。
利用Arduino控制板不断地使13端口的电压由低到高(或由高到低)循环变化。
从而使得其对应的LED灯由暗到亮(或由亮到暗)的变化,LED灯如此看起来就是在不停地闪烁。
当然,我们也可以在Arduino控制板的其它端口另外添加一个LED灯来实现此实验的目的,但需要更多的材料。
1.2所需装备为了实现Arduino控制板13端口的LED灯不停地闪烁,只需要以下装备:表1-1:所需材料所需材料序号名称数量作用备注1 Arduino软件1套提供IDE环境最新版本1.052 Arduino UNO开发板1块控制主板各种版本均可3 USB线1条烧录程序随板子配送4 杜邦线若干条连接组件可选5 发光二极管(LED)1个 LED闪烁可选6 电阻220欧限流可选7 面包板可选(1)Arduino软件目前,Arduino的IDE (Integrated Development Environment)集成开发环境官网已经更新到1.05版本,可在官网/en/Main/Software下载到。
安装完成后即可使用。
由于后面的实验都是基于此版本进行的,在后面将不再提此开发平台;(2)Arduino UNO开发板由于开源,Arduino的开发板有很多,大小、颜色虽不同,但完成的主要功能都是一样的。
随便选择一块即可,主要有如图1-1所示。
其主要功能介绍请参考认识Arduino 部分内容.(3)USB线一般这是随Arduino控制板一起配送的,其主要作用是将代码烧录到Arduino控制板中,如图1-2所示。
arduino学习笔记4–利用数组使6个led闪烁
通过上一节学习,知道了怎样使用循环对6个led进行控制,我们发现LED灯的端口是连续的,是有规律的,若端口号是杂乱无章的,如2、3、6、11能不能使用循环来实现了?一、实验现象
用控制板来实现6个端口号没有规律的LED闪烁,展示让无序的LED一个接一个按顺序亮起的方法。
灯会按照顺序先从数组头的亮到数组尾,然后反过来由尾到头。
和从前例子不同的是,本例的LED不是必须连续的。
你可以任意改变LED连接的引脚和顺序。
只要在数组中定义即可。
二、实验器材:控制板、LED6个、电阻6个、面包板和杜邦线。
三、实验所用函数及语句
Array 数组
1.数组是一种可访问的变量的集合。
2.创建(声明)一个数组
类型数组名[ 数组长度 ] ;
例如:int a[2];整数数组a的长度为2
Int a[2]={3,11};或Int a[ ]={3,11};整数数组a的长度为2,其值分别为3和11
3.访问数组
①.数组从0位开始索引(最大索引数等于声明数组大小-1)。
②.从数组中访问一个值: x = myarray1 [ 4 ];
③数组和循环:数组往往在for循环中进行操作,循环计数器可用于访问每个数组元素。
for (int i=0; i<5 ;i++) {
pinMode(a[i],OUTPUT );
}
四、实验电路
五、编写程序
int timer = 100; // 数字越大间隔时间越长,整个程序都能用,叫全局变量int led[] = {2, 7, 4, 6, 5, 3}; // LED引脚编号数组
int js = 6; // 引脚个数(应和LED引脚编号数组相同)
void setup() {
for (int i = 0; i < js; i++) {//用for循环初始化引脚:
pinMode(led[i], OUTPUT); // 数组元素取出时应该是从0开始到js - 1结束。
}
}
void loop() {
for (int i= 0; i < js; i++) {
digitalWrite(led[i], HIGH);
delay(timer);
digitalWrite(led[i], LOW);
}
for (int i= js - 1; i >= 0; i--) {
digitalWrite(led[i], HIGH);
delay(timer);
digitalWrite(led[i], LOW);
}
}。