当前位置:首页 > 技术 >

arduino缺点(arduino开发stm32的缺点)

来源:原点资讯(www.yd166.com)时间:2023-03-16 09:52:29作者:YD166手机阅读>>


先把程序复制进去:

  1. int ledPin=5; //设定控制LED的数字IO脚
  2. void setup()
  3. {
  4. pinMode(ledPin,OUTPUT);//设定数字IO口的模式,OUTPUT 为输出
  5. }
  6. void loop()
  7. {
  8. digitalWrite(ledPin,HIGH); //设定PIN5脚为HIGH = 5V左右
  9. delay(2000); //设定延时时间,2000 = 2秒
  10. digitalWrite(ledPin,LOW); //设定PIN5脚为LOW = 0V
  11. delay(2000); //设定延时时间,2000 = 2秒
  12. }

复制代码


图中int;void setup等褐色的文字是系统命令,OUTPUT等蓝色文字是命令的功能开关,黑色文字是变量。
程序写好以后点击编译按钮进行编译。

编译完成后会显示出来编译后的文件大小,本次编译出来的程序大小为1026字节。

然后把编译好的程序下载到arduino控制板上,点击下载按钮。

下载完成后会有提示

把所有的ledpin换成xxx试试,一样可以滴~~~ledpin只是自己定义的一个名字,作用只是方便识别辨认。

本次实验效果如下,闪烁着光芒的灯。。。
http://player.youku.com/player.php/sid/XMjg0MTA0Mzg4/v.swf
总结:
int;void setup等褐色文字是系统命令,OUTPUT等蓝色文字是系统命令的功能开关,黑色文字是变量。
在"int ledpin=5"中;设置了LED的数字IO脚,ledpin仅仅是5号数字端口自定义出来的名字,变成xxx等都可以。对于多脚IO操作的程序中,为每一个引脚定义名字是有必要性的,程序复杂后方便功能识别。
arduino学习笔记16六灯闪烁实验

通过上一节学习,知道了怎样让一个led进行闪烁,下面的实验会对六个led进行控制,先看硬件连接图。

arduino缺点,arduino开发stm32的缺点(21)

arduino缺点,arduino开发stm32的缺点(22)


按照上面的硬件连接方法接好后,咱们来测试两段程序,看看其中的差别。通过这两段程序介绍一下arduino的语言轮廓。

  1. //设置控制Led的数字IO脚
  2. int Led1 = 1;
  3. int Led2 = 2;
  4. int Led3 = 3;
  5. int Led4 = 4;
  6. int Led5 = 5;
  7. int Led6 = 6;
  8. //led灯花样显示样式1子程序
  9. void style_1(void)
  10. {
  11. unsigned char j;
  12. for(j=1;j<=6;j )
  13. {
  14. digitalWrite(j,HIGH);
  15. delay(200);
  16. }
  17. for(j=6;j>=1;j--)
  18. {
  19. digitalWrite(j,LOW);
  20. delay(200);
  21. }
  22. }
  23. void setup()
  24. {
  25. unsigned char i;
  26. for(i=1;i<=6;i )//依次设置1~6个数字引脚为输出模式
  27. pinMode(i,OUTPUT);//设置第i个引脚为输出模式
  28. }
  29. void loop()
  30. {
  31. style_1();//样式1

  32. }

复制代码

上面代码的效果视频如下:
http://player.youku.com/player.php/sid/XMjgzOTA0Mjk2/v.swf

  1. //设置控制Led的数字IO脚
  2. int Led1 = 1;
  3. int Led2 = 2;
  4. int Led3 = 3;
  5. int Led4 = 4;
  6. int Led5 = 5;
  7. int Led6 = 6;
  8. //led灯花样显示样式1子程序
  9. void style_1(void)
  10. {
  11. unsigned char j;
  12. for(j=1;j<=6;j )
  13. digitalWrite(j,HIGH);
  14. delay(200);
  15. for(j=6;j>=1;j--)
  16. {
  17. digitalWrite(j,LOW);
  18. delay(200);
  19. }
  20. }
  21. void setup()
  22. {
  23. unsigned char i;
  24. for(i=1;i<=6;i )//依次设置1~6个数字引脚为输出模式
  25. pinMode(i,OUTPUT);//设置第i个引脚为输出模式
  26. }
  27. void loop()
  28. {
  29. style_1();//样式1

  30. }

复制代码

上面代码的效果视频如下:
http://player.youku.com/player.php/sid/XMjg0MDU5NjQ0/v.swf
通过下载测试,发现第一段程序是led 1-6逐个点亮,然后从6-1再逐个熄灭如此循环。
第二段程序是6个灯同时亮,然后再6-1逐个熄灭如此循环。下面对产生不同效果的代码进行分析。
下面这段代码代表的for语句循环的是,是把j点亮,然后再延迟200毫秒,然后再循环。形成的效果就是6个灯相隔200毫秒逐步被点亮。

  1. for(j=1;j<=6;j )
  2. {
  3. digitalWrite(j,HIGH);
  4. delay(200);
  5. }

复制代码

下面这段代码其实是不规范写法,for命令表达要求一定要有{}循环,如果没有标出{},编译时就会自动对下一句加上{}。如果代码量很大,出问题是查找起来会非常辛苦。

  1. for(j=1;j<=6;j )
  2. digitalWrite(j,HIGH);
  3. delay(200);

复制代码

正确的写法应该是下面这个样子

  1. for(j=1;j<=6;j ) {
  2. digitalWrite(j,HIGH);
  3. }
  4. delay(200);

