久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5603|回復: 0
打印 上一主題 下一主題
收起左側

基于arduino nano的“機器貓”

[復制鏈接]
跳轉到指定樓層
樓主
買麥當勞“開心樂園餐”送的機器貓玩偶:


所需材料:


  • arduino nano
  • U盤
  • 手機震子
  • 撥動小開關
  • 雙色發光二極管
  • 高亮草帽5mm白色發光二極管
  • 壓電陶瓷片
  • 光敏電阻
  • 電阻:4.7K×1,220×2,1M×1,20×1

組裝:


  • 改造U盤為合適尺寸并引出最外兩個供電正負極引腳
  • U盤引出的供電引腳正極經撥動開關到nano的Vin腳,負極直接到nano的GND
  • 手機震子接nano的GND并串20歐姆電阻到D7腳
  • 雙色發光二極管是供陽極的,將220歐姆電阻串中間腳到nano +5V輸出,其余兩腳分別到D5和D6
  • 高亮白色發光二極管接nano的GND并串220歐姆電阻到D9
  • 壓電陶瓷片并1M歐姆電阻正極接nano的A1,負極接GND
  • 光敏電阻接nano +5V和A0,4.7k歐姆電阻接A0和GND
  • 揚聲器接nano D8腳和GND

代碼:
  1.     // 8-ohm speaker on digital pin D8
  2.     // shock moto on digital pin D7
  3.     // big light on digital pin D9
  4.     // led2 on degital pin D6
  5.     // led1 on degital pin D5

  6.     // photoresistor on analog A0 to 5V
  7.     // 4.7K resistor on analog A0 to ground

  8.     // + connection of the piezo attached to analog in A1
  9.     // - connection of the piezo attached to ground
  10.     // 1-megohm resistor attached from analog in A1 to ground

  11.     //randompin A2

  12.     #include "pitches.h"
  13.     #include "notes.h"
  14.     //output
  15.     const int redLed = 5;
  16.     const int greenLed = 6;
  17.     const int motopin = 7;
  18.     const int tonepin = 8;
  19.     const int bigLed = 9;
  20.     //input
  21.     const int lightpin=A0;
  22.     const int knockpin=A1;
  23.     const int randpin=A2;

  24.     int brightness = 0;    // how bright the LED is
  25.     int fadeAmount = 1;    // how many points to fade the LED by
  26.     int lightvalue;
  27.     boolean isactive = true;
  28.     //運行模式,0發聲,1震動
  29.     int runmode = 0;
  30.     const unsigned long sleeptime = 300000;  //5 min
  31.     long previousMillis = 0;
  32.     unsigned long currentMillis = 0;
  33.     const unsigned long mintev = 3600000; // 1 hour
  34.     //錄制震動的數組
  35.     boolean shockarray[30];

  36.     void setup() {
  37.       randomSeed(analogRead(randpin));
  38.       shockarray[0]=true;  //激活的震動被看作一次輸入
  39.       pinMode(bigLed, OUTPUT);
  40.       pinMode(redLed, OUTPUT);
  41.       pinMode(greenLed, OUTPUT);
  42.       pinMode(motopin, OUTPUT);
  43.       resetled();
  44.       setmodeled(runmode);  //設置狀態燈顯示
  45.       lightvalue=analogRead(lightpin);
  46.       playmusic(notesstart,Durationsstart,sizeof(notesstart)/sizeof(notesstart[0]),1);

  47.     }

  48.     void loop() {
  49.       //計算時間
  50.       tick();
  51.       //判斷是否處于活動狀態
  52.       if(isactive) {    //激活狀態
  53.         //遮擋 改變運行模式
  54.         if(checkcover()) {
  55.           runmode = runmode +1;
  56.           if(runmode> 1) {
  57.             runmode = 0;
  58.           }
  59.           //設置模式的led
  60.           resetled();
  61.           setmodeled(runmode);  //設置狀態燈顯示
  62.           resettick();
  63.         }else{
  64.           //震動 換歌 和 震動輸入
  65.           if(checkknock()) {
  66.             if(runmode == 0) {    //換歌
  67.               randomplay();
  68.               setmodeled(runmode);  //恢復狀態燈顯示
  69.             }else if(runmode == 1) {  //震動輸入
  70.               recordandplayshock();
  71.             }
  72.             resettick();
  73.           }else{
  74.             //goto sleep
  75.             if(checktime(sleeptime)) {
  76.               isactive = false;
  77.               resetled();
  78.               resettick();
  79.             }
  80.           }
  81.         }
  82.       }else{      //休眠狀態
  83.         if(checkActive()) {
  84.           isactive=true;
  85.           resetled();
  86.           setmodeled(runmode);   //恢復狀態燈顯示
  87.           resettick();
  88.         }else{
  89.           //呼吸燈
  90.           fade(bigLed,100,20);
  91.           //運行休眠1小時的事件   報時
  92.           if(checktime(mintev)) {
  93.             playmusic(notesalarm,Durationalarm,sizeof(notesalarm)/sizeof(notesalarm[0]),1);
  94.           }
  95.         }
  96.       }
  97.       
  98.       //fade(bigLed,100,30);
  99.       //flash(bigLed,50);
  100.       //shockme(motopin,500,500);
  101.       //  if(checkknock()) {
  102.       //    flash(bigLed,50);
  103.       //  }
  104.       //  if(checkcover()) {
  105.       //    flash(bigLed,50);
  106.       //  }
  107.       //Blink(redLed,500,500);
  108.       //Blink(greenLed,500,500);
  109.     }
  110.     //錄制和播放震動
  111.     void recordandplayshock() {
  112.       //進行錄制 帶閃光
  113.       int arraylen=sizeof(shockarray)/sizeof(shockarray[0]);
  114.       flash(bigLed,100);

  115.       for(int i=1;i < arraylen;i++) {
  116.         shockarray[i]=checkknock();
  117.         if(shockarray[i]) {
  118.           flash(bigLed,100);
  119.         }else{
  120.           delay(50);
  121.         }
  122.       }
  123.       //播放
  124.       for(int i=0;i < arraylen;i++) {
  125.         if(shockarray[i]) {
  126.           shockme(motopin,100,50);
  127.         }else{
  128.           delay(50);
  129.         }
  130.       }
  131.     }
  132.     //隨機播放
  133.     void randomplay() {
  134.       long randNumber = random(10);  //0-9
  135.       switch (randNumber) {
  136.           case 0:
  137.             playmusic(notesstart,Durationsstart,sizeof(notesstart)/sizeof(notesstart[0]),1);
  138.             break;
  139.           case 1:
  140.             playmusic(notesalarm,Durationalarm,sizeof(notesalarm)/sizeof(notesalarm[0]),1);
  141.             break;
  142.           case 2:
  143.             playmusic(notesnokia,Durationsnokia,sizeof(notesnokia)/sizeof(notesnokia[0]),1);
  144.             break;
  145.           case 3:
  146.             playmusic(notescat,Durationscat,sizeof(notescat)/sizeof(notescat[0]),1);
  147.             break;
  148.           case 4:
  149.             playmusic(notemario,Durationsmario,sizeof(notemario)/sizeof(notemario[0]),1);
  150.             break;
  151.           case 5:
  152.             playmusic(noteMission,DurationsMission,sizeof(noteMission)/sizeof(noteMission[0]),1);
  153.             break;
  154.           case 6:
  155.             doflash(4);
  156.             break;
  157.           case 7:
  158.             doblink(4);
  159.             break;
  160.             case 8:
  161.             doshock(4);
  162.             break;
  163.           default:
  164.             playmusic(notesstart,Durationsstart,sizeof(notesstart)/sizeof(notesstart[0]),1);
  165.         }
  166.     }

  167.     //設置運行模式狀態led 無自動熄滅
  168.     void setmodeled(int mode) {
  169.       int pin = redLed;
  170.       if(mode==1)
  171.       {
  172.         pin = greenLed;
  173.       }
  174.       digitalWrite(pin,LOW);   // set the LED on
  175.     }
  176.     //重置所有led
  177.     void resetled() {
  178.       digitalWrite(bigLed, LOW);
  179.       digitalWrite(redLed, HIGH);    // set the LED off
  180.       digitalWrite(greenLed, HIGH);    // set the LED off
  181.     }
  182.     //播放音符
  183.     void playmusic(int melody[],int noteDurations[],int notelengh,float notespeed) {
  184.       for (int thisNote = 0; thisNote < notelengh ; thisNote++) {
  185.         // to calculate the note duration, take one second
  186.         // divided by the note type.
  187.         //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
  188.         int noteDuration = 1000/noteDurations[thisNote];
  189.         tone(tonepin, melody[thisNote],noteDuration);
  190.         // to distinguish the notes, set a minimum time between them.
  191.         // the note's duration + 30% seems to work well:
  192.         int pauseBetweenNotes = noteDuration * notespeed;
  193.         delay(pauseBetweenNotes);
  194.         // stop the tone playing:
  195.         noTone(tonepin);
  196.       }
  197.     }
  198.     void doshock(int count) {
  199.       int idx=0;
  200.       while(idx<count) {
  201.         shockme(motopin,1000,500);
  202.         idx=idx+1;
  203.       }
  204.     }

  205.     void doflash(int count) {
  206.       int idx=0;
  207.       while(idx<count) {
  208.         flash(bigLed,50);
  209.         delay(50);
  210.         idx=idx+1;
  211.       }
  212.     }
  213.     void doblink(int count) {
  214.       int idx=0;
  215.       int temp = runmode;
  216.       resetled();
  217.       while(idx<count) {
  218.         temp =temp+1;
  219.         if(temp > 1) {
  220.           temp=0;
  221.         }
  222.         int pin = redLed;
  223.          if(temp==1) {
  224.            pin = greenLed;
  225.          }
  226.         Blink(pin,100,100);
  227.         idx=idx+1;
  228.       }
  229.     }

  230.     //呼吸燈 無自動熄滅
  231.     void fade(int pin,int maxl,int time) {  
  232.       analogWrite(pin, brightness);   
  233.       // change the brightness for next time through the loop:
  234.       brightness = brightness + fadeAmount;
  235.       // reverse the direction of the fading at the ends of the fade:
  236.       if (brightness <= 0 || brightness >= maxl) {
  237.         fadeAmount = -fadeAmount ;
  238.       }         
  239.       delay(time);  
  240.     }
  241.     //閃爍
  242.     void Blink(int pin,int ontime,int offtime) {
  243.       digitalWrite(pin,LOW);   // set the LED on
  244.       delay(ontime);            
  245.       digitalWrite(pin, HIGH);    // set the LED off
  246.       delay(offtime);         
  247.     }
  248.     //閃光
  249.     void flash(int pin,int time) {
  250.       digitalWrite(pin, LOW);
  251.       digitalWrite(pin, HIGH);
  252.       delay(time);
  253.       digitalWrite(pin, LOW);
  254.     }
  255.     //震動
  256.     void shockme(int pin,int ontime,int offtime) {
  257.       digitalWrite(pin,HIGH);
  258.       delay(ontime);            
  259.       digitalWrite(pin, LOW);
  260.       delay(offtime);   
  261.     }

  262.     //檢測震動
  263.     boolean checkknock() {
  264.       boolean isknocked = false;
  265.       int sensorReading = analogRead(knockpin);
  266.         if (sensorReading >= 2) {
  267.           isknocked=true;
  268.         }
  269.       return isknocked;
  270.     }
  271.     //檢測光線遮擋
  272.     boolean checkcover() {
  273.       boolean iscovered = false;
  274.       int temp=analogRead(lightpin);
  275.       if((lightvalue - temp) >= 50) {
  276.         iscovered = true;
  277.       }
  278.       lightvalue = temp;
  279.       delay(50);
  280.       return iscovered;
  281.     }
  282.     //檢測光線遮擋快速
  283.     boolean checkcoverfast() {
  284.       boolean iscovered = false;
  285.       int temp=analogRead(lightpin);
  286.       if((lightvalue - temp) >= 50) {
  287.         iscovered = true;
  288.       }
  289.       lightvalue = temp;
  290.       return iscovered;
  291.     }
  292.     //檢測激活
  293.     boolean checkActive() {
  294.       boolean isActive =false;
  295.       isActive = checkcoverfast();
  296.       if(!isActive)
  297.       {
  298.         isActive = checkknock();
  299.       }
  300.       return isActive;
  301.     }

  302.     //計數器計時
  303.     void tick() {
  304.       currentMillis = millis();
  305.       //計時器溢出自動復位的處理
  306.       if(currentMillis < previousMillis) {
  307.         unsigned long partMillis = 4294967295 -  previousMillis + 1;
  308.         previousMillis =-partMillis + 1;
  309.       }
  310.     }
  311.     //同時只允許使用一個計數器
  312.     boolean checktime(unsigned long time) {
  313.       boolean istimeup =false;
  314.       if(currentMillis - previousMillis >= time) {
  315.         istimeup = true;
  316.         resettick();
  317.       }
  318.       return istimeup;
  319.     }
  320.     //重置計數器
  321.     void resettick() {
  322.       previousMillis=currentMillis;
  323.     }
