找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6621|回复: 38
打印 上一主题 下一主题
收起左侧

素人学习Aduino编程的简单办法

[复制链接]
跳转到指定楼层
楼主
本帖最后由 eagler8 于 2019-5-7 13:37 编辑

在开源硬件领域,偶只是素人一枚,完全的新手。为促进自己学习Arduino技术,一个笨办法就是记录各项实验的情况。这当中肯定会有许多不懂的地方或是自以为是,还请各位老师多多赐教为盼。


学习Arduino有不同的方法,使用扩展板相对会比较简便一些。利用我手头的一块“Aduino UNO 9in1 扩展板(Eagler8)”(见上图),它上面集成了九种不同的开源模块和五个扩展的外接端口,发现挺便利的就能进行18种的Arduino示例实验。




评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:513258 发表于 2019-5-6 19:30 | 只看该作者
Arduino官网Arduino1.8.9中文版下载页面 https://www.arduino.cc/en/Main/Software





回复

使用道具 举报

板凳
ID:513258 发表于 2019-5-6 19:31
Arduino中文社区官网Arduino1.8.9中文版下载页面 https://www.arduino.cn/thread-5838-1-1.html



地板
ID:513258 发表于 2019-5-6 19:32 | 只看该作者
实验硬件准备
1、SG90 9G舵机一只,兼容红外遥控器一只








回复

使用道具 举报

5#
ID:513258 发表于 2019-5-6 19:35 | 只看该作者
2、Aduino UNO 9in1 实验扩展板(Eagler8)一块




回复

使用道具 举报

6#
ID:513258 发表于 2019-5-6 19:36 | 只看该作者
3、Arduino UNO原装板及UNO R3黄金板(国产兼容板)各一块
为了实验各种不同情况









回复

使用道具 举报

7#
ID:513258 发表于 2019-5-6 21:32 | 只看该作者
实验硬件都齐了


回复

使用道具 举报

8#
ID:513258 发表于 2019-5-6 21:33
Aduino UNO 9in1 实验扩展板(Eagler8)资料1、Eagler8参数:
尺寸--70*53mm
平台--Arduino
硬件--Arduino UNO及UNO R3兼容板


9#
ID:513258 发表于 2019-5-6 21:34 | 只看该作者
电原理图


回复

使用道具 举报

10#
ID:513258 发表于 2019-5-6 21:35 | 只看该作者
Eagler8模块与板载端口:
复位按键(REST)
10K旋转电位器模块(A0)
2路SW按键模块(D2、D3)
Light亮度传感器模块(A1)
LM35D温度传感器模块(A2)
Buzzer无源蜂鸣器模块(D5)
DHT11温湿度传感器模块(D4)
ER Receiver红外接收模块(D6)
1路Analog Port模拟量端口(A3)
RGB全彩LED模块(D9、D10、D11)
2路Digital Port数字量端口(D7、D8)
1个TTL串口(可接入蓝牙或WIFI模块等)
2路3mm LED模块(红色D12、蓝色D13)
1个双向同步串行总线I2C接口(A4 SDA及A5 SCL,可接显示屏等)


回复

使用道具 举报

11#
ID:513258 发表于 2019-5-7 13:38 | 只看该作者
有了这块超棒的9in1扩展板,为了提高学习Arduino的效率,今天开始尝试Arduino 1.8.9与Mind+ V1.53相结合的方式,就是把原来的代码编程(会让新人害怕的东西)和直观的图形编程,二者配合起来学习及做实验,都不偏颇。




回复

使用道具 举报

12#
ID:513258 发表于 2019-5-7 13:39 | 只看该作者
在网上搜索了各种图形编程软件,比如Ardublock、S4A、Mixly米思齐、乐幻WeMake、小喵KittenBlock和慧编程mBlock5等,经过简单比较,最后还是选择了DF创客社区的Mind+,主要是与Arduino UNO兼容的比较好,可以自动生成代码,最新版本是V1.5.3。




回复

使用道具 举报

13#
ID:513258 发表于 2019-5-7 13:40 | 只看该作者
Mind+ 程序下载地址:
链接:https://pan.baidu.com/s/1Y4EVVvid7vCqEE00LnqO8A      提取码:wn48


回复

使用道具 举报

