最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

当前位置: 主页 > 最新DIY >

想学单片机但又觉得难的来,教你自制arduino,2月12号更新图形编

时间:2017-06-13 21:11来源:数码之家 作者:smfox10 点击:
放心有问必答,呵呵,在论坛一起讨论嘛!
    先说下我的单片机之路,大家嫌啰嗦跳过这里,看下下楼直接制作arduino。我这里想说明只要有决心谁都能学会单片机。当你在DIY区的东西折腾过了,就应该玩玩单片机了
想学单片机但又觉得难的来,教你自制arduino,2月12号更新图形编程视频,春节愉快!~
想学单片机但又觉得难的来,教你自制arduino,2月12号更新图形编程视频,春节愉快!~
    我是2010年加入数码之家这个大家庭的,我还记得当时加入要邀请码的,然后终于那天注册开放了,兴奋死了,本来在DIY区做一名潜水员的,看着各位大大的创意制作,首先学会了做移动电源,然后了解什么是白光和做白光电烙铁
    大家是不是也是这样呢?呵呵,然后后来突然有一天,在首页看到一个单片机做的跑马灯图片,然后看完那个霹雳灯的视频我就中毒了,然后从此在单片机区流连,我还记得那天网上,有个坛友发个帖子说是做了一个51单片机最小系统,我非常有兴趣想学,想自己D个。那个51单片机最小系统看来是很简单,但是不瞒大家当时坛友发了很清楚的电路图,我一点都看不懂,特别是那些电子符号什么的,什么晶振的,什么电容的。因为本身我一点电子基础都没有,没办法,只能坚持下,在单片机区多看帖子,然后渐渐就有点感觉,原来那些电子符号是实物的一个表达,为了简化实物图。那时候很笨(现在也很笨)我就把别人做单片机最小系统的零件抄下来,抄到纸上,因为那时候蛮多关于最小系统的帖子,我就一个个抄下来,对照下,那些元件是必须的(因为很多坛友说是最小系统,其实还加了一些元件下去)。抄着抄着,自己也尝试画下电路图,有时候上课也画下课也在那里画。同学都说我入魔了。
    终于在那个假期决定了学单片机,学单片机肯定要买单片机和零件呀。这是我又在论坛搜索下各位大大是怎么学的,有些人推荐直接上开发板,有些人推荐用面包板,说开发板的大大说做用开发板实验快,但是我看到那个开发板电路图,跟我平时画的那个最小系统我简直就晕了,一点头绪都没有,偶尔一次邂逅上了杜老师的单片机视频,然后就买了杜老师的套件来学习。跟我同宿舍的同学则买了一块开发板。本来我们想学好了可以交换来学。但是最后还是你学你的,我学我的。也算入了门吧。有些人说杜老师的东西贵,我觉得呢,杜老师的入门视频对于入了门的单片机爱好者可能没什么用,但是对于一个门外汉来说真的将学习进度加快了,所以我觉得还是值了。虽然很多东西没讲到,但是大概知道怎么去查找答案,给你指引了方向。
    虽然现在的水平还是很菜,额,不过我觉得是爱好也就够用了,现在有空还在吸取各位大大的单片机经验,感谢各位大大的宝贵经验和精彩制作和耐心解答,使我这个菜鸟一直在成长。
    学到一定程度,有时候是非常愿意给大家分享一下经验的。本来想写个单片机教程,额,怕水平太水了,给大家笑话。再之,已经有两位大大写了很好的教程,确实非常不错!如果当初我看到了,呵呵,又可以省一点费用咯。有兴趣学单片机的友友,可以去跟着他们的教程他学下。
    前面也有两个大大写了单片机的教程:
    第一个是小七同志的

    有这两个大大的单片机教程我就不再班门弄斧了。我决定弄个arduino小白教程,有人说arduino是单片机中的切糕,这个确实不错。但是它的易用性实则让人难以抗拒。可以这么说小学生也能学得会的。为什么?因为arduino有个图形编程模式,即使你不懂编程,你也能用上arduinoArduino与单片机到底哪个好,真的很难说。我只能说arduino就像个玩具,但是这个玩具是全世界性的,它的东西由全世界的arduino的爱好者互相添砖添瓦,使单片机标准化。
    好了说了那么多废话,如果你看完以上的字,恭喜你坛友你非常有耐性!你如果跟着我的教程,觉得能学会arduino,因为它本身就很简单,我会写的很小白很小白,因为我本身就是小白如果有说错的地方,请各位大大指正。因为这个教程很多图片,大家都知道上传多图很麻烦,又要改大小什么的,但是我会尽量更新快点,不要让我的寒假闲着。

