8-1 功能簡介 8-4 實驗成果 8-2 電路說明 8-5 延伸應用與練習 8-3 程式設計

Slides:



Advertisements
Similar presentations
H T U 報告者:周振聰 僑生處 主任. h T U 免會考成績入學 h T U 未來望 您想學 一技之長嗎 ? 歡迎參加莊敬建教班 不但三年免學費,且 保證讓您學到一技之 長,脫離貧窮,邁向 光明的人生 免試入學.
Advertisements

桃園地景藝術節 最近桃園在舉辦桃園地景藝術節,種共有五大主題區, 分別是:黃色小鴨展區、巨型蓮花展區、草間點點展區、范姜 古厝展區、新屋水巷展區。那這些景點到底個展覽什麼呢?讓 我們繼續看下去 …… 。
4-2 、聚落的演變 人口的分布 自然環境特性、交通便利性及就業 機會等因素,常影響人們對於居住地點 的選擇。 臺灣西部地區的平原和盆地,地勢 較為低平、開發較早,在肥沃的土壤、 便捷的交通網路等有利的條件下,工商 業往來頻繁,人口較為密集。
股指期货的风险及防范.
我国青少年题材邮票欣赏 一、各个历史时期的重大题材 二、青少年德、智、体题材 三、童话题材 四、少儿绘画创作题材 五、儿童附捐邮票
小一家長會 訓育訊息 德性培育組 余家濂主任
加快培育和发展战略性新兴产业 科技部调研室 胥和平
产学研项目财务管理若干问题 鲁春艳
2014年语言文字工作总结 党委学生工作部 2014年12月5日.
第四章 工业地域的形成与发展 第一节 工业的区位选择.
第3章: 產業與競爭環境 張緯良 世新大學資訊管理系.
高雄市復華高級中學 校務分享簡介 簡報人:康木村 校長.
文明建设,气象先行 ——农安县气象局 2.
消防知识培训.
滑雪美食街 組員:林韋伶、張雅弦、王佑盛、朱坤賢.
汪清县气象局创建省级文明单位工作展示 2016年8月
西元208年的赤壁之戰,是曹操、孫權和劉備在長江沿岸進行的一場會戰,對於三國鼎立局面的形成具有決定性影響。
评价是为了促进 学生发展的评价。. 评价是为了促进 学生发展的评价。 语言有温度,字词知冷暖.
青岛市数字证书认证中心 2011年4月.
新办企业办税须知 --新办企业纳税人涉税事项介绍
关注品德与生活课的 探究性学习和微课程的发展
榕桥中学 校园文化建设情况汇报.
主讲:江西财经职业学院傅文清 联系电话: 教学模式与课程教学设计 主讲:江西财经职业学院傅文清 联系电话:
22 第 课 增强自我保护的意识和能力.
在课题探索中成长 东风东路小学 王洁华 全国红领巾示范学校 广东省一级学校
关注女职工劳动保护,维护女职工合法权益 ——《女职工劳动保护特别规定》解读
弘ㄧ大師-李叔同.
中国科学院档案数字化 工作情况介绍 潘亚男 2013年10月24日
2016年上半年工作汇报 后勤与保卫管理处 二○一六年七月.
1个USB Host 1.1端口:可支持U盘存储器(读取客户程序自动下载) 1个USB Device 2.0端口:支持USB程序下载
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
Arduino 基本知識.
內容:串列傳輸 實作:Arduino to PC 、 Arduino to Arduino 簡報:廖崇義
动手玩转Arduino (三) 串口输入输出
102年度新北市立三重商工旗艦計畫實施方案 先進車用電子控制技術培育計畫
13-1 功能簡介 13-4 實驗成果 13-2 電路說明 13-5 延伸應用與練習 13-3 程式設計
CH5 數位訊號 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
SWITCH&7-SEG元件控制 嵌入式作業系統實作 11/17.
Arduino单片机基础 周弋
    Arduino 1602 LCD 量測電壓顯示 LCD 示波器    林品成 月.
