- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LED阵列Arduino LED阵列Arduino
大顆的蜂鳴器,使用電晶體來放大訊號。若不太要求聲音大小聲、蜂鳴器本身也屬於比較小尺寸的,可以直接從Arduino的腳位接上蜂鳴器。 Arduino與蜂鳴器接線 void playTone(int tone, int duration) { for (long i = 0; i duration * 1000L; i += tone * 2) { digitalWrite(speakerPin, HIGH); delayMicroseconds(tone); digitalWrite(speakerPin, LOW); delayMicroseconds(tone); } } 音階 void playNote(char note, int duration) { char names[] = { c, d, e, f, g, a, b, C }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; // 利用比對字元的方式來播放某一個音階 for (int i = 0; i 8; i++) { // 將比對到的音階高電位時間長度傳送給playTone函式播放 if (names[i] == note) playTone(tones[i], duration); } } 節拍 要在8X8的LED陣列上畫出自己想要的圖案,需要先拿一張空白的紙,畫滿跟LED陣列一樣的排列方式,或是用方格紙也行,必須知道圖案需要怎麼樣的控制方式才可以達到最接近的圖形。 特殊LED閃爍 for(i=1;i=3;i++) digitalWrite(UDPins[i],HIGH); for(i=0;i=5;i++) digitalWrite(RLPins[i],HIGH); digitalWrite(RLPins[5],LOW); 分段測試 for(i=1;i=4;i++) digitalWrite(UDPins[i],HIGH); for(i=0;i=5;i++) digitalWrite(RLPins[i],HIGH); digitalWrite(RLPins[5],LOW); 最後延遲是決定圖案閃爍的頻率,延遲越小閃爍速度越快。也可以搭配類比訊號,例如光敏電阻,當光線越暗時,心就會跳得越快。偷偷給個提示,可以使用map這個函式來做轉換唷! 結果呈現 擴充數位輸出的晶片:74HC595 需要3隻腳位,就可以擴充到8隻數位輸出 數位擴充 腳位編號 名稱 功能說明 1-7, 15 Q0-7 並列輸出 (Parallel Output) 9 Q7’ 串列輸出 (Serial Output) 8 GND 接地 16 Vcc 5伏特工作電壓 10 MR Master Reset,接5伏特 11 SH_CP Shift Register Clock Input 12 ST_CP Storage Register Clock Input 13 OE Output Enable,低電位表示致能啟動 14 DS Data Serial input,串列資料輸入 595腳位說明 Arduino與單顆595接線 SPI(Serial Peripheral Interface)的通訊 需要從Arduino的clockPin(Pin 12)輸出,這樣74HC595才會知道dataPin(Pin 11)的正確讀取方式。 shiftOut 只需要將SH_CP和ST_CP接在一起,另外第1顆的Q7’接到第2顆的DS就大功告成了。 多顆595 CH5 數位訊號 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇 數位訊號通常會使用2進位表示: 10011010101 在0與1之間所轉換的其實就是電壓高低的準位,0表示電壓在低準位,而1表示電壓在高準位,依據系統運作的工作電壓,低準位和高電壓準位不會只限於單一數值,而會介於一電壓範圍區間內。 數位訊號則非常要求時脈周期,每個訊號的時間長短會依據連接的設備不同而有不同的要求。 數位表示方式 digitalWrite(ledPin, HIGH); // 將第13隻腳設為高電位 delay(1000); // 等待1秒 digitalWrite(ledPin, LOW); // 將第13隻腳設為低電位 delay(1000); // 等待1秒 改變Delay函式內的時間參數,會有不同的影響 Arduin
文档评论(0)