LGT8F328P操作

特別註記:他們的套件包我沒有參與任何設計項目,單純自己拿到,看到有問題,想說幫忙處理,歡迎公司找我開發教具 XD )

因為使用翰林販售的三年級的套件中有一個實作內容是透過開發版,接收超音波感測器,並控制蜂鳴器以及LED產生反應的活動。而這其中,這張開發板上面的編號是LGT8F328P,因此激起了我的興趣,想說查看看這到底是什麼?結果發現他其實是一張仿ATmega328P的晶片,且有許多不同的版本及類型。下面就來分享一下他與一般的ATmega328P的差異,以及如何使用這張板子進行程式撰寫囉。

LGT8F328P

http://www.lgtic.com/upload/lgt8fx8p/LGT8FX8P_databook_v1.0.4.pdf

上面是他的官方Datasheet,這張板子有三種不同的封裝,而我手上這張板子拿到的是SSPO20的封裝類型,然後晶片上的雷射編碼被去除(也可能本來就沒打),但板子後面有寫他是哪顆IC。

而這張板子的工作電壓為1.8V~5.5V,因此可以在我們一般的供電環境下使用。我們可以直接用USB或是麵包板供電器等提供控制板需要的用電。其他在Arduino的使用在這張板子上也類似,因此下面我們就進入如何操作的環節吧?

LGT8F328P與Arduino的「軟體」設置

因為他不是Arduino他們家自己的產品,因此在使用上還是需要像ESP32系列,需要先安裝一些資料,讓Arduino IDE能有辦法跟LGT8F328P溝通。

這邊我以Arduino 1.0.6做示範(因為相對穩定,我電腦裡基本上都用這個版本)

我們可以先下載下面兩組資料

https://github.com/donly/Larduino_HSP#installation
https://github.com/RalphBacon/LGT8F328P-Arduino-Clone-Chip-ATMega328P

第一組資料可以直接從Arduino IDE裡面的 Sketch > Import Library > Add Library 點入後,點選下載下來的Zip檔,然後就會安裝進去了。

第二組資料則是點選C槽> Program File(x86) > Arduino > Hardware ,將第二組資料解壓縮後,Hardware中的資料丟入就OK了。

在接下來就是處理硬體的問題。

LGT8F328P與Arduino的「硬體」設置

一般我們使用Arduino或是其他開發板都是透過UART傳輸介面(通用非同步收發傳輸器(Universal Asynchronous Receiver/Transmitter,通常稱為UART))進行傳輸,而我們如果買原廠的Arduino板,他會透過ATmega16U2的IC作為對USB的連接晶片,副廠的或是自製的則會使用CH340這顆IC協助連接;另外如果手上拿的是Nano或是leonardo,他們則可以直接跟USB溝通,這是一些板子上不同的差異。

而我們這顆LGT8F328P在使用上則可以有兩種方式使他可以跟電腦進行溝通,第一種是買「TTL轉USB」的轉換器,第二種是使用DIP的Arduino,透過Arduino上面的晶片協助溝通。

常見的TTL to USB轉接器

在使用上,參考以下的接線方式即可做傳輸

VCC <—> VCC
GND <—> GND
Rx <—> Tx
Tx. <—> Rx
DTR <—> DTR

然後因為現在主流的晶片都是CH340,因此需要再下載他的驅動程式(http://www.wch.cn/download/ch341ser_zip.html

以上的操作都完成後,接下來我們就回到LGT8F328P這顆IC的部分。我們可以將「VCC, GND, Rx, Tx, DTR」五個孔位都焊上針腳或是24AWG的單芯線。

接下來將他與TTL連接上,接上電腦後就可以開始燒錄囉。

這邊進入Arduino IDE之後,在上排的功能列依照下面的位置選下去我們合適的開發板:Tool > Board> Arduino Pro or Pro mini (5V,16MHz)w/ATmega328。

選擇之後,接下來就可以正常燒錄程式囉。

那因為我拿到的板子裡面只有Blink,等於他的實際功能沒辦法發揮功效,因此這邊附上我自己幫翰林國中套件包寫的程式(特別註記:他們的套件包我沒有參與任何設計項目,單純自己拿到想說幫忙處理,歡迎公司找我開發教具 XD )



int trigPin = 8;    // 超音波感測器 Trig腳接 LGT8F328P pin 8
int echoPin = 11;    //超音波感測器 Echo 腳接 LGT8F328P pin 11
int speakerpin = 3;  //蜂鳴器訊號腳位(S)接 LGT8F328P pin 3
long duration, cm ;  //宣告計算距離時,需要用到的兩個實數
 
void setup() {
  Serial.begin (9600);           //設定序列埠監控視窗 (Serial Monitor) 和 Arduino資料傳輸速率為 9600 bps (Bits Per Second)
  pinMode(trigPin, OUTPUT);      //啟動距離感測器Trig腳,射出超音波 
  pinMode(echoPin, INPUT);       //超音波被障礙物反射後,用Echo讀取超音波
  pinMode(speakerpin, OUTPUT);   //對蜂鳴器送出PWM,使其鳴叫
}
 
void loop()
{                                  //程式計算出距離值 cm
  digitalWrite(trigPin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
  cm = (duration/2) / 29.1;  

  Serial.print(cm);     //印出距離值 cm 在序列埠監控顯示器 單位公分
  Serial.println(" cm");

   if (cm <= 5) {                       //距離小於5公分,蜂鳴器一直叫 
    tone(speakerpin, 1000, 100);
    delay (20);
      }
  if (cm > 5 && cm <= 15) {             //距離介於5到15公分,蜂鳴器斷斷續續叫,每次0.1秒 
    tone(speakerpin, 1000, 100);
    delay (100);
   }
 
  
  }

以上,供大家做參考唷。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s