好了说了很多废话,首先教大家做个arduino,亲手D个可以节约成本这个帖子其实是答应了坛上某个坛友而写的。

首先你要准备的东西:
零件:
1、Atmega8(或者Atmega168又或者Atmega328)X1
2、洞洞板X1
3、16M晶振X1
4、22pf陶瓷电容X2
5、104陶瓷电容X1
6、10K电阻
7、按键
8、4个铜柱配螺母

下载工具:
Usb asp
FT232RL USB 转串口线(cp2102、pl2303也可以)

软件:
安装Usbasp驱动 http://dl.vmall.com/c010f6rt63
安装FT232驱动(自己对应安装)
安装arduino软件http://arduino.cc/en/Main/Software
progisp http://dl.vmall.com/c0jm17mt54(之前漏写了,给大家添麻烦了)


arduino uno R3电路图 arduino_Uno_Rev3-02-TH.zip (139 K) 下载次数:51 



我们按这个电路图焊接一个arduino

为了照顾看电路图头大的友友(当初我就是这样...),我弄了个很笨的电路图,大大莫笑,希望坛友看得懂


好了,相信动手能力非常强的各位友友焊接这个arduino绝对不是问题。由于我自己焊接得arduino是之前焊接的,步骤图没照下来,大家见谅
焊好最小系统部分,我们再焊接一个usb asp下载接口,那个针脚与usbasp相连




焊接好了,我们把usb asp插到arduino板子上准备烧写熔丝位和bootloaders,当然usb asp要插在电脑上 
我们打开progisp软件
下面看图操作即可
如果你的arduino焊接正确的话,是可以正常读出来的。

前提你已经装好arduino软件

这样就烧写玩熔丝位了!





好了,你的arduino的熔丝位和bootloaders都弄好了,可以使用了。
我们用FT232usb转串口下载器连接好arduino和电脑,这么准备下载。



打开arduino软件,先设置两个地方,一个是你的板子,另外是你的串口号
选板子:




选串口号,通常都是最后一个的,或者你去你的电脑设备管理器查看下你装usb转串口驱动时(具体操作我的电脑右键》管理》设备管理器》串口),系统给你分配时COM几。我是com4。所以我在软件就要这样选择,如图所示:




好了都是设置好了,其实上面那两个设置只需设置一次就可以,以后除非你换板子,才重新选。


好了我们来试下做个1602液晶屏实验
打上代码,其实你复制也是可以的!


#include <LiquidCrystal.h>

LiquidCrystal lcd(3,4,5,6,7,8);
void setup() 
{
   lcd.begin(16, 2);
   lcd.print("I Love You!");
}
void loop() 
{
}

先后点击编译,下载。把程序下载到arduino上,当然arduino也要接上1602液晶屏。接法采用4线模式,这里仅仅演示下,具体的见后面的教程。






好了我们的实验成功了!








   好了,如果以上自制arduino对你有难度的话,那我还是建议买个成品板回来,买回来就可以直接做实验了。不要自制
arduino给吓跑你了。
下面就是最常见的三种arduino型号



   最最常用就是中间那块,很多教程都是根据它出的,其实这三块也没多大区别,就是引脚多一些。如果多米的就建议入第一块,资源比较多,普通的如第二块也就够用了,第二块最新的型号是uno R3。x宝60、70包邮就可以入手块了。额,确实贵,但是学习一开始都是要“交学费的”,但是如果几十块钱能学会单片机那也就值了,对吧?
   如果米不多也可以考虑下我那个AI arduino,之前自己做的,还剩几块,接头暗号:数码之家,你懂的
这里介绍,顺带求M
嗯,开始正式教程部分:

爱因斯坦曾说:每件事情都应该竭尽可能地简单,而不是简单一点。论坛上已经有很多大大写单片机的入门教程,我这次我觉写下arduino的入门教程,因为比较简单,给新手多一个选择吧。此文只适合从零开始的新手,因为真的写得不能再白了,所以有基础的友友看起来会很烦人,额,有什么写不对的地方老鸟请轻拍砖。
历史

在好远好远的意大利,有这样的一些学生经常抱怨找不到便宜的控制板控制他们的机器人。于是神般的老师们就发明了arduino!后来arduino在世界各地流窜繁衍,终于前几年也流窜到中国,然后就开始慢慢的繁衍起来了。 
简介