復制代碼



項目引用的文件:
pitches.h
  1.     /*************************************************
  2.     * Public Constants
  3.     *************************************************/

  4.     #define NOTE_B0  31
  5.     #define NOTE_C1  33
  6.     #define NOTE_CS1 35
  7.     #define NOTE_D1  37
  8.     #define NOTE_DS1 39
  9.     #define NOTE_E1  41
  10.     #define NOTE_F1  44
  11.     #define NOTE_FS1 46
  12.     #define NOTE_G1  49
  13.     #define NOTE_GS1 52
  14.     #define NOTE_A1  55
  15.     #define NOTE_AS1 58
  16.     #define NOTE_B1  62
  17.     #define NOTE_C2  65
  18.     #define NOTE_CS2 69
  19.     #define NOTE_D2  73
  20.     #define NOTE_DS2 78
  21.     #define NOTE_E2  82
  22.     #define NOTE_F2  87
  23.     #define NOTE_FS2 93
  24.     #define NOTE_G2  98
  25.     #define NOTE_GS2 104
  26.     #define NOTE_A2  110
  27.     #define NOTE_AS2 117
  28.     #define NOTE_B2  123
  29.     #define NOTE_C3  131
  30.     #define NOTE_CS3 139
  31.     #define NOTE_D3  147
  32.     #define NOTE_DS3 156
  33.     #define NOTE_E3  165
  34.     #define NOTE_F3  175
  35.     #define NOTE_FS3 185
  36.     #define NOTE_G3  196
  37.     #define NOTE_GS3 208
  38.     #define NOTE_A3  220
  39.     #define NOTE_AS3 233
  40.     #define NOTE_B3  247
  41.     #define NOTE_C4  262
  42.     #define NOTE_CS4 277
  43.     #define NOTE_D4  294
  44.     #define NOTE_DS4 311
  45.     #define NOTE_E4  330
  46.     #define NOTE_F4  349
  47.     #define NOTE_FS4 370
  48.     #define NOTE_G4  392
  49.     #define NOTE_GS4 415
  50.     #define NOTE_A4  440
  51.     #define NOTE_AS4 466
  52.     #define NOTE_B4  494
  53.     #define NOTE_C5  523
  54.     #define NOTE_CS5 554
  55.     #define NOTE_D5  587
  56.     #define NOTE_DS5 622
  57.     #define NOTE_E5  659
  58.     #define NOTE_F5  698
  59.     #define NOTE_FS5 740
  60.     #define NOTE_G5  784
  61.     #define NOTE_GS5 831
  62.     #define NOTE_A5  880
  63.     #define NOTE_AS5 932
  64.     #define NOTE_B5  988
  65.     #define NOTE_C6  1047
  66.     #define NOTE_CS6 1109
  67.     #define NOTE_D6  1175
  68.     #define NOTE_DS6 1245
  69.     #define NOTE_E6  1319
  70.     #define NOTE_F6  1397
  71.     #define NOTE_FS6 1480
  72.     #define NOTE_G6  1568
  73.     #define NOTE_GS6 1661
  74.     #define NOTE_A6  1760
  75.     #define NOTE_AS6 1865
  76.     #define NOTE_B6  1976
  77.     #define NOTE_C7  2093
  78.     #define NOTE_CS7 2217
  79.     #define NOTE_D7  2349
  80.     #define NOTE_DS7 2489
  81.     #define NOTE_E7  2637
  82.     #define NOTE_F7  2794
  83.     #define NOTE_FS7 2960
  84.     #define NOTE_G7  3136
  85.     #define NOTE_GS7 3322
  86.     #define NOTE_A7  3520
  87.     #define NOTE_AS7 3729
  88.     #define NOTE_B7  3951
  89.     #define NOTE_C8  4186
  90.     #define NOTE_CS8 4435
  91.     #define NOTE_D8  4699
  92.     #define NOTE_DS8 4978