14#
ID:513258 发表于 2019-5-7 13:41 | 只看该作者
开始实验之前,先下载扩展板配套的示例程序,将解压缩的 Eagler8 文件夹拷贝到 Arduino IED 安装目录下的 libraries 文件夹内。启动 Arduino IDE,打开文件‐-示例‐-Eagler8,即可调用18个示例实验程序。Eagler8扩展板示例18种编程程序下载地址:
链接:https://pan.baidu.com/s/1ih2UlZmwTP17IvBPI4ToHQ        提取码:bnm7



回复

使用道具 举报

15#
ID:513258 发表于 2019-5-7 13:42 | 只看该作者
把Eagler8扩展板插在Aduino UNO上






回复

使用道具 举报

16#
ID:513258 发表于 2019-5-7 13:42 | 只看该作者
LED 的实验有四项
01 Blink:D13蓝色 LED 闪烁 ,载入示例程序




回复

使用道具 举报

17#
ID:513258 发表于 2019-5-7 13:43 | 只看该作者
代码
/*
  Eagler8实验程序列表
  01 Blink:D13蓝色 LED 闪烁
*/
int led = 13;
void setup() {
  pinMode(led, OUTPUT);
}
void loop() {
  digitalWrite(led, HIGH);
  delay(1000);            
  digitalWrite(led, LOW);
  delay(1000);            
}

回复

使用道具 举报

18#
ID:513258 发表于 2019-5-7 13:44 | 只看该作者
Mind+ 图形编程如下




回复

使用道具 举报

19#
ID:513258 发表于 2019-5-7 13:45 | 只看该作者
分别上传,都通过了,见视频




回复

使用道具 举报

20#
ID:513258 发表于 2019-5-7 18:01 | 只看该作者
听了台湾佑来老师的视频课,才明白要点亮一只LED灯,对于学习Arduino编程,迈出这一步真的挺不容易。和用普通电子电路开关灯不同,开源硬件需要解决软件、硬件和驱动等不少问题,才能用程序点亮LED。
实验的第二个程序,是控制二只LED灯交替闪烁,D12端口接红色LED,D13端口接到蓝色LED,间隔延时1000毫秒(1秒)。
启动 Arduino IDE,打开文件‐-示例‐-Eagler8,即可调用18个示例实验程序中的第2个---Blink2。



回复

使用道具 举报

21#
ID:513258 发表于 2019-5-7 18:01 | 只看该作者
点工具,选择主板和端口后,上传成功见下图




回复

使用道具 举报

22#
ID:513258 发表于 2019-5-7 18:02 | 只看该作者
代码如下:
/*
Eagler8实验程序列表
02 Blink2:D12、D13红蓝色 LED 交替闪烁
*/
int led1 = 12;
int led2 = 13;
void setup() {               
  pinMode(led1, OUTPUT);   
  pinMode(led2, OUTPUT);
}
void loop() {
  digitalWrite(led1, HIGH);
  delay(1000);            
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);
  delay(1000);
  digitalWrite(led2, LOW);
}

回复

使用道具 举报

23#
ID:513258 发表于 2019-5-7 18:03 | 只看该作者
打开图形编程Mind+,先连接设备,我这里是COM3(可在电脑设备端口中查询)。




回复

使用道具 举报

24#
ID:513258 发表于 2019-5-7 18:03 | 只看该作者
而后在扩展模块中,打开主控板项,选择Arduino UNO。




回复

使用道具 举报

25#
ID:513258 发表于 2019-5-7 18:04 | 只看该作者
使用Arduino UNO的初始页面是这样的(选择了上传模式)。




回复

使用道具 举报

26#
ID:513258 发表于 2019-5-7 18:05 | 只看该作者
第一步,设置D12脚输出高电平,D13脚输出低电平,意思是红灯(12)亮,蓝灯(13)灭;




回复

使用道具 举报

27#
ID:513258 发表于 2019-5-7 18:05 | 只看该作者
第二步,延时1秒;
第三步,反过来设置D12脚输出低电平,D13脚输出高电平;
第四步,再延时1秒,并循环执行,实现红蓝灯间隔1秒交替闪烁。图形编程的右边是自动生成的代码。



回复

使用道具 举报

28#
ID:513258 发表于 2019-5-7 18:06 | 只看该作者
点右上方上传按钮,上传成功。