#p#分页标题#e#好像狗一样,狗有大种狗,狼狗,有小种狗,吉娃娃。Arduino也不例外,arduino中的“大种狗”就叫Mega2560,“小种狗”就叫mini,那最常见的狗叫什么呢?旺财?NONONO!它叫UNO(为什么不叫UFO^^)。当然啦除了以上几种“狗”,还有其它种类的变种狗哟!有比mini大点点的Nano狗狗,有自带蓝牙的BT狗狗!带“手机”(zigbee)的Fio狗狗等等,什么还有?arduino狗狗的繁衍力是不是很强,家族是不是好庞大呢?当然还有我的AI arduino啦!arduino狗狗能干好多事情,例如做成呼吸灯,时钟,定时插座,游戏机,机器人,四轴飞行器、智能家居、自动为你发微博等等,甚至做成卫星发射到太空上去。强大吧?让我们一起学习arduino啦! 

给板子安个家
去arduino.cc网下载arduino软件(入了官网后>Download>window),然后解压,就安装完成了!

这样软件就算成功的安装起来了!狗狗的家就建起来了。
然后就去安装usb转串口驱动(对应安装你的驱动)现在主要由三种usb转串口下载器(FT232、cp2102、pl2303),然后去查看我们安装下载驱动后,电脑给我们分配的COM口。具体操作:
1、右键我的电脑选管理(我的电脑是xp)

2、 打开后,选设备管理器》端口

可以看到电脑为我生成的是COM4,我们把它记下来,你的不一定是COM4,具体要查看下。
认识下我们的arduino
每种arduino引脚都不例外的分为数字脚和模拟脚,另外就是电源脚,每种板子都会在板子上标的清清楚楚的
例如我做的AI有13个数字脚0~13,有8模拟脚A0~A7。还有VCC(正极)和GND(负极),RESRT,AREF等。我们先有个初步的了解,到后面我们都会把这些了解清楚的。


  arduino一买回来呢,是什么都不会干的,arduino能干些什么主要决定在你这个主人身上,你编写什么程序给它,它就会干对应的事情。就像教它武功一样,你什么不教他,他就什么都不会,我们先把一些基本功练会了,然后再融合起来,然后arduino就会成为绝世的“武林高手“了
       慢着,我们还不知道我们的arduino生理上有没有缺陷呢?来我们先试下,我们这样操作
这时候我们看到板子上的灯在一闪一闪的。这时候就说明买回来的arduino是没问题的。


1、File>Examples>01.Basics>Blink

 
2、点击编译(就是右上角那个勾勾,),耐心等待它编译完成

 
3、编译完成后,再点击勾勾旁边那个箭头,耐心等待下载完成。

下载完成后,arduino的实验现象是蓝灯每隔1S在闪烁,每款arduino都会这样,因为大家做板子的时候都约定俗成,标号13那个引脚接了一个蓝色LED灯对地。(这个13脚不是芯片的13脚,这个大家要分清)

OK了,这样就说明我们的arduino是没有问题的,可以下载程序的。

Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
 
 
属于小白的1602液晶屏教程~
今天给一个坛友逼问1602的东西,额,说他实验不成功。然后我干脆录了个视频。教1602有点提前了...大家没看懂没关系,我们学完后面的再往回看就好了。
1602按这个图连接好,然后下载程序就可以了
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
 
 
 
视频


Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
 
 
网络问题,这楼重复了....
[ 此帖被smfox10在2013-01-23 09:23重新编辑 ]
 
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
  • Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
跟人学武功一样,编写程序也要遵循一定套路才可以。
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..

事实上arduino的脚是不会提起来放下去的…它只能控制输出+5V电压或者输出0V电压。我们来举一个简单的例子,例如我们平时点亮一个小灯泡是这样做的
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
接好灯泡的正负,灯泡肯定就亮起来了。我们说电池的正极输出+1.5V,负极输出0V。
现在换了是arduino,要怎样点亮呢?
这时候我们应该把正极插到arduino的数字脚上,因为数字脚可以输出+5V(我们一般称为高电平)或者输出0V(我们一般称为低电平)。例如我们现在灯的正极连接到arduino的7脚,led灯的负极连接到arduino的GND(负极)上。然后只要我们程序编写控制7脚输出+5V灯就会亮起来。7脚输出0V灯就会灭掉。
 
先给arduino接上灯
我们不是直接接上去,而是通过面包线和面包板连接的。面包线和面包板的发明当初就是为了快速搭载好实验电路而不用焊接而发明的
面包线简单的来说就是一条电线,只不过两头各有硬硬的插针。
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..

面包板就是用来被面包线插和被零件插的…它的结构其实是这样的,如图
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
如图所示是最普通的面包板,右边的结构跟左边的是一样的,现在我把左边的上色了。
如最上面的那一条红色的,表示了这条红色线所覆盖的这一行孔(25个)都是相通的!
又如最左边的那一条蓝色的,表示了这条蓝色线所覆盖的这一列孔(5个)都是相通的!
总之如图所示,同一条线覆盖的孔是相通的!
假如一个led灯跟电阻串联接在电池上,实物图应该这样接
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..