復制代碼



notes.h
  1.      //beep tone
  2.     // notes in the melody:
  3.     int notesalarm[] = {
  4.       NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};
  5.       // note durations: 4 = quarter note, 8 = eighth note, etc.:
  6.       int Durationalarm[] = {
  7.         4,8,8,4,4,4,4,4 };
  8.       
  9.     //start tone
  10.     int notesstart[] = {
  11.       NOTE_C5, NOTE_G5,NOTE_E5, NOTE_G5};
  12.       int Durationsstart[] = {
  13.        8, 8, 8,4 };
  14.       
  15.     //nokia tone
  16.     int notesnokia[] = {
  17.       NOTE_G5, NOTE_F5, NOTE_A4, NOTE_B4,
  18.       NOTE_E5, NOTE_D5, NOTE_F4, NOTE_G4,
  19.       NOTE_D5, NOTE_C5, NOTE_E4, NOTE_G4,
  20.       NOTE_C5 };
  21.       int Durationsnokia[] = {
  22.        8, 8, 4, 4,
  23.        8, 8, 4, 4,
  24.        8, 8, 4, 4,
  25.        2};
  26.       
  27.        //machinecat
  28.        int notescat[] = {
  29.       NOTE_G4, NOTE_A4, NOTE_C5, NOTE_E5,NOTE_A5,NOTE_E5,NOTE_G5,0,
  30.       NOTE_G5, NOTE_A5, NOTE_G5, NOTE_E5,NOTE_F5, NOTE_E5,NOTE_D5,0,
  31.       NOTE_A4,NOTE_D5, NOTE_D5,NOTE_F5, NOTE_B5, NOTE_B5, NOTE_A5, NOTE_G5,
  32.       NOTE_F5,NOTE_F5,NOTE_E5,NOTE_A4,NOTE_B4,NOTE_C5,
  33.       NOTE_D5,
  34.       NOTE_A5,NOTE_A5,NOTE_G5,NOTE_F5,NOTE_G5,NOTE_A5,NOTE_G5,
  35.       NOTE_D5,NOTE_E5,NOTE_FS5,NOTE_D5,NOTE_G5,0,
  36.       NOTE_A5,0,NOTE_G5,0,NOTE_F5,0,0,
  37.       NOTE_D5,NOTE_B5,NOTE_A5,NOTE_G5,NOTE_A5,NOTE_G5,NOTE_F5,
  38.       0,NOTE_G5,NOTE_A5,NOTE_E5,NOTE_D5,
  39.       NOTE_C5
  40.       };
  41.       int Durationscat[] = {
  42.        4, 8, 4, 8, 4, 8,3,32,
  43.        4, 8, 4, 8, 4, 8,3,16,
  44.        4, 8, 4, 8, 4, 8,4,8,
  45.        3, 3, 8, 3, 3, 8,
  46.        1,
  47.        3, 4, 8, 8, 8, 8,3,
  48.        4, 8, 4, 8, 2, 8,
  49.        4, 8, 4, 8, 4, 8, 4,
  50.        3, 4, 8, 4, 8, 4, 4,
  51.        4, 4, 8, 2, 8,
  52.        1
  53.     };
  54.       
  55.        //Mario
  56.        int notemario[] = {NOTE_E4, NOTE_E4, NOTE_E4, NOTE_C4, NOTE_E4, NOTE_G4, NOTE_G3,NOTE_C4,
  57.        NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4,
  58.        NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3,NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3,
  59.        NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4,
  60.        NOTE_C4, NOTE_D4, NOTE_B3,NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3,
  61.        NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_C5,
  62.        NOTE_C5, NOTE_C5,NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4,
  63.        NOTE_A3, NOTE_C4, NOTE_D4, NOTE_DS4, NOTE_D4,NOTE_C4};
  64.        int Durationsmario[] = {8,4,4,8,4,2,2,3,
  65.        3,3,4,4,8,4,8,8,8,4,
  66.        8,4,3,8,8,3,3,3,3,4,
  67.        4,8,4,8,8,8,4,8,4,3,
  68.        8,8,2,8,8,8,4,4,8,8,
  69.        4,8,8,3,8,8,8,4,4,4,
  70.        8,2,8,8,8,4,4,8,8,4,
  71.        8,8,3,3,3,2};
  72.       
  73.        //Mission Impossible
  74.        int noteMission[] = {NOTE_D5,NOTE_DS5, NOTE_D5,NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,
  75.        NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,
  76.        NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,
  77.        NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,
  78.        NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_D5,NOTE_DS5,NOTE_DS5,NOTE_E5,NOTE_F5,
  79.        NOTE_G5,
  80.        NOTE_E2,0,0,NOTE_E2,0,NOTE_E2,NOTE_G2,0,NOTE_A2,0,
  81.        NOTE_E2,0,0,NOTE_E2,0,NOTE_E2,NOTE_D2,0,NOTE_DS2,0,
  82.        NOTE_AS4,NOTE_G4,NOTE_D4,NOTE_D4,NOTE_AS4,NOTE_G4,NOTE_CS4,NOTE_CS4,NOTE_AS4,NOTE_G4,NOTE_C4,NOTE_C4,NOTE_B3,NOTE_C4,0,
  83.        NOTE_B3,NOTE_G3,NOTE_FS4,NOTE_FS4,NOTE_B3,NOTE_G3,NOTE_F4,NOTE_F4,NOTE_B3,NOTE_G3,NOTE_E4,NOTE_E4,NOTE_DS4,NOTE_D4
  84.       
  85.        };
  86.        int DurationsMission[] = {8,16,16,16,16,16,16,
  87.        16,16,16,16,16,16,16,16,
  88.        16,16,16,16,16,16,16,16,
  89.        16,16,16,16,16,16,16,16,
  90.        16,16,16,16,16,16,16,16,
  91.        8,
  92.        6,6,6,6,6,6,6,6,6,6,
  93.        6,6,6,6,6,6,6,6,6,6,
  94.        6,6,2,1,6,6,2,1,6,6,2,1,6,6,1,
  95.        6,6,2,1,6,6,2,1,6,6,2,1,6,6
  96.        };