Digital System Lab Experiment 7 解碼器與七段顯示器.
Arduino.
动手玩转Arduino (五) RF数据通信
智慧電子應用設計導論(1/3) Display
語法:Variables & Functions 實作:Digital out (Button+LED) 簡報:廖崇義
K60基础课程 02 首都师范大学物理系 王甜.
Arduino学习.
9.1 家用电器.
指導教授 張寶棣 助教 黃智穎 第十七組 B 物理三 李明哲 B 大氣三 吳宛真
最速就業職種養成! 護理、軍人、職人 花蓮縣學生輔導諮商中心 適性輔導組 游賀凱
世外桃源~ 劍 潭 里 零碳排放里.
    使用Arduino量測交流(AC)電壓    林品成 月.
    使用Arduino量測直流(DC)電壓    林品成 月.
6-1 功能簡介 6-4 實驗成果 6-2 電路說明 6-5 延伸應用與練習 6-3 程式設計
8051單晶片 蘇恆生 老師.
亚博科技 Arduino视频教程 第8讲 蜂鸣器发声实验.
亚博科技 Arduino视频教程 第12讲 8乘8点阵.
水利绿色发展问题与建议 姜文来 中国农业科学院农业资源与农业区划研究所.
物聯網期末報告 組員: 邱景柏 方嘉慶 陳約翰 洪銘陽
K60入门课程 06 首都师范大学物理系 靳熙芃.
Arduino智慧機器人 觸鬚的觸碰式導航
測試藍芽模組的接收和發送功能 班級:資通三A 學號: 姓名:簡宏恩.
Arduino課程 液晶1602 中部自造者基地-雲科大.
感光世界 亞洲大學 資訊工程學系 學生:郭致翔、林壬午、黃智猷、陳奕升 指導教授:蔡志仁教授
相片典藏 臺北市立弘道國中總務處 防災校園建置計畫補助-個人防護具 品 名 數 量 30 4 工作手套 72 6 簡易雨衣 300
LED 旋转屏 制作:刘致先 指导老师:程智宾 单位:福建信息职业技术学院.
第五章 序列埠通訊 並列與序列通訊簡介 認識序列埠 認識字元資料類型 字串資料類型 從序列埠監控視窗觀察變數 從Arduino接收序列資料
科展心得分享 電子科教師:童信源.
Arduino单片机基础及应用开发 物理系 周孟磊 张卓.
第2章 Arduino编程.
Presentation transcript:

8-1 功能簡介 8-4 實驗成果 8-2 電路說明 8-5 延伸應用與練習 8-3 程式設計 第8章 七段顯示器 8-1 功能簡介 8-4 實驗成果 8-2 電路說明 8-5 延伸應用與練習 8-3 程式設計

8-1 功能簡介 七段顯示器是由七顆LED 組合七段而成的數字型顯示器,只要組合讓不同段的LED 亮,即可顯示出不同的數字,甚至一些簡單的文字。 本章實驗的功能為使用Arduino 控制板的I/O 來驅動七段顯示器,使七段顯示器每隔0.5 秒依序顯示出0 ~ 9 的數字,並不斷重複變化。 本實驗的系統方塊圖如圖8-1 所示。

8-2 電路說明 七段顯示器(seven-segment display)為常用的數字顯示元件,其外觀如圖 8-2(b) 所示; 七段顯示器內部結構是由8 個LED(發光二極體)所組成,有七段筆畫與一個小數點,依順時針方向排列為a、b、c、d、e、f、g 與dp等8個LED,如圖 8-2(a)所示。 圖 8-2(a)標示了七段顯示器的各段名稱與腳位,可用來顯示數字0 ~ 9 及英文字A、b、C、d、E、F。