那么我们在面包板上连接应该是这样。
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..

又或者这样接
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..

 
明白了吗?
我们现在把连接的红线接在arduino的数字脚7上,黑线接在arduino的GND(负极)上,一定用接上220欧以上的电阻,否则电流过大把led烧坏。
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..

好了硬件搭载完成,现在就编写程序就可以了。
我们的目标是点亮一个灯。
程序如下:
 

void setup()
{
     pinMode(7,OUTPUT);
}
void loop()
{
     digitalWrite(7,HIGH);
}
 
依次按编译Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..、下载Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..

 
板子上的本身带有的RX和TX的灯会在下载的过程中会闪起来的。当下载完成后我们看到面包板上的led亮起来的。
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
如果我想让这个灯灭呢,现在程序又怎么编写的,可以这样子:
digitalWrite(7,HIGH)改成digitalWrite(7,LOW)

按编译,下载。然后我们看到面包板上的led灭了。是不是好简单呢?我们再改一下,把程序里面的7都改成8,把digitalWrite里面的LOW改回HIGH,程序如下:
void setup()
{
    pinMode(8,OUTPUT);
}
void loop()
{
    digitalWrite(8,HIGH);
}

按编译,下载。然后我们看到面包板上的led还是灭的。为什么呢,因为我们现在led灯实际插的脚是7!!但是我们程序控制的是8!!led肯定不亮啦!我们只要把红线从7拔出来接到8那里,这时我们看到led亮起来了。
Re:想学单片机但是又觉得难的友友来,教你自制arduino,寒假我们一起学习(更新至2 ..
上面的程序是最基本的程序,我们一定把语法给记住,就像我们说话一样遵循一定语法,否则别人会听不懂,这样我们就完成了第一个自己编写的程序了。

 
现在给大家说下记忆技巧
void是“声明”的意思,这个格式是c语言的程序开头一般都要写的
setup是“设置”的意思,就是程序初始化前的一些设置,setup里面的语句只执行一次。
loop是“圈、循环”的意思,从意思上知道,程序就不断在这里循环执行!
pinMode(注意M是大写)中的pin是引脚的意思,Mode是模式的意思,合起来就是引脚模式
它的编写格式是这样的
pinMode(x,OUTPUT/INPUT),x是填你要初始化的数字脚,逗号后面只能填OUTPUT(输出模式);INPUT(输入模式),控制led用OUTPUT,按键则用INPUT。
digitalWrite(注意W是大写)中的digital是数字的意思,Write是写的意思。合起来了就是数字脚写(高电平或者低电平)
它的编写格式是这样的
digitalWrite(x,HIGH/LOW),x是填你要控制的数字脚,逗号后面只能填HIGH(输出高电平【5V】)或者是填LOW(输出低电平【0V】)
还有一个重要的技巧是,arduino是采用骆驼峰拼法,即当两个单词合起来(如pinModedigitalWrite),第二个单词开头要大写!(如pinMode的M、digitalWrite的W)。大家可能会问这有什么意义,意义大着呢!例如我们保存程序必须是英文名(保存中文名会乱码),我们用骆驼峰拼法就能比较容易找出我们的程序。不信,我来考下你。
没用骆驼峰拼法:nimamajiaonihuijiachifan
用骆驼峰拼法:niMaMaJiaoNiHuiJiaChiFan
怎样是不是骆驼拼法容易看出来点,这样我们就能较快知道这一大串字母实际要表达什么意思。




哎呀,忘了那个给加进去了..progisp软件应该写在准备软件那里,给你添麻烦了,让你走弯路了,坛友以后遇到这些问题可以PM我呀,大家交流下呵呵,这里我疏忽的,给你说对不起了!因为学校限制流量,我怕上传软件没流量再写教程了,我回家会把这些要用到的软件都上传上去。
progisp软件是用来烧写avr芯片的熔丝位和bootloaders。
arduino软件一般是用串口下载程序的,而不是烧熔丝位和bootloaders,这个我们要区别开来。
当然用arduino软件也是可以烧熔丝位和bootloaders,但是它要USBtinyISP下载器(这个要30、40块)而usb asp才10块左右,所以我就用成本最低的方案烧写熔丝位下载bootloaders
那个13是指“板子上标的13”而不是单片机的13脚,这里注意下。
arduino UNO标准电路图回 53楼(一撇胡) 的帖子


ATMEGA88官网没有支持,但是好像有些外国友友也把它的bootloaders给弄出来的,具体你查看下。#p#分页标题#e#
放心有问必答,呵呵,在论坛一起讨论嘛!
 
 
(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容