詳細說明程式要求:
1. 將各個array集合起來並取陣列的中間值
Block digram
Front Panel
1. 利用Build Array把各個陣列集合起來成為一個"Final Array"。因為不讓程式寫死,故在"Final Array"中拉出一條線"Array Size"得到陣列中有幾個元素,再利用"Index Array"把中間值取出來,而"Index Array"的"index"就由"Array Size"得到。
2018年7月30日 星期一
LabVIEW-陣列介紹。難度:簡單
詳細說明程式要求:
1. initializel array 函數
2. array size 函數
3. build array函數
4. array subset函數
5. index array函數
1. initializel array 函數:簡單來說,初始化陣列中的值。例如我放進"5",亦可放進二維的字串陣列。
2. array size 函數:傳回陣列中元素的個數。若陣列為n維,array size 函數傳回一個n個元素的一維陣列。
3. build array函數:將函數連結在一起或者是加一個元素到陣列上。他有兩種的輸入型態:array及element。
4. array subset函數:取出陣列或元素。例子為從"1"引數開始"2"個元素的子陣列結果
5. index array函數:可存取陣列中某個特定的元素。
1. initializel array 函數
2. array size 函數
3. build array函數
4. array subset函數
5. index array函數
1. initializel array 函數:簡單來說,初始化陣列中的值。例如我放進"5",亦可放進二維的字串陣列。
2. array size 函數:傳回陣列中元素的個數。若陣列為n維,array size 函數傳回一個n個元素的一維陣列。
3. build array函數:將函數連結在一起或者是加一個元素到陣列上。他有兩種的輸入型態:array及element。
4. array subset函數:取出陣列或元素。例子為從"1"引數開始"2"個元素的子陣列結果
5. index array函數:可存取陣列中某個特定的元素。
2018年7月27日 星期五
LabVIEW-找尋檔案中的值有多少個。難度:易
詳細說明程式要求:
1. 找尋檔案多筆資料中的值
2. "Read Delimited Spreadsheet"(function-programminf-file)為讀取檔案
3. "Search 1D Array"找尋Array之值
Block digram
Front Panel
1. 找尋檔案多筆資料中的值
2. "Read Delimited Spreadsheet"(function-programminf-file)為讀取檔案
3. "Search 1D Array"找尋Array之值
Block digram
Front Panel
- 使用"Read Delimited Spreadsheet"先讀取檔案,調成string模式及連到"all rows"
- 把輸入值轉為字串
- 透過"Search 1D Array"找陣列中的字串,"2"是指從一行中的第三個開始找起
- 如果在 " array" 中沒有找到字串,就會產生-1 ,有找到的話就不產生-1。
- 不產生-1則會到 "T",每找到一次就加一,並利用移位暫存器存它的次數。
2018年7月26日 星期四
LabVIEW-樂透開獎。難度:中
詳細說明程式要求:
1. 由1~31的整數不重複中開出6個號碼,記錄10筆開獎記錄於桌面上。
2.這個程式使用了build array, delete from array, rotate 1D array等陣列操作元件和兩個shift register
Block digram
Front Panel
以下我用1-5 抽出3個來做舉例較為簡單
1. 由1~31的整數不重複中開出6個號碼,記錄10筆開獎記錄於桌面上。
2.這個程式使用了build array, delete from array, rotate 1D array等陣列操作元件和兩個shift register
Block digram
Front Panel
以下我用1-5 抽出3個來做舉例較為簡單
- 因為要從1-5裡面抽出3個,故我們先做一個for迴圈,讓1-5的值都要跑到裡面。
- "Rotate 1D Array"這裡是指說讓他排列,那排列的順序是用亂數乘以100的值來排列。
- 現在12345都進入迴圈了 ,利用 "Rotate 1D Array" ,他會重新排列,假設現在排列為34512,再利用"Deleted From Array"刪除第0個值,並把刪除的值進入"Build Array",現在3因為是第0個值,故已經被取出來,剩下的4512又經過移位暫存器,再經過下一次的"Rotate 1D Array"亂數排列後,可能為1524,再取出第0個值。以此類推。
- 取出來的值再透過第二個移位暫存器使之依序開獎。
- 現在只剩下要儲存值了,透過"Number to Decimal String"把數字轉為字串存入檔案中
- 再使用"Build Array"把時間、日期及字串集合起來寫入檔案之中。
LabVIEW- 用4個七段顯示器顯示00.00~99.99的數值 。 難度:中
詳細說明程式要求:
1.這個練習主要是利用cluster組織七段顯示器,並用index array取出預存的編碼值(其中還會用到Quotient & Remainder的元件,進行位數的處理),最後進行顯示。
函數介紹:
2. Index Array 這個可以存取陣列中某個特定的元素(詳細可以去看array函數介紹)
Block digram
Front Panel
1. 利用cluster 建立LED的七段顯示器,並且注意要排列順序
點選外圍-recorder controls in cluster 即可排列
1.這個練習主要是利用cluster組織七段顯示器,並用index array取出預存的編碼值(其中還會用到Quotient & Remainder的元件,進行位數的處理),最後進行顯示。
函數介紹:
2. Index Array 這個可以存取陣列中某個特定的元素(詳細可以去看array函數介紹)
Block digram
Front Panel
1. 利用cluster 建立LED的七段顯示器,並且注意要排列順序
點選外圍-recorder controls in cluster 即可排列
- 為了讓他簡單控制,我們先複製一個cluster並將它轉為constant,再將放置array裡面,亦可想說因為是要接index array,故我們要將七段顯示器設為array。
- 將之進入一個for迴圈,利用"Index Array",將值分別取出,各為:7-seg個、7-seg十、7-seg個2、7-seg十2
- 利用"Quotient & Remainder" 例如:5487, 5487除以100=54....87,將54除以10=5...4,87除以10=8...7,即可將5487對到各值。
- 因為"7-seg個2"要有小數點,故在特別拉出一條線,利用"bundle元件"使之最後一個點 為"T"。
2018年7月25日 星期三
LabVIEW-紅綠燈練習。難度:中
詳細說明程式要求:
1.這個練習主要練習cluster, for迴圈,還有flat sequence結構:綠燈先持續亮3秒鐘,然後閃爍3次,換黃燈持續亮1秒,最後紅燈亮3秒。
Block digram
程式說明:
1. 合集函數(Bundle):將現有的元素綁起來成為一個新叢集
2. 先看第一個階段,"綠燈維持三秒鐘"
先用cluster叢集概念把紅綠燈放在同一個集合裡面,並用bundle函數使紅綠燈成為單一叢集並控制之,那我現在要讓"G"亮三秒,故我在G那面設定為"T",其他為"F",並設立時間為3000ms(3秒鐘),請注意粉紅線的部分,因為這跟下一步的設定有關。
3. 因為我是要一步一步的接下去,故我使用"flat sequence",那現在到下一步,綠燈閃爍三秒。
4. 商數(Quotient & Reminder):看餘數的值,決定亮暗
5. 如果是閃爍三次,那麼我用"Quotient & Reminder",將之除以2,看它的餘數,因為餘數不是0就是1,我將0設為亮、1設為暗。再使用for迴圈,把0-5都分別除以2,所以再看一次這個for迴圈的餘數,0 1 0 1 0 1,就變成"亮暗亮暗亮暗"了,也達到閃爍三次的目的
6. 接下來是讓黃燈亮一秒,請注意粉紅線的部分 ,因為粉紅線的一開始連的 "TFF"故要讓黃燈亮的話,一定要設"G"那邊為"F",如果沒有設的話,綠燈會跟黃燈一起亮。另外因為一開始"R"那邊是設為"F",故我們在這裡不用特別設為"F"
7. 紅燈以此類推
1.這個練習主要練習cluster, for迴圈,還有flat sequence結構:綠燈先持續亮3秒鐘,然後閃爍3次,換黃燈持續亮1秒,最後紅燈亮3秒。
Block digram
程式說明:
1. 合集函數(Bundle):將現有的元素綁起來成為一個新叢集
2. 先看第一個階段,"綠燈維持三秒鐘"
先用cluster叢集概念把紅綠燈放在同一個集合裡面,並用bundle函數使紅綠燈成為單一叢集並控制之,那我現在要讓"G"亮三秒,故我在G那面設定為"T",其他為"F",並設立時間為3000ms(3秒鐘),請注意粉紅線的部分,因為這跟下一步的設定有關。
3. 因為我是要一步一步的接下去,故我使用"flat sequence",那現在到下一步,綠燈閃爍三秒。
4. 商數(Quotient & Reminder):看餘數的值,決定亮暗
5. 如果是閃爍三次,那麼我用"Quotient & Reminder",將之除以2,看它的餘數,因為餘數不是0就是1,我將0設為亮、1設為暗。再使用for迴圈,把0-5都分別除以2,所以再看一次這個for迴圈的餘數,0 1 0 1 0 1,就變成"亮暗亮暗亮暗"了,也達到閃爍三次的目的
6. 接下來是讓黃燈亮一秒,請注意粉紅線的部分 ,因為粉紅線的一開始連的 "TFF"故要讓黃燈亮的話,一定要設"G"那邊為"F",如果沒有設的話,綠燈會跟黃燈一起亮。另外因為一開始"R"那邊是設為"F",故我們在這裡不用特別設為"F"
7. 紅燈以此類推
LabVIEW-平方根。難度:易
詳細說明程式要求
1.練習使用條件架構與對話框,輸入正數,則會傳回一個正數的平方根,若輸入值為負數,則VI會彈出一個對話框,並傳回錯誤訊息"Error Negative Number"
Block digram
程式說明:
1. 題目所要求的是,如果輸入小於0的數,則會"彈出"一個對話框,所以選擇"one Button Dialog" (function-programming-user interface)
2. 此題我使用true-false來判斷,因為這只有兩種結果。第一,我輸入大於0的數,會輸出一個值 ; 第二,我輸入小於0的數,會彈出對話框,故我使用這個條件架構
3. 在輸入值那邊我拉出一條線來判斷我輸入的是否為正數,若為正則跑到true,並跑平方根,得到"輸入後的平方根",若我輸入值為負,則會跑出對話匡"Error Negative Number"並輸出''-9999"
Front Panel
## 輸入值 > 0
## 輸入值 < 0
1.練習使用條件架構與對話框,輸入正數,則會傳回一個正數的平方根,若輸入值為負數,則VI會彈出一個對話框,並傳回錯誤訊息"Error Negative Number"
Block digram
程式說明:
1. 題目所要求的是,如果輸入小於0的數,則會"彈出"一個對話框,所以選擇"one Button Dialog" (function-programming-user interface)
2. 此題我使用true-false來判斷,因為這只有兩種結果。第一,我輸入大於0的數,會輸出一個值 ; 第二,我輸入小於0的數,會彈出對話框,故我使用這個條件架構
3. 在輸入值那邊我拉出一條線來判斷我輸入的是否為正數,若為正則跑到true,並跑平方根,得到"輸入後的平方根",若我輸入值為負,則會跑出對話匡"Error Negative Number"並輸出''-9999"
Front Panel
## 輸入值 > 0
## 輸入值 < 0
LabVIEW-兩數相除_divide by zero 難度:易
詳細說明程式要求:
1. 依亂數隨機成立1-10的數值,並且除以可以自由變數的數,但如果自由變數為0的話,則會亮"devide by zero"為名稱的布林led燈
Block digram
1. 依亂數隨機成立1-10的數值,並且除以可以自由變數的數,但如果自由變數為0的話,則會亮"devide by zero"為名稱的布林led燈
Block digram
程式說明:
1. 先了解每個物件所代表的意思,像骰子的就是(random_number 0-1)
2. 思考步驟:因為要成立1-10的數值,且沒有規定是否要整數,所以我把亂數先乘以10,得到"random number",再將"random number"除以我指定的"denominator",得到"result",另外他說如果自由變數為0的話則會亮,故我在"denominator"那一條線再拉出一條線來判斷是否我輸入值為"0"。
Front Panel
訂閱:
文章 (Atom)