8-2 電路說明 七段顯示器依結構可分為共陽七段與共陰七段兩種:內部所有LED 陽極接在共同端腳位(com)者,為共陽七段顯示器,如圖 8-3(a) 所示;內部所有LED 陰極接在com 者,則為共陰七段顯示器,如圖 8-3(b) 所示。

8-2 電路說明 本章實驗採用共陰七段顯示器,只要共同端點(com)上接地,對應的腳位上送高準位,即可使對應的各段LED 亮 圖 8-4 為七段顯示器上要呈現的數字,則其對應的共陰七段顯示器控制碼如表 8-1所示,以顯示數字 為例,只有g 段不亮,其餘要亮,故g ~ a 段的顯示控制碼為0111111,換成16 進制為0x3F。(C 語言中0x 代表16 進制,0b 代表2 進制)

8-2 電路說明

8-2 電路說明

8-2 電路說明

8-2 電路說明 實驗時請確認圖 8-2(a) 上七段顯示器的腳位,接錯會出現亂碼;另外本實驗採用共陰七段顯示器,com 端請接地。 在此提供麵包板及Arminno 多功能實驗板兩種接線圖供選擇,請依手邊有的設備狀況進行實驗。 1. 使用麵包板 圖 8-6 所示為使用麵包板進行七段顯示器的參考接線電路,可將ArduinoLeonardo 板固定在一般的麵包板上方便接線,由於七段顯示器的腳位非a ~ g 的順序,接線會有些交錯,請注意不要接錯;另外限流電阻330Ω不可省略,請按圖配線:

8-2 電路說明 Arduino 的GND 腳接至麵包板上橫向導通的藍色線,並接至七段顯示器的com 端。 (2) 本實驗使用USB 提供的 5V,電源不需外加。

8-2 電路說明 2. 使用Arminno 多功能實驗板 圖 8-7 所示為使用Arminno 多功能實驗板的接線情況,其中: 實驗板與Arduino 板的連接均採用杜邦排線。 使用2pins 的排線連接Arduino 板上的5V 及GND 接至實驗板3V3及GND 的電源端。 使用1pin 的排線連接JP8 的com4 至5V 端,指定使用七段顯示器的個位數。 連接Arduino 板上的D11 ~ D5 至實驗板7-SEGMENT ×4 區塊的JP7(對應a ~ g)。

8-3 程式設計 接下來要進行程式的撰寫,由於表 8-1 已明確標示了共陰七段顯示器控制碼,電路也接妥Arduino 板的D11 ~ D5 對應至七段的a ~ g,故本次的實驗非常適合使用查表法,也就是使用陣列取值的方式,再呼叫自訂的OutPort() 副程式,逐一將值送至指定的輸出即可。 1. setup()、loop() setup():主要設定seg[] 陣列中的數位腳之電氣特性為輸出,包含D11 ~ D5。 loop():依序取出0 ~ 9 七段顯示器編碼陣列TAB[] 的資料,然後呼叫OutPort() 副程式進行顯示的工作。

8-3 程式設計

8-3 程式設計 2. OutPort() 副程式 此副程式的主要目的是將傳入值dat 送至指定的腳位輸出,腳位由程式中的seg7[]={11, 10, 9, 8, 7, 6, 5} 定義,其中seg7[0]=11 對應七段顯示器的a 段,seg7[1]=10 對應b 段,其餘類推;要將傳入值dat 送至指定的腳位輸出,可使用十進制轉二進制的方式,從最低位元逐一將值送出,流程如下: (1) 取出dat 除2 的餘數。 (2) 若餘數為1,則輸出高準位,否則輸出低準位。 (3) 接著處理下一位元,故取dat=dat/2。 (4) 重複動作(1),共做7 次。 圖 8-9 為dat=94 處理後對應seg7[] 的操作範例,此範例顯示d。

8-3 程式設計

8-3 程式設計

8-3 程式設計