复制代码

六个灯逐个被点亮,然后再延时200毫秒进入下一句。因为六灯逐个点亮的速度非常快,所以看上去像一起亮的。
void(无类型)在arduino中是数据类型的一种,通常用来代表一个事件。如果控制过程比较简单void一般无需定义,直接使用

  1. void setup()
  2. {
  3. // ...
  4. }
  5. void loop()
  6. {
  7. // ...
  8. }

复制代码

代表事件的开始与事件的循环。
如果控制过程比较复杂,一般就要设置多个子事件,把复杂的过程进行分解,每一个子事件定义为一个void数据。
把以下代码上传上去,看看led灯是如何工作的。

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

复制代码

上面这段代码的效果视频如下:
http://player.youku.com/player.php/sid/XMjg0MjA2Njk2/v.swf
上面的代码分为4个子事件,样式1,样式2,样式3和闪烁。
闪烁:1-6号灯亮,延时200ms,1-6号灯熄灭,延时200ms。效果视频如下:
http://player.youku.com/player.php/sid/XMjg0MjAxMDgw/v.swf
样式1:1-6号灯逐个点亮,然后6-1逐个熄灭。效果视频如下:
http://player.youku.com/player.php/sid/XMjgzOTA0Mjk2/v.swf
样式2:3,4号灯先亮,然后2,5号再亮,最后1,6号两。接着1,6号灯熄灭,再2,5号熄灭,最后3,4号熄灭。效果视频如下:
http://player.youku.com/player.php/sid/XMjg0MjAwNTA0/v.swf
样式三:3,4号灯亮,然后3,4号熄灭2,5号亮,然后2,5号熄灭1,6号亮,再1,6号熄灭2,5号亮,最后2,5号熄灭3,4号亮。效果视频如下:
http://player.youku.com/player.php/sid/XMjg0MjAwNzc2/v.swf
通过以上4种事件的组合,就可以做出来各种效果。
arduino学习笔记17蜂鸣器实验

本次实验所用的为下图所示的这种小型无源蜂鸣器

arduino缺点,arduino开发stm32的缺点(23)

arduino缺点,arduino开发stm32的缺点(24)

栏目热文

arduino实战100例详解(arduino蓝牙模块连接教程)

arduino实战100例详解(arduino蓝牙模块连接教程)

每个玩单片机的人,包括Arduino,肯定是需要攀登PID高峰的,所谓高峰,是因为它确实有点难度。如下这个视频,浅显易懂...

2023-03-16 09:36:56查看全文 >>

100个arduino创意项目(arduino创意项目课程)

100个arduino创意项目(arduino创意项目课程)

国外创客总结新鲜出炉:2019年至2020年10大令人惊叹的Arduino项目,每一项都十分炫酷!编者希望这份总结可以为...

2023-03-16 09:21:04查看全文 >>

arduino有前途吗(学arduino以后可以干什么)

arduino有前途吗(学arduino以后可以干什么)

笔者从事电子硬件研发有几年了,可以很明确的告诉你,机会肯定是有的,就看你怎么去学了。虽然你是科班出来的,但都快10年了,...

2023-03-16 09:27:36查看全文 >>

智能水表怎样更换电池(智能水表怎么换电池视频)

智能水表怎样更换电池(智能水表怎么换电池视频)

在过年这段时间,小编接到很多售后使用问题,咨询到最多的就是,智能水表提示电池没有电了,叫用户及时更换电池,避免用水受到影...

2023-03-16 09:58:00查看全文 >>

水表怎么换电池(水表电池多久更换一次)

水表怎么换电池(水表电池多久更换一次)

这几年,很多新建的小区公寓使用的都是智能水表,根据智能水表的型号不同,使用的电池也不一样,用户在使用过程中如出现水表中有...

2023-03-16 09:53:14查看全文 >>

arduino正确发音(arduino正确发音播放)

arduino正确发音(arduino正确发音播放)

Arduino精彩系列教程:Arduino教程-开篇Arduino教程-点亮LED神灯Arduino教程-让LED神灯闪...

2023-03-16 09:27:09查看全文 >>

arduino最全中文教程(arduino教程合集)

arduino最全中文教程(arduino教程合集)

解决了接口问题,下一步让Arduino拥有网络通信能力,我们就可以用它做很多事情了:写一个小说阅读器、作为电脑扩展屏……...

2023-03-16 09:33:35查看全文 >>

为什么不建议学嵌入式(嵌入式工资一览表)

为什么不建议学嵌入式(嵌入式工资一览表)

为什么不要学习嵌入式?嵌入式的学习门槛是比较高的,但是更多的要求是搜集一些解决问题的方法,说明白一点就是非常非常吃经验。...

2023-03-16 09:35:24查看全文 >>

学习arduino好还是单片机好(arduino和51单片机哪个简单)

学习arduino好还是单片机好(arduino和51单片机哪个简单)

很多初学者和我当初一样不知道arduino和单片机的区别。其实我也是学完才知道arduino的存在,还好当初是直接学的5...

2023-03-16 09:17:50查看全文 >>

arduino学了对单片机有一定帮助吗(学习arduino好还是单片机好)

arduino学了对单片机有一定帮助吗(学习arduino好还是单片机好)

一.Arduino你知道多少?很多新手小白在学习单片机的时候可能会觉得单片机开发怎么这么麻烦在刚开始学习51的时候,搭建...

2023-03-16 09:30:46查看全文 >>

文档排行