復制代碼

完成:



注意事項:
  • 壓電陶瓷片盡量選用靈敏的、分貝高的,否則就不能感應聲音只能感應震動了
  • 揚聲器是原玩偶自帶的16歐姆0.25W,建議串100歐姆電阻
  • 從U盤引出電源時注意造成短路


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频在线播放 | 黄色一级大片在线免费看产 | 日韩精品一区二区三区 | 欧美精品一区在线发布 | 亚洲免费网 | 欧美aⅴ | 亚洲欧洲一区 | 97在线观视频免费观看 | 国产精品不卡视频 | 成人在线视频网 | av看片| 国产成人精品久久 | 精品一区二区三区在线观看国产 | 91资源在线观看 | 91麻豆精品一区二区三区 | 成人免费网站视频 | 国产欧美一区二区三区在线看蜜臀 | 午夜欧美一区二区三区在线播放 | 粉嫩一区二区三区性色av | 国产在线一区二区三区 | 日本精品久久久久久久 | 国产精品福利在线观看 | 欧美不卡一区二区三区 | 亚洲综合小视频 | 精品国产乱码久久久久久久久 | 国产激情视频 | 欧美成人一区二区三区 | 日本公妇乱淫xxxⅹ 国产在线不卡 | 欧美一区二区三区在线免费观看 | 成人在线国产 | 黄色av网站免费看 | 久久91精品国产一区二区三区 | 九九免费在线视频 | 午夜视频免费 | 日本午夜网站 | 中文字幕在线观看第一页 | 欧美vide| 一本一道久久a久久精品综合 | 日本成人中文字幕 | 国产成人精品一区二区在线 | 国产在线视频三区 |