8-3 程式設計 陣列宣告:陣列宣告的指令格式如下 其中資料型態應以不超過值域範圍的最小型態來宣告,例如觀察seg7 的元素值均不超過255,故宣告成byte 會比int 節省記憶空間。另外,有預設值的宣告可省略陣列元素個數的宣告,編譯器會幫忙計算,例如:

8-4 實驗成果 確定好本實驗的電路及程式後,即可開始進行編譯程式,以及下載、燒錄、測試的工作;首先請使用USB 傳輸線連接好個人電腦與Arduino Leonardo 板,再按 圖示進行程式的燒錄。 燒錄成功後,應可立即看到七段顯示器開始數數,從0 到9,每隔0.5 秒變化一次,若無法正常顯示,請檢查接線是否正確。

8-5 延伸應用與練習 有了顯示一位數0 ~ 9 的七段顯示器輸出能力後,還有哪些可以延伸應用並練習的呢?以下讓我們來思考一下。 8-5.1 讀入指撥開關數值並顯示的實驗(顯示0 ~ F) 本小節希望完成一個讀入4 位元指撥開關的數值,並將對應的16 進制數值顯示在七段顯示器上的實驗,數值包含0 ~ 9,以及A ~ F。 圖8-10 所示為本小節實驗的電路圖,其中指撥開關的4 個數位腳分別接至D13、D12、D3、D2,最高位元MSB 為D13。

8-5 延伸應用與練習

8-5 延伸應用與練習 2. 4 位元指撥開關數值除了0 ~ 9 以外,還包含撥1010 以上應 顯示的字母,其字碼及對應的顯示控制碼條列如表 8-3 所示。

8-5 延伸應用與練習 1. 指撥開關的設定: 由於指撥開關用到4 個數位腳,且未連接提升電阻,因此本小節需用到使用內建提升電阻的設定,同樣是用設定pin 腳電氣模式的指令pinMode,不過模式要使用INPUT_PULLUP。

8-5 延伸應用與練習 讀入4 位元指撥開關狀態,轉成十進制數值:轉換的方法其實就是進行二進制轉十進制,首先宣告轉換後的十進制數值number=0,並宣告加權值陣列Weight={ 8,4,2,1 },以及指撥開關輸入腳位的陣列DIP ={13,12,3,2 },然後進行底下的流程即可,例如指撥開關撥上上下下,代表邏輯1100,number=1×23+1×22+0×21+0×20=8+4=12。 從最高位元DIP[0],也就是D13 開始判斷,若為LOW(往上撥)代表指撥開關為邏輯1,所以number=number+8;若為HIGH(往下撥) 代表指撥開關為邏輯0,不需進行任何處理。接著判斷DIP[1](D12),若為LOW,則number= number+4。 接著判斷DIP[2](D3),若為LOW,則number= number+2。 接著判斷DIP[3](D2),若為LOW,則number= number+1。 程式碼如下:

8-5 延伸應用與練習 3. 呼叫OutPort(number) 副程式,即可顯示指撥開關的數值。 4. 接著周而復始進行步驟2. 到3. 即可。

8-5 延伸應用與練習

8-5 延伸應用與練習 2. Arminno 多功能實驗板的接線情況 圖 8-12 所示為使用Arminno 多功能實驗板的接線情況

8-5 延伸應用與練習

8-5 延伸應用與練習

8-5 延伸應用與練習

8-5 延伸應用與練習 將程式燒錄後,可調整指撥開關,看看七段顯示器是否有對應到指撥開關的數值內容顯示。

8-5 延伸應用與練習 Arminno 多功能實驗板上的七段顯示器為四位元的多工顯示器,因其電路結構與單一顆七段顯示器有點不同,需要特別說明一下。實驗板上的顯示器由四顆七段顯示器組成,由左而右,分別為千位數、百位數、十位數及個位數,為簡化接線,每顆七段顯示器的a 端接一起、b端接一起…以此類推,最後拉出a、b、c、d、e、f、g 端至JP7,此為資料端,如圖8-13所示;小數點dp 及要讓哪一位數亮的控制端com1、com2、com3、com4則接至JP8,其中com1~com4為掃描端,分別接一個NPN 電晶體,控制千位數、百位數、十位數、個位數七段顯示器的亮或滅,掃描端在同一個時間,只有一個接高準位,亦即每個時間只有一位數會亮。

