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

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

Arduino最后倒计时定时器无线编程(4)

时间:2017-05-24 20:34来源:未知 作者:admin 点击:
用热胶,把Arduino进你想要的区域。 同时,确保USB口和DC jack正在经历的剪影。 你会发现一个问题,把盖子盖上盒子! 为了解决这个问题,你将不得不做出另一个缺口,但 这个时候,你会在盒子上做切口(不是盖的)!
用热胶,把Arduino进你想要的区域。同时,确保USB口和DC jack正在经历的剪影。
  • 你会发现一个问题,把盖子盖上盒子!
    • 为了解决这个问题,你将不得不做出另一个缺口,但这个时候,你会在盒子上做切口(不是盖的)!<u>检查图片</u>
  • Arduino最后倒计时定时器无线编程

    1. 接下来,焊料的压电蜂鸣器长跳线就像我们与LED步骤8
    2. 现在,添加热缩管保护导线的金属接头(用于LED和Piezo buzzer这样做)。
      1. FYI(供你参考):使用烙铁的热量,缩短了热收缩管!
    3. 现在,有一把尺子和找到中心墙上的插座(墙壁插座上方的一侧)。
    4. 在发现中,找到大小合适的钻头适合LED开始钻探!
    5. 坚持领导的箱子里面直到你能看到头的LED开始凸出的孔(从外面)(看图片)
    6. 涂一点热胶在LED从箱子里面。
    7. 现在有一个完全符合压电蜂鸣器孔内的钻头。
    8. 使用相同的钻头,在盒子的侧面的中间钻一个孔(对我来说,我把蜂鸣器在白色的线。检查图片)
    9. 最后,幻灯片对LED腿接地跳线热收缩管。然后,焊接引脚到适当的位置。之后,使用烙铁收缩的热收缩管的导电金属接头(看图片)。

    Arduino最后倒计时定时器无线编程

    1. LED(-)去蜂鸣器(-)。LED(+)去Arduino引脚D11
    2. 不要做我所做的第四张照片中的结束。只是你的消极和积极的电线,但<strong>原理是一样的</strong>。所以,蜂鸣器(-)到LED(-)。和蜂鸣器(+)去Arduino引脚D6

    步骤12:你的状态和上传的代码

    Arduino最后倒计时定时器无线编程

    好吧,伙计们,

    只要解压ZIP文件和从底部上传代码。别忘了包括时间库。(看看如何添加库,看看这个教程

    现在,点击上传,和高枕无忧你Arduino接收HEX文件传输通过蓝牙。

    最后,下载下面的应用程序从谷歌PlayStore”Arduino蓝牙控制器“Giumig Apps。

    重要的******如果要重新上传,确保串口监控关闭击球前上传***

    到目前为止,你已经学会了如何程序的无线和填满所有的事情知道的人,给一个电击,在一个小盒子。好吧,我说你已经相当远(看图片)。

    “最后倒计时”的代码如下:

    • 如果你想要更多的空间在Arduino上运行的代码,你可以评论/删除了介绍,位于setup()。从“欢迎弥敦^ 2的通用AC开关…”
    • 你需要下载代码的底部,这是一个zip文件,为了得到球。H和ac_switch_with_no_delay代码放在一起,否则你会得到一个错误代码中缺失的音调。h文件。
    • 下面的代码只是为了显示什么样子如果你没有Arduino IDE编辑器。
    “倒计时”计时器代码
    #包括<<时间。”
     #包括<< timelib。H > 
     / * 
    我是一个自由软件;你可以将我和/或修改
    我,但你必须有人参加拍我。
    创作者:Nathan Ramanathan(但我的朋友叫我弥敦^ 2)
     / /特别感谢秃头工程师FadeWithoutDelay密码
     /看到更多的信息
     * / 
     / -----------------------------------------------------------不要连接销D12是因为它作为一个虚拟销--------------------------------------------------------- / 
     int dummypin baldengineer.com/fading-led-analogwrite-millis-example.html = 12;//我原来一个错误d33了Arduino板,有少于33的I /。所以我决定牺牲一个真正的销。
     int piezopin = 6;//该引脚连接到压电蜂鸣器
     
     
     #定义继电器8 / / #定义是一个简单的方法来识别,在任何人的代码,所有的引脚Arduino会乱动。
     #确定LED 11 
     int speakerpin;
     /全局变量
     int HR = 1;// 1小时
     int Mn = 30;// 30分钟
     int秒= 0;// 0seconds /因此,1小时和30。//Use maxLoad for the maximum amount of time for the switch to be open(For safety purposes).
    double maxLoad = hr * (60 * 60 * 1E3)/*hours*/ + mn * (60 * 1E3)/*minutes*/ + sec * (1E3)/*seconds*/;
    double h = 0, m = 0, s = 0, a = 0, b = 0, c = 0, BeepTime = .25E3;
    bool e = false, d = false, f = false, fadeOrNot = false, viewer = false, pause = true, start = false, shortTime = false, lightOrNot = true, buzzOrNot = true; //If you music off as default, simply change buzzOrNot to false
    String where = ""; String split = "";
    int str = 0, count = 0, buzzerCount = 0;
    double interval = 0;
    double newInterval = 0;
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    // define directions for LED fadeWithoutDelay
    
    
    // constants for min and max PWM
    const int minPWM = 0;
    const int maxPWM = 255;
    // State Variable for Fade Direction
    bool q = true;
    // Global Fade Value
    // but be bigger than byte and signed, for rollover
    int fadeValue = 0;
    // How smooth to fade?
    字节fadeincrement = 5;
     / millis()时序变量,只是衰落
     unsigned long previousfademillis;
     /多快
    int fadeInterval = 45;
    //////////////////////////////////////////////// The FINAL COUNTDOWN song
    #include "pitches.h"
    unsigned long songMillis = 0;
    int thisNote = -1;
    // notes in the melody:
    //int melody[] = {
    //  NOTE_E4, NOTE_F4, NOTE_FS4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5
    //};
    
    
    int melody[] = {//The FINAL COUNTDOWN song
      NOTE_B4, NOTE_A4, NOTE_B4, NOTE_E4, 0, NOTE_C5, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_A4, 0, NOTE_C5, NOTE_B4, NOTE_C5, NOTE_E4, NOTE_FS4, 0, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_FS4, NOTE_A4,   NOTE_G4, 0, NOTE_B4, NOTE_A4, NOTE_B4, NOTE_E4, 0, NOTE_C5, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_A4, 0, NOTE_B4, NOTE_A4, NOTE_B4, NOTE_E4, NOTE_FS4, 0, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_FS4, NOTE_A4, NOTE_G4
    };
    
    
    // note durations: 4 = quarter note, 8 = eighth note, etc.:
    int noteDurations[] = {
      16, 16, 4, 4, 2, 16, 16, 8, 8, 4, 2, 16, 16, 4, 4, 4, 4, 16, 16, 8, 8, 8, 8,  4, 8, 16, 16, 4, 4, 2, 16, 16, 8, 8, 4, 2, 16, 16, 4, 4, 4, 6, 16, 16, 8, 8, 8, 8, 4
    };
    
    
    const int lengthOfSong = 23 + 26;//因为某些原因millis()不喜欢计算数组的大小。
     /////////////////////////// 
     
     
     ////////////////////////////////////////功能干预
     unsigned long的millis() psmillis = 0;
     unsigned long shorttimemillis = 0;
     unsigned long placeholder1 = 0;
     unsigned long placeholder2 = 0;
     //////////////////////////////////////////////////////////////////////////////////////////////////////// 
    无效setup() { 
     / /把你的设置代码,运行一次:
    系列。开始(115200 /);取决于Arduino你选择,因为我们正在利用。例如,该hc-05和Arduino都运行在115200的波特率。
     speakerpin = piezopin;
     pinmode(speakerpin,输出);/ Arduino的引脚输出/告诉
     pinmode(LED,输出);
     pinmode(继电器输出);
     digitalwrite(继电器,高);/ /关闭交流开关(继电器)
     ///////////////////////////////////////////////////////////介绍(只运行一次)
    串行out.println(“欢迎弥敦。你想把这台机器上多久?例如,4小时,30分钟,2秒的4h 30m 2S。顺序并不重要。”);
     /串行out.println(“T \但,如果你输入4h 2m 3S,但是你实际上意味着1m二十多岁的时候,只需输入您的意思‘噢1m 20s。这真的很简单!”);
     /串口。println(”式“V”的观点去看你。1.5小时最大(安全隐患)!”);
     /串行out.println(“你知道有一个!要打开或关闭它,“L”型。”);
     /串口。println(”式的“B”把报警状态。”);} 
     
     
     
    无效loop() { 
     /把你的主要代码,运行多次:
     unsigned long currentmillis = millis();
    如果(串行。available()){ 
     STR =串行。read();
    如果(因而isalpha(STR)!开始)
    开关(STR){ 
    案例“H”:/ /小时
     H =哪里。tofloat();/ /不修改变量H,M,或是因为我们想用户所输入的显示!
                interval -= a;
                a = (h * 60 * 60 * 1E3);
                where = "";
                d = true;
                interval += a;
                psMillis = millis();
                viewer = true;
                break;
              case 'm':
                //minutes
                m = where.toFloat();
                interval -= b;
                b = (m * 60 * 1E3);
                where = "";
                e = true;
                interval += b;
                psMillis = millis();
                viewer = true;
                break;
              case 's':
                //seconds
                s = where.toFloat();
                interval -= c;
                c = (s * 1E3);
                where = "";
                f = true;
                interval += c;
                psMillis = millis();
                viewer = true;
                break;
              case 'v':
                if ((interval <= maxLoad)) {
                  Serial.print("You entered a time of ");
                  readTime(d, e, f, h, m, s);
                  Serial.println(split);
                  Serial.print("\t");
               串行out.println(“Y型”是的,我们将开始!”);
    查看器=假;
     } { //其他
    。改变就改变了maxLoad开头的所有代码(17-19行)。
    串行out.println(“太!走下“+字符串(HR)+“小时”+字符串(Mn)+“分钟”+字符串(SEC)+“秒”);} 
     
    打破;
    案例“Y”:
    如果((间隔≤maxLoad)&(间隔>0)){ // /启动机器
    查看器=假;
     fadeinterval = 4;
     println(”系列。;
    串行out.println(“暂停/恢复:'p'不复位:R T端的计时器:“E”没有剩余时间:‘W’。”);
    如果(buzzornot){ 
    期= true;
     beeptime = 1E3;
     buzzercount = 4;} 
     
    如果(lightornot){ 
     digitalwrite(LED,高);
     } 
     digitalwrite(继电器、低);
     fadeornot = false;
     newinterval =区间;
     psmillis = millis();
    开始=真;
     placeholder1 = millis();
     } 
    打破;
     } 
    开关(STR){ 
    案例P 
    如果(':
     {开始){ ////////////////////////////////////////////////////////////////////////////////////最!停顿){ //该代码允许用户暂停机定时器然后继续回到它离开的地方。
    暂停= true;
     fadeornot = false;
     newinterval = newinterval -(placeholder2 - placeholder1);
     psmillis = currentmillis;
     placeholder1 = currentmillis;
    串行out.println(“恢复”);
     digitalwrite(继电器、低);
    ;)
    别的{ 
    暂停= false;//相信它或没有,但我们需要暂停虚假,为了。:0 
     fadeornot = true;
     placeholder2 = currentmillis;
    双pausedinterval =(newinterval -(placeholder2 - placeholder1));
    打印串口。剩余时间:”);
     readduring(pausedinterval);
     digitalwrite(继电器,高);
     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
     
     
     } } } 
     
     
    打破;
     
     
    案例的“r”:/ /复位定时器
    如果(开始){ 
    串口打印(“重置定时器回到“);
     readtime(D,E,F,H,M,S);
    串口打印(分);
     newinterval =区间;
    如果(停顿){ 
    串行out.println(“恢复”);} 
     
    其他
     { 
    串行out.println(“,还暂停”);} 
     
     psmillis = millis();
     placeholder2 = millis();
     placeholder1 = millis();
    数据=定时器
    如果(开始){ 
    串行out.println(“结束计时器”);
    暂停= true;
     newinterval = 0;
    数据= lengthofsong + 1;
     } 
    打破;
    案例“W”:/ /结束计时器
    如果(启动和暂停){ 
    系列。打印(“T T T时间:”);
    双pausedinterval =(newinterval -(millis() - placeholder1));
     readduring(pausedinterval);
     } 
    打破;
    案例“L”:/ /灯光设置
     lightornot = true;
    如果(计数= = 0){ 
     digitalwrite(LED,低);
     lightornot = false;
    串行out.println(“T tnightlight:关闭”);
     fadeornot =!开始){ 
     digitalwrite(LED,高);
    串行out.println(“T tnightlight:“);
     fadeornot = true;
     } 
     else if(数= =!开始){ 
     fadeornot = false;
    串行out.println(“T tnightlight:衰落”);} else 
     
    (启动和暂停){ 
    如果(计数= = 1){ 
     fadeornot = false;
    串行out.println(“T tnightlight:简历衰落”);
    计数+ +;
     } 
     } 
    别的!pause) {
                if (count == 1) {
                  count++;
                  fadeOrNot = true;
                  Serial.println("\t\tNightLight: Blinking");
                }
              }
              if (count == 2) {
                count = -1;
              }
              count++;
              break;
            case 'b':                                        //Alarm settings
              Serial.print("\t\tBuzzer: ");
              if (buzzOrNot) {
                buzzOrNot = false;
                shortTime = false;
                speakerPin = dummyPin;
                Serial.println("Off");
              }
              else {
                buzzOrNot = true;
                Serial.println("On");
                speakerPin = PiezoPin;
                shortTime = true;
                BeepTime = 75;
              }
              break;
          }
        }
        else if (isDigit(str)) {
          where += char(str);    //Add numbers, not words, in a string that will be converted later with toFloat().
        }
      }
      else {                          //This else statement will probably have more instances tha
          
          (责任编辑:admin)
    织梦二维码生成器
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线----------------------------
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片