 
					
				首先学习下关于时间的几个函数
millis 返回从开始加电到现在所用的MS值
micros 返回从开始加电到现在所用的US值
delay 延时MS级
用法:delay(unsigned ms)
delaymicroseconds 延时US级
用法:delaymicroseconds(unigned us)
/*GR-SAKURA Sketch Template Version: V1.01*/
#include <rxduino.h>
# define INTERVAL 10
unsigned long Val_time;
unsigned char second;
unsigned char min;
unsigned char hour;
void setup ()
{
Serial.begin (9600);
}
void loop ()
{
Val_time = millis ();
if(Val_time%1000==0)
{
second++;
}
if(second>=60)
{
second = 0;
min++;
}
if(min>=60)
{
min = 0;
hour++;
}
if(hour>=24)
{
hour = 0;
}
Serial.print(second);
Serial.print(":");
//delay ( INTERVAL);
Serial.print(min);
Serial.print(":");
//delay ( INTERVAL);
Serial.println(hour);
//delay ( INTERVAL);
//Serial.print(Val_time);
delay ( INTERVAL);
}
 
					
				其实音调都是50%占空比的方波只不过是,方波的长短不一样即频率不一样。
而持续时间就是节拍,方波的频率和时间搭配就构成了音乐。
我用的是每14脚,即AD0脚,关于管脚的分配请看下图:
指示灯管脚分配:
语法:
tone(pin, frequency) 
tone(pin, frequency, duration)
参数:
pin: 哪个管脚产生声音
frequency: 频率,整形
duration:延续时间毫秒级,无符号长整形
以下是各种音调的频率,可以查下用到的
#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978
以下是程序:
/*GR-SAKURA Sketch Template Version: V1.01*/
#include <rxduino.h>
int melody[] = {
  262,196,196, 220, 196,0, 247, 262};
//四拍还是八拍
int noteDurations[] = {
  4, 8, 8, 4,4,4,4,4 };
void setup() {
  
  for (int thisNote = 0; thisNote < 8; thisNote++) {
   
    int noteDuration = 1000/noteDurations[thisNote];
    tone(14, melody[thisNote],noteDuration);
   
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
   
    noTone(14);
  }
}
void loop() {
 }
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |

 
					
				 
			
			
			
						
			 
					
				 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