8-5 延伸應用與練習

8-5 延伸應用與練習

8-5 延伸應用與練習 Arminno 多功能實驗板上的七段顯示器為四位元的多工顯示器,因其電路結構與單一顆七段顯示器有點不同,需要特別說明一下。 實驗板上的顯示器由四顆七段顯示器組成,由左而右,分別為千位數、百位數、十位數及個位數,為簡化接線,每顆七段顯示器的a 端接一起、b端接一起…以此類推,最後拉出a、b、c、d、e、f、g 端至JP7,此為資料端,如圖8-13所示。 小數點dp 及要讓哪一位數亮的控制端com1、com2、com3、com4則接至JP8,其中com1~com4為掃描端,分別接一個NPN 電晶體,控制千位數、百位數、十位數、個位數七段顯示器的亮或滅。 掃描端在同一個時間,只有一個接高準位,亦即每個時間只有一位數會亮。

8-5 延伸應用與練習 所謂的多工顯示是指利用分時多工的掃描技巧,讓四位元同時顯示不同數字。 一般稱com1 ~ com4 為掃描端,JP7 的dp、g、f、e、d、c、b、a為資料端;假設顯示器上要顯示 ,其動作流程如下: 首先讓掃描端com1~com4送出0000 的控制訊號,所有電晶體OFF,七段顯示器不顯示。 資料端JP7送出0x5B(請對應表8-1的控制碼),掃描端com1送出1的控制訊號(即Q1導通),此時顯示數字 ,並停留一段時間。 為避免掃描端掃至下一位時造成的顯示殘影現象,掃描端com1送出0的控制訊號,讓七段顯示器不顯示。

8-5 延伸應用與練習 資料端送出0x3F,掃描端com2送出1的控制訊號,Q2導通,此時顯示數字 ,並停留一段時間。 資料端送出0x06,掃描端com3 送出1 的控制訊號,Q3 導通,此時顯示數字 ,並停留一段時間。 掃描端com3 送出0的控制訊號,讓七段顯示器不顯示。 資料端送出0x4F,掃描端com4送出1的控制訊號,Q4導通,此時顯示數字 ,並停留一段時間。 掃描端com4送出0的控制訊號,讓七段顯示器不顯示。 跳至步驟2重複執行。 以上的動作流程,只要掃描的速度夠快,超過人一秒鐘至少需要24個畫面的視覺暫留,就可看到非常穩定的畫面,若掃描速度不夠,會看到閃爍的 畫面。

8-5 延伸應用與練習 根據上述的動作流程,可寫出底下的程式,請對應參考;本程式也加入利用Serial Monitor 改變延遲時間delaytime 的設計,透過不同的delaytime了解多工顯示器的原理,以及延遲時間的影響。

8-5 延伸應用與練習

8-5 延伸應用與練習

8-5 延伸應用與練習

8-5 延伸應用與練習

8-5 延伸應用與練習 將程式燒錄後,因變數delaytime 預設為5(ms),可看到一個很穩定的 顯示畫面。 點選Tools → Serial Monitor,開啟Serial Monitor,接著請在命令列依序輸入要測試的延遲時間數據(單位為ms),並記錄顯示狀態: (1) 10ms 顯示狀態描述: ___________________________ (2) 100ms 顯示狀態描述: __________________________ (3) 1000ms 顯示狀態描述: _________________________ 經測試後應可發現延遲時間增加後,多工顯示的數字閃爍明顯。 請試著修改顯示其它數值,例如「5214」,其顯示的數字是否符合預期。