---
# System prepended metadata

title: HW6_Arduino_漂浮的愛心
tags: [Arduino]

---

# 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]