回复

使用道具 举报

29#
ID:513258 发表于 2019-5-7 18:07 | 只看该作者
本实验02 Blink2:
D12、D13红蓝色 LED 交替闪烁的效果视频



回复

使用道具 举报

30#
ID:513258 发表于 2019-5-9 14:47 | 只看该作者
第三个LED 实验是模拟爆闪警灯,启动 Arduino IDE,打开文件‐-示例‐-Eagler8,调用18个示例实验程序中的第3项---Blink3,源程序如下:/*
Eagler8实验程序列表
03 Blink3:模拟爆闪警灯
*/

int led1 = 12;
int led2 = 13;
int i,j;
void setup() {               
  pinMode(led1, OUTPUT);     
  pinMode(led2, OUTPUT);
}
void loop() {
  for(i=0;i<10;i++){
  digitalWrite(led1, HIGH);  
  delay(30);              
  digitalWrite(led1, LOW);
  delay(40);
  }  
  for(i=0;i<10;i++){
  digitalWrite(led2, HIGH);  
  delay(30);
  digitalWrite(led2, LOW);  
  delay(40);
  }
}


回复

使用道具 举报

31#
ID:513258 发表于 2019-5-9 14:49 | 只看该作者
有如上的示例程序,上传成功就看到了二个LED分别爆闪



难在理解这程序,走了一点小弯路,就是一下子搞不懂“for”的结构控制,查了一下《Arduino-语法手册》



只是懂了大致意思.....


回复

使用道具 举报

32#
ID:513258 发表于 2019-5-9 14:50 | 只看该作者
借助自动生成功能,最终还是在Mind+上通过了,见下图












回复

使用道具 举报

33#
ID:101726 发表于 2019-5-9 16:16 | 只看该作者
淘宝上没找到
回复

使用道具 举报

34#
ID:513258 发表于 2019-5-9 18:21 | 只看该作者
第三个LED 实验是模拟爆闪警灯,启动 Arduino IDE,打开文件‐-示例‐-Eagler8,调用18个示例实验程序中的第3项---Blink3,源程序如下:

/*
Eagler8实验程序列表
03 Blink3:模拟爆闪警灯
*/


int led1 = 12;
int led2 = 13;
int i,j;
void setup() {               
  pinMode(led1, OUTPUT);     
  pinMode(led2, OUTPUT);
}
void loop() {
  for(i=0;i<10;i++){
  digitalWrite(led1, HIGH);  
  delay(30);              
  digitalWrite(led1, LOW);
  delay(40);
  }  
  for(i=0;i<10;i++){
  digitalWrite(led2, HIGH);  
  delay(30);
  digitalWrite(led2, LOW);  
  delay(40);
  }
}

回复

使用道具 举报

35#
ID:513258 发表于 2019-5-9 21:51 | 只看该作者

搜9合一多功能扩展板就行
回复

使用道具 举报

36#
ID:513258 发表于 2019-5-9 21:55 | 只看该作者
04 Breath_LED:
D9 全彩 LED 模拟红色呼吸灯源程序:

/*
Eagler8实验程序列表
04 Breath_LED:D9 全彩 LED 模拟红色呼吸灯
*/

#define LED 9
int i = 0;

void setup()
{
  pinMode(LED,OUTPUT);
}
void loop()
{
for(i=0;i<255;i++)
  {
    analogWrite(LED,i);
    delay(15);
  }
  for(i=255;i>0;i--)
  {
    analogWrite(LED,i);
    delay(15);
  }
  analogWrite(LED,0);
  delay(1000);
}




回复

使用道具 举报

37#
ID:513258 发表于 2019-5-9 21:56 | 只看该作者
在手册上查到 analogWrite( )




回复

使用道具 举报

38#
ID:513258 发表于 2019-5-9 21:57 | 只看该作者
使用 for 循环使LED 产生渐亮渐灭的效果,i++和i--大概是递增与递减的意思,先用随机数来试试......








回复

使用道具 举报

39#
ID:513258 发表于 2019-5-9 21:58 | 只看该作者
找到了变量的模块,第一步,实现了递增逐渐亮......








回复

使用道具 举报

40#
ID:513258 发表于 2019-5-9 21:58 | 只看该作者
最后实验效果基本一致,只是生成的代码有点不一样





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表