# HW6_Arduino_漂浮的愛心 >撰寫人[name=AmiYaku1049] [首頁--天空路1049號](https://skys-kid-lai.github.io/1004/) >>最後編輯[time=Mon, May 16, 2022 3:31 PM] ___ ## 實驗目的 透過設計程式碼並使用Tinkercad 網頁版模擬器及Arduino UNO 開發版,做出漂移的心和捲動的字。 ## 實驗原理 應用LCD的移位技巧及自建字型,讓LCD顯示漂移的心和捲動的字。 ## 實驗材料 **◆透過Tinkercad網頁模擬器線上實作◆** ◎Arduino UNO 開發版 x1 ◎歐姆板 x1 ◎可變電阻 330Ω x1 ◎電阻 220Ω x1 ◎滑動式開關 x1 ◎AA電池 1.5V x3 ◎跟你默契好的可愛電腦 x1 ## 實驗步驟 1.在Tinkercad網頁模擬器連接電路 2.在程式編譯區進行程式碼編譯(程式碼在下方↓) 3.確定程式碼無誤,按左上方即可開始模擬 4.紀錄輸出 ### 電路連接完整圖 ![](https://i.imgur.com/fXUzjER.png =70%x) #### 電路部分放大 ▽下 ![](https://i.imgur.com/3ZmQx0f.png =70%x) ▽上 ![](https://i.imgur.com/jUi7zsE.png =70%x) ### 程式碼(已經過改良,並非為參考文獻內原始程式碼) ```clink= c #include <LiquidCrystal.h> LiquidCrystal LCD(12,11,10,5,4,3,2); byte heart[8] = {0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; void setup() { LCD.begin(16,2); LCD.createChar(0,heart); } void loop() { LCD.home(); LCD.print("I love you baby."); LCD.setCursor(8,1); LCD.write(byte(0)); for(int i=0; i<8; i++) { LCD.scrollDisplayLeft(); delay(200); } for(int i=0; i<15; i+=2) { for(int j=0; j<(15-i); j++) { LCD.scrollDisplayRight(); delay(200); } for(int j=0; j<(15-i-1); j++) { LCD.scrollDisplayLeft(); delay(200); } } LCD.clear(); delay(1000); } ``` ## 實驗結果 **◎第一行顯示字元"I love you baby",第二行顯示愛心圖案。** * 字元會先往左捲動,再往右捲動(此處放電路圖接上電源的照片,以供參考) ![](https://i.imgur.com/yZjiK7q.png =70%x) **◎觀察調整可變電阻或滑動式開關時,螢幕亮度的變化** * 滑動式開關開啟,慢慢調整可變電阻(字的亮度變暗) ![](https://i.imgur.com/8e9Dwbi.png =70%x) * 滑動式開關不開,可變電阻維持調整後(字以及螢幕亮度都變暗) ![](https://i.imgur.com/nIo3RW2.png =70%x) * 滑動式開關不開,可變電阻調整回原樣(螢幕亮度維持變暗,字的亮度變亮) ![](https://i.imgur.com/zcaOntz.png =70%x) * 滑動式開關開啟,可變電阻維持原樣(螢幕亮度變亮,字的亮度維持變亮) ![](https://i.imgur.com/igR4ZZ5.png =70%x) ## 實驗討論 * **運作過程中,LCD不會亮** 我的解決方法:先檢查程式碼,確認程式碼沒有編譯上的錯誤後,再調整電路。 原因是沒有將Arduino的GND接腳接地。 ## 實驗心得 我想知道加分題做成功的都是怎麼做的! 在模擬器上面對於怎麼輸入還不大清楚。 ## 實驗文獻 >編者:艾迪諾 >出版日期:2017.01.06 >書名(頁數):Arduino全能微處理機實習:強效解析(p7-27~p7-30) >出版社:全華圖書 >[color=#CE0000]