創作內容

11 GP

arduino LCD 點陣液晶模組

作者:貓貓風 ฅ●ω●ฅ│2017-06-23 22:53:19│巴幣:22│人氣:2369
.











LCD顯示器也算是一般設備上蠻常用到的裝置,主要可以用來顯示英文與數字,如果要顯示中

文,則需要購買其他規格的顯示器

以下為LCD 點陣液晶模組的角位與對應的控制和接線圖






圖源: http://coopermaa2nd.blogspot.tw/2010/12/arduino-lab9-2x16-lcd-world.html

以下範例程式主要功能為顯示從PC端傳來的訊息,以及顯示裝置從剛通電開始執行經過的時間

同時也會顯示從 arduino 每秒所產生的亂數

arduino source code


  1. #include <LiquidCrystal.h>  
  2. // 建立 LiquidCrystal 的變數 lcd  
  3. // LCD 接腳:  rs, enable, d4, d5, d6, d7   
  4. // 對應到 Arduino 接腳:  12, 11,  5,  4,  3,  2  
  5. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
  6. unsigned long time_previous,now;  
  7. void setup() {  
  8.   Serial.begin(9600);  
  9.   // 設定 LCD 的行列數目 (2 x 16)  
  10.   lcd.begin(16, 2);  
  11.   // 列印 "Hello World" 訊息到 LCD 上  
  12.   lcd.print("hello, World!");  
  13.   delay(1000);  
  14.   lcd.clear();  
  15.   time_previous = millis();  
  16.    //利用analog pin的noise產生隨機的seed   
  17.   randomSeed(analogRead(0));   
  18. }  
  19. void loop() {  
  20.   // 將游標設到 column 0, line 1  
  21.   // (注意: line 1 是第二行(row),因為是從 0 開始數起):  
  22.   lcd.setCursor(0, 0);  
  23.   String s = "";  
  24.     //接收字元組成字串  
  25.     while (Serial.available()) {  
  26.         char c = Serial.read();  
  27.         if(c!='\n'){  
  28.             s += c;  
  29.         }  
  30.         delay(5);  
  31.         lcd.clear();//每次印結果前清除先前畫面  
  32.     }  
  33.   lcd.print(s);  
  34.   lcd.setCursor(0, 1);  
  35.   // 列印 Arduino 重開之後經過的秒數  
  36.   lcd.print(String("") + millis()/1000+"s");  
  37.   now = millis();  
  38.   if(now - time_previous > 1000)  
  39.   {  
  40.     time_previous += 1000;  
  41.   lcd.setCursor(6, 1);  
  42.   int randNumber = random(0,999);   
  43.   lcd.print(String("")+"Random "+ randNumber);  
  44.   }  
  45.     
  46. }  

C#
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Linq;  
  7. using System.Text;  
  8. using System.Windows.Forms;  
  9. using System.Threading;  
  10. using System.IO.Ports;  
  11.   
  12. namespace Serial_Send  
  13. {  
  14.     public partial class Form1 : Form  
  15.     {  
  16.         public Form1()  
  17.         {  
  18.             InitializeComponent();  
  19.         }  
  20.   
  21.         private void Form1_Load(object sender, EventArgs e)  
  22.         {  
  23.             serialPort1.BaudRate = 9600;  
  24.             serialPort1.Parity = Parity.None;  
  25.             serialPort1.DataBits = 8;  
  26.             serialPort1.StopBits = StopBits.One;  
  27.             serialPort1.Encoding = Encoding.GetEncoding("UTF-8");
  28.             /指定編碼格式 收到資訊才不會出現亂碼  
  29.             label1.Text = "PC狀態:尚未連線";  
  30.             serialPort1.PortName = "COM3";  
  31.         }  
  32.   
  33.         private void button1_Click(object sender, EventArgs e)  
  34.         {  
  35.             try  
  36.             {  
  37.                 serialPort1.Open();  
  38.                 Thread.Sleep(1000);  
  39.                 button1.Enabled = false;  
  40.                 label1.Text = "PC狀態:連線中";  
  41.             }  
  42.             catch  
  43.             {  
  44.                 label1.Text = "PC狀態:Comport open fail";  
  45.             }  
  46.         }  
  47.   
  48.         private void button2_Click(object sender, EventArgs e)  
  49.         {  
  50.             string data = "";  
  51.             data = textBox1.Text;  
  52.             serialPort1.Write(data);  
  53.         }  
  54.     }  
  55. }  

執行畫面









影片2執行結果為 先送出 當日時間,接著送出訊息 Test 顯示器立即刷新內容

以下影片為修改前的原始範例執行畫面,存粹顯示內建訊息與執行時間



引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3619376
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:涼涼風|C#|arduino

留言共 6 篇留言

真島伯爵
你是不是工程師

06-23 23:04

貓貓風 ฅ●ω●ฅ
怎麼會這樣問呢OAO?06-23 23:07
真島伯爵
因為你都在介紹程式語言啊

06-23 23:17

貓貓風 ฅ●ω●ฅ
我之前讀資工系的~06-24 09:30
小刀
我看不懂的說,我懂得吃~[e5]

06-24 01:08

貓貓風 ฅ●ω●ฅ
那一起去吃好吃的吧OWO06-24 09:30
Arthur
原來是工程師 貓貓風是人才喔^^

06-24 09:35

貓貓風 ฅ●ω●ฅ
其實還好@A@@ 新手06-24 09:36
珀伽索斯(Ama)
之前讀書時期我也與班上同學用麵包板做過,
不過這個要成功真的很不容易呢!

06-24 11:26

貓貓風 ฅ●ω●ฅ
就線只要有一根接錯就會跑不正確 需要點耐性06-24 14:15
小天
一整個像是在寫魔法語言一樣...(≧▽≦)

06-25 10:00

貓貓風 ฅ●ω●ฅ
我也快變魔法師惹 @_@06-25 22:15
我要留言提醒:您尚未登入,請先登入再留言

11喜歡★s1234567 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:arduino 四位數七... 後一篇:C# LINQ...

追蹤私訊切換新版閱覽

作品資料夾

dhreekingdon幸運看見的你
給你一顆紅心~讓你能保有一整天的好心情~祝你有個愉快的一天喲(<ゝω・)~❤看更多我要大聲說昨天17:57


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】