• 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
返回

电子发烧友 电子发烧友

  • 全文搜索
    • 全文搜索
    • 标题搜索
  • 全部时间
    • 全部时间
    • 1小时内
    • 1天内
    • 1周内
    • 1个月内
  • 默认排序
    • 默认排序
    • 按时间排序
大家还在搜
  • Apple Accessory Protocol-ipod

    Apple Accessory Protocol-ipod command 1 The Apple Accessory Protocol is used for communication

    2010-04-03 08:48

  • iPod Accessory Protocol-IPOD 3

    iPod Accessory Protocol-IPOD 3G Accessory Protocol This document describes the serial protocol

    2010-04-03 08:56

  • Accessory Shield学习0:介绍

    Accessory Shield是微雪电子为Arduino开发的一款外围扩展板,集多种常用基本外围模块于一体,从此不必选择那么多功能单一模块显得很累赘,只要一个Accessory Shield

    2016-03-28 14:42

  • dfrobotBluno Accessory Shield扩展板简介

    这款BLUNO配套扩展板是DFRobot专门为BLUNO(移动设备周边开发平台)所设计的扩展板。

    2019-12-26 09:20

  • Accessory Shield学习8:0.96inch OLED

    本章是Accessory Shield系列教程的结尾,最后的技能——显示你想显示的一切!原理大放送:Accessory Shield配备了一款0.96inch,128 x 64分辨率大小的OLED

    2016-03-28 14:55

  • Accessory Shield学习3:蜂鸣器

    前面两章玩转了数字信号和模拟信号,知道数字信号可以用来检测外部数据,一可以驱动外部开关;模拟信号可以采集外部电压信号,常用于传感器信号的输入;本章来讲解一个可以发声的东东,那就是传说中的蜂鸣器。原理大放送:有源蜂鸣器直接接上额定电源就可以发声,而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。本模块使用的蜂鸣器为有源蜂鸣器,既可以直流驱动,发出一种单一频率的声音,也可以用可变频率的交流信号去驱动,发出简单的音乐声。代码示例:[代码]php代码:[tr=#87B8FF ]01#define NTD0 -1[/tr][tr=#87B8FF ]02#define NTD1 294[/tr][tr=#87B8FF ]03#define NTD2 330[/tr][tr=#87B8FF ]04#define NTD3 350[/tr][tr=#87B8FF ]05#define NTD4 393[/tr][tr=#87B8FF ]06#define NTD5 441[/tr][tr=#87B8FF ]07#define NTD6 495[/tr][tr=#87B8FF ]08#define NTD7 556[/tr][tr=#87B8FF ]09[/tr][tr=#87B8FF ]10#define NTDL1 147[/tr][tr=#87B8FF ]11#define NTDL2 165[/tr][tr=#87B8FF ]12#define NTDL3 175[/tr][tr=#87B8FF ]13#define NTDL4 196[/tr][tr=#87B8FF ]14#define NTDL5 221[/tr][tr=#87B8FF ]15#define NTDL6 248[/tr][tr=#87B8FF ]16#define NTDL7 278[/tr][tr=#87B8FF ]17#define NTDH1 589[/tr][tr=#87B8FF ]18#define NTDH2 661[/tr][tr=#87B8FF ]19#define NTDH3 700[/tr][tr=#87B8FF ]20#define NTDH4 786[/tr][tr=#87B8FF ]21#define NTDH5 882[/tr][tr=#87B8FF ]22#define NTDH6 990[/tr][tr=#87B8FF ]23#define NTDH7 112[/tr][tr=#87B8FF ]24#define HALF 0.5[/tr][tr=#87B8FF ]25#define QUARTER 0.25[/tr][tr=#87B8FF ]26#define EIGHTH 0.25[/tr][tr=#87B8FF ]27#define SIXTEENTH 0.625[/tr][tr=#87B8FF ]28[/tr][tr=#87B8FF ]29int tune[]= [/tr][tr=#87B8FF ]30{[/tr][tr=#87B8FF ]31NTD3,NTD3,NTD4,NTD5,[/tr][tr=#87B8FF ]32NTD5,NTD4,NTD3,NTD2,[/tr][tr=#87B8FF ]33NTD1,NTD1,NTD2,NTD3,[/tr][tr=#87B8FF ]34NTD3,NTD2,NTD2,[/tr][tr=#87B8FF ]35NTD3,NTD3,NTD4,NTD5,[/tr][tr=#87B8FF ]36NTD5,NTD4,NTD3,NTD2,[/tr][tr=#87B8FF ]37NTD1,NTD1,NTD2,NTD3,[/tr][tr=#87B8FF ]38NTD2,NTD1,NTD1,[/tr][tr=#87B8FF ]39NTD2,NTD2,NTD3,NTD1,[/tr][tr=#87B8FF ]40NTD2,NTD3,NTD4,NTD3,NTD1,[/tr][tr=#87B8FF ]41NTD2,NTD3,NTD4,NTD3,NTD2,[/tr][tr=#87B8FF ]42NTD1,NTD2,NTDL5,NTD0,[/tr][tr=#87B8FF ]43NTD3,NTD3,NTD4,NTD5,[/tr][tr=#87B8FF ]44NTD5,NTD4,NTD3,NTD4,NTD2,[/tr][tr=#87B8FF ]45NTD1,NTD1,NTD2,NTD3,[/tr][tr=#87B8FF ]46NTD2,NTD1,NTD1[/tr][tr=#87B8FF ]47};[/tr][tr=#87B8FF ]48float durt[]=[/tr][tr=#87B8FF ]49{[/tr][tr=#87B8FF ]501,1,1,1,[/tr][tr=#87B8FF ]511,1,1,1,[/tr][tr=#87B8FF ]521,1,1,1,[/tr][tr=#87B8FF ]531+0.5,0.5,1+1,[/tr][tr=#87B8FF ]541,1,1,1,[/tr][tr=#87B8FF ]551,1,1,1,[/tr][tr=#87B8FF ]561,1,1,1,[/tr][tr=#87B8FF ]571+0.5,0.5,1+1,[/tr][tr=#87B8FF ]581,1,1,1,[/tr][tr=#87B8FF ]591,0.5,0.5,1,1,[/tr][tr=#87B8FF ]601,0.5,0.5,1,1,[/tr][tr=#87B8FF ]611,1,1,1,[/tr][tr=#87B8FF ]621,1,1,1,[/tr][tr=#87B8FF ]631,1,1,0.5,0.5,[/tr][tr=#87B8FF ]641,1,1,1,[/tr][tr=#87B8FF ]651+0.5,0.5,1+1,[/tr][tr=#87B8FF ]66};[/tr][tr=#87B8FF ]67int length;[/tr][tr=#87B8FF ]68int tonepin=11;[/tr][tr=#87B8FF ]69void setup()[/tr][tr=#87B8FF ]70{[/tr][tr=#87B8FF ]71pinMode(tonepin,OUTPUT);[/tr][tr=#87B8FF ]72length=sizeof(tune)/sizeof(tune[0]);[/tr][tr=#87B8FF ]73}[/tr][tr=#87B8FF ]74void loop()[/tr][tr=#87B8FF ]75{[/tr][tr=#87B8FF ]76for(int x=0;x[/tr]是的,你没有听错,它竟然在播放音乐.........

    2016-03-28 14:48

  • Accessory Shield学习2:可调电位器

    Accessory Shield板载的10k可调电位器采用3.3V供电,即最大可调节输出的电压值为3.3V。若开发板供电电压配置为3.3V,输出AD值的范围是0-1023;若开发板供电电压配置为5V

    2016-03-28 14:46

  • 请问bluno accessory shield是不是不能插在MEGA2560上用?

    请问bluno accessory shield是不是不能插在MEGA2560上用,我手机上的play bluno可以连接核心板,但扩展板完全没反应?

    2020-07-24 08:03

  • Accessory Shield学习4:多彩LED

    学会了如何发声,下来就要开始学如何发光;虽然一开始在按键扫描那章有看到LED闪烁,但,,,,那真的太简单了。本章我们学习高大上的多彩LED。原理大放送:多彩LED又称为RGB灯,内置红(R)、绿(G)、蓝(B)三个灯珠,通过调节不同灯的亮度就可以混合出万千色彩。调节灯的亮度?没错就是你脑子现在想的那种方式!!!其实就两种方式,电压或电流。这里我们采用一款性能优良的IC进行驱动,P9813,这是一款全彩点光源LED驱动芯片,采用CMOS工艺,提供三路恒流驱动及256级灰度调制输出。通信接口采用双线传输方式(DATA与CLK),内建再生(就是功率放大),可获得更远的传输距离,可用于驱动显示灯光变换、各式字符变换、彩色动漫图案............嗯,说好了全是放干货!具体细节可以去找度娘原理图如下:由于U2上电直接驱动RGB灯开始工作,而且颜色值随机。为了避免不使用的时候可以关闭它,所以采用MOS管Q2作为电源软开关,当AR_D12引脚输出高电平时,芯片才会上电工作。而Arduino上电默认引脚为低电平,这样可以保证上电后RGB灯不会突然点亮,吓坏小伙伴怎么办。代码示例:[tr=#87B8FF ]01#include "ChainableLED.h"[/tr][tr=#87B8FF ]02[/tr][tr=#87B8FF ]03#define NUM_LEDS1[/tr][tr=#87B8FF ]04[/tr][tr=#87B8FF ]05/*[/tr][tr=#87B8FF ]06I/O define[/tr][tr=#87B8FF ]07*/[/tr][tr=#87B8FF ]08const int rgb_pwr = 12; //rgb power control[/tr][tr=#87B8FF ]09const int clk_pin = 6;//clock[/tr][tr=#87B8FF ]10const int data_pin = 5; //data[/tr][tr=#87B8FF ]11const int analog_pin = 0;//pot input[/tr][tr=#87B8FF ]12[/tr][tr=#87B8FF ]13/*[/tr][tr=#87B8FF ]14variable[/tr][tr=#87B8FF ]15*/[/tr][tr=#87B8FF ]16float hue = 0.0;[/tr][tr=#87B8FF ]17boolean up = true;[/tr][tr=#87B8FF ]18ChainableLED leds(clk_pin, data_pin, rgb_pwr, NUM_LEDS); //defines the pin used on arduino.[/tr][tr=#87B8FF ]19[/tr][tr=#87B8FF ]20void setup()[/tr][tr=#87B8FF ]21{[/tr][tr=#87B8FF ]22leds.pwr_set(PWR_ENABLE);//open the rgb power supply[/tr][tr=#87B8FF ]23}[/tr][tr=#87B8FF ]24void loop()[/tr][tr=#87B8FF ]25{[/tr][tr=#87B8FF ]26delay(30);[/tr][tr=#87B8FF ]27for (byte i=0; i < NUM_LEDS; i++)[/tr][tr=#87B8FF ]28 leds.setColorHSB(i, hue, 1.0, 0.5);[/tr][tr=#87B8FF ]29 [/tr][tr=#87B8FF ]30if (up)[/tr][tr=#87B8FF ]31 hue+= 0.025;[/tr][tr=#87B8FF ]32else[/tr][tr=#87B8FF ]33 hue-= 0.025;[/tr][tr=#87B8FF ]34 [/tr][tr=#87B8FF ]35if (hue > =1.0 && up)[/tr][tr=#87B8FF ]36 up = false;[/tr][table=98%,none][tr=#87B8FF ]37[td]else if (hue

    2016-03-28 14:49

  • Accessory Shield学习1:五向摇杆

    现在,我们开始步入按键程序设计的殿堂,在基于Arduino为核心构成的应用系统中,用户输入是必不可少的部分,输入可以由多种方式,这里我们来讲一下最高(chao)大(jian)上(dan)的按键。原理大放送:这是个有5个方向的操纵杆,包括上、下、左、右以及确定(就是往下按),每个按键分别与Arduino的引脚连接,原理图如下,其中AR_A1 -- AR_A5分别于Arduino的A1 -- A5相连。由于Arduino的主控器内部有上拉电阻,所以我们原理图就没加;什么?你不知道上拉电阻时干什么的?上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下拉同理。也是将不确定的信号通过一个电阻钳位在低电平。为方便描述按键的检测原理,我们简化一下原理图如下:简单分析一下按键检测原理,当按键没有按下的时候,单片机的引脚通过上拉电阻R接到VCC,程序在读取这个引脚的电平时值为1(高电平);当按键按下时,该引脚被短接到GND,此时程序读这个引脚的电平时值为0(低电平);因此,按键是否按下可以通过对应引脚的高低电平来反应,我们只要再程序中判断引脚的电平状态就可以识别按键是否按下,从而做出相应的处理;一切看起来很美好,但现实并非理想状态!我们在得出上述结论的时候其实忽略了一个重要的问题,那就是现实中按键按下时电压的变化状态不是理想的如下图:二现实往往是残酷的,由于按键的弹片接触时,并不是一接触就紧紧的闭合,它还存在一定的抖动,尽管这个时间非常的短暂,但是对于执行速度以us为计算单位的微控制器来说就比较漫长了,实际的按键波形是下面这样的:这样便存在这样一个问题,由于抖动的存在,程序会认为多次按下了按键,这并不是我们所需要的。解决办法就是软件延时消抖,由于抖动的时间大概维持20ms以内,只要软件第一次检测到按键按下时,延时20ms,避开这个抖动区间就可以了;示例代码:[tr=#87B8FF ]01/*[/tr][tr=#87B8FF ]02I/O define[/tr][tr=#87B8FF ]03*/[/tr][tr=#87B8FF ]04#define KEY_UPA1[/tr][tr=#87B8FF ]05#define KEY_DOWNA5[/tr][tr=#87B8FF ]06#define KEY_LEFTA3[/tr][tr=#87B8FF ]07#define KEY_RIGHTA2[/tr][tr=#87B8FF ]08#define KEY_ENTERA4[/tr][tr=#87B8FF ]09[/tr][tr=#87B8FF ]10int key_release_flag = 1, i;[/tr][tr=#87B8FF ]11int time_ticks = 0;[/tr][tr=#87B8FF ]12[/tr][tr=#87B8FF ]13void setup(void)[/tr][tr=#87B8FF ]14{[/tr][tr=#87B8FF ]15pinMode(13, OUTPUT);[/tr][tr=#87B8FF ]16[/tr][tr=#87B8FF ]17pinMode(KEY_UP, INPUT);[/tr][tr=#87B8FF ]18digitalWrite(KEY_UP, HIGH);[/tr][tr=#87B8FF ]19pinMode(KEY_DOWN, INPUT);[/tr][tr=#87B8FF ]20digitalWrite(KEY_DOWN, HIGH);[/tr][tr=#87B8FF ]21pinMode(KEY_LEFT, INPUT);[/tr][tr=#87B8FF ]22digitalWrite(KEY_LEFT, HIGH);[/tr][tr=#87B8FF ]23pinMode(KEY_RIGHT, INPUT);[/tr][tr=#87B8FF ]24digitalWrite(KEY_RIGHT, HIGH);[/tr][tr=#87B8FF ]25pinMode(KEY_ENTER, INPUT);[/tr][tr=#87B8FF ]26digitalWrite(KEY_ENTER, HIGH);[/tr][tr=#87B8FF ]27 [/tr][tr=#87B8FF ]28Serial.begin(9600);[/tr][tr=#87B8FF ]29}[/tr][tr=#87B8FF ]30[/tr][tr=#87B8FF ]31void loop(void)[/tr][tr=#87B8FF ]32{[/tr][tr=#87B8FF ]33/*[/tr][tr=#87B8FF ]34led flash[/tr][tr=#87B8FF ]35*/[/tr][tr=#87B8FF ]36delay(1);[/tr][tr=#87B8FF ]37time_ticks++; [/tr][tr=#87B8FF ]38if(time_ticks == 500)[/tr][tr=#87B8FF ]39{[/tr][tr=#87B8FF ]40 digitalWrite(13, HIGH);[/tr][tr=#87B8FF ]41}[/tr][tr=#87B8FF ]42else if(time_ticks == 1000)[/tr][tr=#87B8FF ]43{[/tr][tr=#87B8FF ]44 digitalWrite(13, LOW);[/tr][tr=#87B8FF ]45 time_ticks = 0;[/tr][tr=#87B8FF ]46}[/tr][tr=#87B8FF ]47[/tr][tr=#87B8FF ]48/*[/tr][tr=#87B8FF ]49keyboard scan[/tr][tr=#87B8FF ]50*/[/tr][tr=#87B8FF ]51if((digitalRead(KEY_UP) == LOW) || (digitalRead(KEY_DOWN) == LOW) || (digitalRead(KEY_LEFT) == LOW) || (digitalRead(KEY_RIGHT) == LOW) || (digitalRead(KEY_ENTER) == LOW))[/tr][tr=#87B8FF ]52{[/tr][tr=#87B8FF ]53 if(key_release_flag)[/tr][tr=#87B8FF ]54 {[/tr][tr=#87B8FF ]55delay(10);[/tr][tr=#87B8FF ]56[/tr][tr=#87B8FF ]57if((digitalRead(KEY_UP) == LOW) || (digitalRead(KEY_DOWN) == LOW) || (digitalRead(KEY_LEFT) == LOW) || (digitalRead(KEY_RIGHT) == LOW) || (digitalRead(KEY_ENTER) == LOW))[/tr][tr=#87B8FF ]58{[/tr][tr=#87B8FF ]59key_release_flag = 0;[/tr][tr=#87B8FF ]60if(digitalRead(KEY_UP) == LOW)[/tr][tr=#87B8FF ]61 Serial.print("you press UP\n");[/tr][tr=#87B8FF ]62else if(digitalRead(KEY_DOWN) == LOW)[/tr][tr=#87B8FF ]63 Serial.print("you press DOWN\n");[/tr][tr=#87B8FF ]64else if(digitalRead(KEY_LEFT) == LOW)[/tr][tr=#87B8FF ]65 Serial.print("you press LEFT\n");[/tr][tr=#87B8FF ]66else if(digitalRead(KEY_RIGHT) == LOW)[/tr][tr=#87B8FF ]67 Serial.print("you press RIGHT\n");[/tr][tr=#87B8FF ]68else if(digitalRead(KEY_ENTER) == LOW)[/tr][tr=#87B8FF ]69 Serial.print("you press ENTER\n");[/tr][tr=#87B8FF ]70}[/tr][tr=#87B8FF ]71 }[/tr][tr=#87B8FF ]72}[/tr][tr=#87B8FF ]73else[/tr][tr=#87B8FF ]74 key_release_flag = 1;[/tr][tr=#87B8FF ]75}[/tr]程序运行时板载的LED会以1秒为周期闪烁,提示系统正常工作;当按下任意一个按键时,串口监视器会显示当前按下的键位,例如“you press UP”。现象如下图:

    2016-03-28 14:45