首页 > 代码库 > Arduino 入门之小星星
Arduino 入门之小星星
准备工作:Arduino开发板一块,串口线一根,电脑一台,Arduino ide
#include "pitches.h"/* Blink Turns on an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at https://www.arduino.cc/en/Main/Products This example code is in the public domain. modified 8 May 2014 by Scott Fitzgerald modified 2 Sep 2016 by Arturo Guadalupi modified 8 Sep 2016 by Colby Newman*/int melody[] = { NOTE_C4,NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4,NOTE_G4,NOTE_F4,NOTE_F4,NOTE_E4,NOTE_E4,NOTE_D4,NOTE_D4,NOTE_C4,NOTE_G4,NOTE_G4,NOTE_F4,NOTE_F4,NOTE_E4,NOTE_E4,NOTE_D4,NOTE_G4,NOTE_G4,NOTE_F4,NOTE_F4,NOTE_E4,NOTE_E4,NOTE_D4,NOTE_C4,NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4,NOTE_G4,NOTE_F4,NOTE_F4,NOTE_E4,NOTE_E4,NOTE_D4,NOTE_D4,NOTE_C4};int noteDurations[] = { 4, 4, 4, 4, 4, 4, 2, 4,4,4,4,4,4,2,4, 4, 4, 4, 4, 4, 2, 4,4,4,4,4,4,2,4, 4, 4, 4, 4, 4, 2, 4,4,4,4,4,4,2};//bool btnstat=true;//bool playing=true;int dl=50;int pins[5]={3,5,7,9};// the setup function runs once when you press reset or power the boardvoid setup() { //Serial.begin(9600); // initialize digital pin LED_BUILTIN as an output. for(int i=0;i<4;i++){ pinMode(pins[i], OUTPUT); } pinMode(12, INPUT_PULLUP);}//void setSwitch(){// int stat=digitalRead(12);// //Serial.println(stat);// if(stat==0){// if(btnstat){// btnstat=false; // }else{// btnstat=true; // }// }//}// the loop function runs over and over again forevervoid loop() { int stat=digitalRead(12); if(stat==1) return; for (int thisNote = 0; thisNote < (sizeof(melody)/sizeof(int)); thisNote++) { //setSwitch(); stat=digitalRead(12); if(stat==1) return; // to calculate the note duration, take one second // divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000 / noteDurations[thisNote]; long led=random(0,4); digitalWrite(pins[led], HIGH); tone(2, melody[thisNote], noteDuration); // to distinguish the notes, set a minimum time between them. // the note‘s duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); digitalWrite(pins[led], LOW); // stop the tone playing: noTone(2); } /* for(int i=0;i<4;i++){ for(int j=0;j<3;j++){ digitalWrite(pins[i], HIGH); // turn the LED on (HIGH is the voltage level) delay(dl); // wait for a second digitalWrite(pins[i], LOW); // turn the LED off by making the voltage LOW delay(dl); } //delay(200); } delay(500); */}
Arduino 入门之小星星
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。