您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > arduino学习笔记21-32
arduino学习笔记21-舵机控制实验2012-04-1211:18[小大]来源:未知转发至:了,详情请看论坛里《舵机详解》帖子这里使用arduinoduemilanove通过电位器控制一个舵机转动使用原件:arduinoduemilanove一块10K电位器一个舵机一个面包板一个面包板连接线若干这里要注意,不要使用电脑usb供电,因为如果电流需求大于500ma,会有烧毁usb的可能,推荐使用电池外置供电。电位器左右两脚分别接3.3V和GND,中间接模拟口0。舵机接5V和GND,信号口接数字7号口。先上硬件连接图把下面代码下载进入arduino,然后再进行线路连接,运行时一定要使用电池供电。普通浏览复制代码1.intreadPin=0;//用来连接电位器2.intservopin=7;//定义舵机接口数字接口73.4.voidservopulse(intangle)//定义一个脉冲函数5.{6.intpulsewidth=(angle*11)+500;//将角度转化为500-2480的脉宽值7.digitalWrite(servopin,HIGH);//将舵机接口电平至高8.delayMicroseconds(pulsewidth);//延时脉宽值的微秒数9.digitalWrite(servopin,LOW);//将舵机接口电平至低10.delayMicroseconds(20000-pulsewidth);11.}12.13.voidsetup()14.{15.pinMode(servopin,OUTPUT);//设定舵机接口为输出接口16.}17.18.voidloop()19.{20.//读取电位器(传感器)的读数,接到3.3V,值范围从0到660左右21.intreadValue=analogRead(readPin);22.//把值的范围映射到0到165左右23.intangle=readValue/4;24.//发送50个脉冲25.for(inti=0;i50;i++)26.{27.//引用脉冲函数28.servopulse(angle);29.}30.}arduino学习笔记22-扬声器实验2012-04-1211:19[小大]来源:未知转发至:实验材料:arduinoduemilanove一块8Ω0.5W喇叭一个电位器一个面包板一个面包板连接线若干电位器作用就是调节音量,一般是要求与喇叭阻抗匹配,本次实验没找到小阻值电位器,所以用了一个5K的。注意:因为扬声器驱动电压要求比较小,远远小于5V,所以需要在扬声器上串联一个大于10uf的电解电容,电解电容负极连接喇叭的正极,电容正极连接另外一端。不接电容长时间使用,会烧毁扬声器。串联一个100Ω电阻也可以(因为电位器最小电阻为0)上硬件连接图:本次实验arduino命令中最重要的就是tone()命令。tone()tone(pin,frequency,duration)tone(pin,frequency)*pin代表连接扬声器的引脚,frequency代表发声频率,duration代表持续的时间,单位是毫秒。描述:在一个端口生成一个特定频率的方波,可以指定持续的时间。如果没有指定持续时间,就需要使用noTone()命令终止。端口用来连接到蜂鸣器或者是喇叭播放特定频率声音。在同一时间,只能产生一个音调。如果已经有音调在某个端口播放,那这时再使用tone()命令将没有效果。如果新的tone()命令是作用在同一端口,将用新的音调替代。使用tone()命令会干扰3号与11号的PWM输出(除mega以外的其他板子)。注意:如果想要在不同的端口发出不同的音调,需要在下一个tone()命令前,先使用noTone()命令终止前面音调。把下面的代码编译后上传进入arduino控制板:普通浏览复制代码1./*2.PlaySuperMariothemesongwithArduinoandspeaker3.4.circuit:5.*8-ohmspeakerondigitalpin86.7.created4June20118.bynaozhendang.com9.10.reference:11.12.*/15.#defineNOTE_B03116.#defineNOTE_C13317.#defineNOTE_CS13518.#defineNOTE_D13719.#defineNOTE_DS13920.#defineNOTE_E14121.#defineNOTE_F14422.#defineNOTE_FS14623.#defineNOTE_G14924.#defineNOTE_GS15225.#defineNOTE_A15526.#defineNOTE_AS15827.#defineNOTE_B16228.#defineNOTE_C26529.#defineNOTE_CS26930.#defineNOTE_D27331.#defineNOTE_DS27832.#defineNOTE_E28233.#defineNOTE_F28734.#defineNOTE_FS29335.#defineNOTE_G29836.#defineNOTE_GS210437.#defineNOTE_A211038.#defineNOTE_AS211739.#defineNOTE_B212340.#defineNOTE_C313141.#defineNOTE_CS313942.#defineNOTE_D314743.#defineNOTE_DS315644.#defineNOTE_E316545.#defineNOTE_F317546.#defineNOTE_FS318547.#defineNOTE_G319648.#defineNOTE_GS320849.#defineNOTE_A322050.#defineNOTE_AS323351.#defineNOTE_B324752.#defineNOTE_C426253.#defineNOTE_CS427754.#defineNOTE_D429455.#defineNOTE_DS431156.#defineNOTE_E433057.#defineNOTE_F434958.#defineNOTE_FS437059.#defineNOTE_G439260.#defineNOTE_GS441561.#defineNOTE_A444062.#defineNOTE_AS446663.#defineNOTE_B449464.#defineNOTE_C552365.#defineNOTE_CS555466.#defineNOTE_D558767.#defineNOTE_DS562268.#defineNOTE_E565969.#defineNOTE_F569870.#defineNOTE_FS574071.#defineNOTE_G578472.#defineNOTE_GS583173.#defineNOTE_A588074.#defineNOTE_AS593275.#defineNOTE_B598876.#defineNOTE_C6104777.#defineNOTE_CS6110978.#defineNOTE_D6117579.#defineNOTE_DS6124580.#defineNOTE_E6131981.#defineNOTE_F6139782.#defineNOTE_FS6148083.#defineNOTE_G6156884.#defineNOTE_GS6166185.#defineNOTE_A6176086.#defineNOTE_AS6186587.#defineNOTE_B6197688.#defineNOTE_C7209389.#defineNOTE_CS7221790.#defineNOTE_D7234991.#defineNOTE_DS7248992.#defineNOTE_E7263793.#defineNOTE_F7279494.#defineNOTE_FS7296095.#defineNOTE_G7313696.#defineNOTE_GS7332297.#defineNOTE_A7352098.#defineNOTE_AS7372999.#defineNOTE_B73951100.#defineNOTE_C84186101.#defineNOTE_CS84435102.#defineNOTE_D84699103.#defineNOTE_DS84978104.105.//notesinthemelody:106.intmelody[]={107.NOTE_E4,NOTE_E4,NOTE_E4,NOTE_C4,NOTE_E4,NOTE_G4,NOTE_G3,108.NOTE_C4,NOTE_G3,NOTE_E3,NOTE_A3,NOTE_B3,NOTE_AS3,NOTE_A3,NOTE_G3,NOTE_E4,NOTE_G4,NOTE_A4,NOTE_F4,NOTE_G4,NOTE_E4,NOTE_C4,NOTE_D4,NOTE_B3,109.NOTE_C4,NOTE_G3,NOTE_E3,NOTE_A3,NOTE_B3,NOTE_AS3,NOTE_A3,NOTE_G3,NOTE_E4,NOTE_G4,NOTE_A4,NOTE_F4,NOTE_G4,NOTE_E4,NOTE_C4,NOTE_D4,NOTE_B3,110.NOTE_G4,NOTE_FS4,NOTE_E4,NOTE_DS4,NOTE_E4,NOTE_GS3,NOTE_A3,NOTE_C4,NOTE_A3,NOTE_C4,NOTE_D4,NOTE_G4,NOTE_FS4,NOTE_E4,NOTE_DS4,NOTE_E4,NOTE_C5,NOTE_C5,NOTE_C5,111.NOTE_G4,NOTE_FS4,NOTE_E4,NOTE_DS4,NOTE_E4,NOTE_GS3,NOTE_A3,NOTE_C4,NOTE_A3,NOTE_C4,NOTE_D4,NOTE_DS4,NOTE_D4,NOTE_C4,112.NOTE_C4,NOTE_C4,NOTE_C4,NOTE_C4,NOTE_D4,NOTE_E4,NOTE_C4,NOTE_A3,NOTE_G3,NOTE_C4,NOTE_C4,NOTE_C4,NOTE_C4,NOTE_D4,NOTE_E4,113.NOTE_C4,NOTE_C4,NOTE_C4,NOTE_C4,NOTE_D4,NOTE_E4,NOTE_C4,NOTE_A3,NOTE_G3114.};115.116.//notedurations:4=quarternote,8=eighthnote,etc.:117.intnoteDurations[]={118.8,4,4,8,4,2,2,119.3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,3,120.3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,2,121.8,8,8,4,4,8,8,4,8,8,3,8,8,8,4,4,4,8,2,122.8,8,8,4,4,8,8,4,8,8,3,3,3,1,123.8,4,4,8,4,8,4,8,2,8,4,4,8,4,1,124.8,4,4,8,4,8,4,8,2125.};126.127.voidsetup(){128.//iterateoverthenotesofthemelody:129.for(intthisNote=0;thisNote98;thisNote++){130.131.//tocalculatethenoteduration,takeonesecond132.//dividedbythenotetype.133.//e.g.quarte
本文标题:arduino学习笔记21-32
链接地址:https://www.777doc.com/doc-3384334 .html