91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用MATLAB GUI從基于Arduino的IR轉(zhuǎn)速表讀取RPM

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-21 16:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:在MATLAB

打開您的MATLAB,然后鍵入命令:“ guide”

如果一切正常,將打開一個窗口供您設(shè)計布局。如果無法獲取該窗口,請檢查您的MATLAB安裝中是否包含該模塊。我的MATLAB版本是R2012b,安裝了默認(rèn)設(shè)置和軟件包。

讓我們假設(shè)您在輸入“指南”后會感覺很好。放置窗口組件如下:

-1切換按鈕

-2靜態(tài)文本

按圖片所示排列布局(實際上,布局要只要您易于使用和閱讀,就可以通過修改屬性檢查器中的“字符串”值來更改每個對象中的文本(任何您想要的內(nèi)容)(選擇對象-右鍵單擊-屬性檢查器,或雙擊)

然后,保存該GUI圖形文件。

步驟2:編寫代碼

ARDUINO代碼

arduino的代碼與您在此處可以找到的代碼基本相同:https://www.instructables.com/id/Infrared-Tachomete 。..但因為這里我僅想要顯示rpm值(而不是rps值以及所有的“ rps”和“ rpm”文本),所以我編輯了一些行(那些具有Serial.print()的行,因為以前該程序旨在顯示讀數(shù)在記事本式串行監(jiān)視器上,但現(xiàn)在我們只需要rpm值即可輸入到靜態(tài)文本字符串中)。好的,為了方便快捷,我將代碼復(fù)制到此處,您可以自行檢查以與之前的代碼進行比較。請記住,arduino代碼的主要目的只是將值傳遞給串行comm,因此該程序僅作為示例,如果您有自己的程序?qū)⑷魏巫x取到的傳感器的值打印到串行,然后忽略此操作即可。

int sensorvalue;

int state1 = HIGH;

int state2;

float rps;

float rpm;

long prevMillis = 0;

long interval = 100;

long currentTime;

long prevTime = 1;

long diffTime;

int sensorthreshold = 30; // this value indicates the limit reading between dark and light,

// it has to be tested as it may change acording on the

// distance the leds are placed.

// to see what number is good, check the sensorvalue variable value

// as printed out in the serial monitor

void setup()

{

Serial.begin(9600);

pinMode(13,OUTPUT); // assign pin 13 led as indicator because we cannot se the IR light

}

void loop()

{

sensorvalue = analogRead(0); // read from pin 0

if(sensorvalue 《 sensorthreshold)

state1 = HIGH;

else

state1 = LOW;

digitalWrite(13,state1); // as iR light is invisible for us, the led on pin 13

// indicate the state of the circuit.

if(state2!=state1){ //counts when the state change, thats from (dark to light) or

//from (light to dark), remember that IR light is invisible for us.

if (state2》state1){

currentTime = micros(); // Get the arduino time in microseconds

diffTime = currentTime - prevTime; // calculate the time difference from the last sensors meet-up

rps = 1000000/diffTime; // calculate how many rev per second - good to know

rpm = 60000000/diffTime; // calculate how many rev per minute

unsigned long currentMillis = millis();

// print to serial at every interval - defined at the variables declaration

if(currentMillis - prevMillis 》 interval){ // see if now already an interval long

prevMillis = currentMillis;

Serial.println(rpm); // this line is edited from the code in the prev instructable

}

prevTime = currentTime;

}

state2 = state1;

}

/* only for testing to determine the sensorthreshold value

delay(500);

Serial.println(sensorvalue);

*/

}

MATLAB代碼

在MATLAB GUI布局設(shè)計窗口中,單擊“查看-編輯器”(或在工具欄中找到?jīng)]有手的紙和鉛筆的圖片)。將打開一個編輯器窗口,其中已經(jīng)編寫了一些代碼,MATLAB為您編寫了它們,沒問題。只為切換按鈕編寫回調(diào)函數(shù),其余代碼可以保留不變。就我而言,我將切換按鈕命名為OnOffToggle,因此編寫代碼的函數(shù)是函數(shù)OnOffToggle_Callback(hObject,eventdata,handles)。 rpmdata,所以我們只想將rpm數(shù)據(jù)打印到屏幕上即可。還有一件事,請確保在編寫代碼時將arduino連接到正確的COM端口。在這段代碼中,我寫了COM3,因為我將arduino連接到了COM3。

然后保存您的m文件。

下面是完整代碼(僅編輯OnOffToggle_Callback函數(shù)):

function varargout = gui(varargin)

% GUI MATLAB code for gui.fig

% GUI, by itself, creates a new GUI or raises the existing

% singleton*.

%

% H = GUI returns the handle to a new GUI or the handle to

% the existing singleton*.

%

% GUI(‘CALLBACK’,hObject,eventData,handles,。..) calls the local

% function named CALLBACK in GUI.M with the given input arguments.

%

% GUI(‘Property’,‘Value’,。..) creates a new GUI or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before gui_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to gui_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE‘s Tools menu. Choose “GUI allows only one

% instance to run (singleton)”。

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help gui

% Last Modified by GUIDE v2.5 14-Mar-2015 01:06:09

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct(’gui_Name‘, mfilename, 。..

’gui_Singleton‘, gui_Singleton, 。..

’gui_OpeningFcn‘, @gui_OpeningFcn, 。..

’gui_OutputFcn‘, @gui_OutputFcn, 。..

’gui_LayoutFcn‘, [] , 。..

’gui_Callback‘, []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before gui is made visible.

function gui_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to gui (see VARARGIN)

% Choose default command line output for gui

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes gui wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = gui_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

function currentEdit_Callback(hObject, eventdata, handles)

function currentEdit_CreateFcn(hObject, eventdata, handles)

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,’BackgroundColor‘), get(0,’defaultUicontrolBackgroundColor‘))

set(hObject,’BackgroundColor‘,’white‘);

end

function OnOffToggle_Callback(hObject, eventdata, handles)

button_state = get(hObject,’Value‘);

if button_state == get(hObject,’Max‘)

set(handles.OnOffToggle,’String‘,’Stop‘);

drawnow;

i=2;

while i 》 1

rpmdata = serial(’COM3‘,’BaudRate‘,9600); % this Baud rate should be the same as that in Arduino code

fclose(instrfindall);

fopen(rpmdata);

b = fscanf(rpmdata);

set(handles.textCurrent,’String‘,b);

drawnow;

delete(rpmdata)

if get(hObject,’Value‘) == get(hObject,’Min‘)

break

end

end

set(handles.OnOffToggle,’String‘,’Start‘);

drawnow;

rpmdata = serial(’COM3‘,’BaudRate‘,9600);

fclose(rpmdata);

end

步驟3:運行Rpm Reader

完成代碼后,連接arduino,然后轉(zhuǎn)動旋轉(zhuǎn)并運行程序(編輯器或布局編輯器窗口上的綠色三角形類似游戲的按鈕)。程序的一個窗口將會出現(xiàn)(我的如圖所示),單擊切換按鈕,您將在那里看到車輪的當(dāng)前轉(zhuǎn)速。

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關(guān)注

    關(guān)注

    189

    文章

    3025

    瀏覽量

    238797
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6526

    瀏覽量

    197001
  • RPM
    RPM
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    18172
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    是否可以轉(zhuǎn)速讀取轉(zhuǎn)速表信號?

    正如在另一個線程中所指出的,我成功地控制了 GPIO 46 上的 PWM 信號的 Noctua PWM 風(fēng)扇。 現(xiàn)在我想知道是否可以轉(zhuǎn)速讀取轉(zhuǎn)速表信號? 看看風(fēng)扇是否真的在轉(zhuǎn)動就好
    發(fā)表于 03-12 06:29

    “隱身”電機的轉(zhuǎn)速測量,用這招“聽”見答案

    電吹風(fēng)、電動牙刷、剃須刀等“隱身”電機的轉(zhuǎn)速,卻苦于電機完全封裝,旋轉(zhuǎn)軸不外露,無法安裝傳感器;01小野測器FT-2500高級轉(zhuǎn)速表小野測器FT-2500高級轉(zhuǎn)速
    的頭像 發(fā)表于 02-02 14:37 ?161次閱讀
    “隱身”電機的<b class='flag-5'>轉(zhuǎn)速</b>測量,用這招“聽”見答案

    IR21592/IR21593:調(diào)光鎮(zhèn)流器控制IC的技術(shù)解析

    IR21592/IR21593:調(diào)光鎮(zhèn)流器控制IC的技術(shù)解析 在電子工程師的日常設(shè)計工作中,調(diào)光鎮(zhèn)流器控制IC是一個關(guān)鍵的組件,它對于實現(xiàn)燈具的高效、穩(wěn)定調(diào)光起著至關(guān)重要的作用。今天,我們就來
    的頭像 發(fā)表于 12-30 17:25 ?755次閱讀

    計數(shù)器計時器頻率轉(zhuǎn)速表

    測量儀儀器儀表
    西安同步電子科技有限公司
    發(fā)布于 :2025年10月13日 19:32:57

    材料到系統(tǒng):湖南泰德航空解析航空級高速電機全鏈條創(chuàng)新

    高速電機作為現(xiàn)代工業(yè)皇冠上的明珠,其技術(shù)難度遠超常規(guī)電機。湖南泰德航空經(jīng)過十余年潛心研發(fā),成功攻克了10,000RPM到百萬RPM級高速電機的關(guān)鍵技術(shù)難題。這類電機在實際應(yīng)用中面臨的核心挑戰(zhàn)主要
    的頭像 發(fā)表于 09-25 11:24 ?651次閱讀
    <b class='flag-5'>從</b>材料到系統(tǒng):湖南泰德航空解析航空級高速電機全鏈條創(chuàng)新

    使用恩智浦FRDM-MCXN947開發(fā)板GUI控制電機

    終于來到了最后一個任務(wù),設(shè)計一個基于LVGL的GUI應(yīng)用,可以在UI上拖動滑動條控制電機轉(zhuǎn)速,點擊按鍵切換點擊旋轉(zhuǎn)方向。
    的頭像 發(fā)表于 09-19 15:11 ?2203次閱讀
    使用恩智浦FRDM-MCXN947開發(fā)板<b class='flag-5'>GUI</b>控制電機

    不同尺寸晶圓需要多少轉(zhuǎn)速的甩干機?

    在半導(dǎo)體制造中,不同尺寸的晶圓對甩干機的轉(zhuǎn)速需求存在差異,但通常遵循以下規(guī)律:小尺寸晶圓(如≤8英寸)這類晶圓由于質(zhì)量較輕、結(jié)構(gòu)相對簡單,可采用較高的轉(zhuǎn)速進行離心甩干。常見范圍為3000–10000
    的頭像 發(fā)表于 09-17 10:55 ?571次閱讀
    不同尺寸晶圓需要多少<b class='flag-5'>轉(zhuǎn)速</b>的甩干機?

    GUI設(shè)計】顏色對GUI的影響

    【LabviewGUI】顏色對GUI的影響 GUI最后一期了 后面回歸主線
    發(fā)表于 08-26 04:51

    GUI Guider全新優(yōu)化方案GUI xTurbo-VeloRender初體驗:基于i.MX RT平臺的LVGL渲染能力突破

    引言 在嵌入式GUI開發(fā)領(lǐng)域,圖形界面的渲染性能直接決定了用戶體驗的流暢度與產(chǎn)品競爭力。針對i.MX RT系列的開發(fā)需求,恩智浦在2025年隆重推出全新的性能優(yōu)化方案?- GUI xTurbo技術(shù)
    的頭像 發(fā)表于 07-10 09:21 ?3787次閱讀
    <b class='flag-5'>GUI</b> Guider全新優(yōu)化方案<b class='flag-5'>GUI</b> xTurbo-VeloRender初體驗:基于i.MX RT平臺的LVGL渲染能力突破

    不是8萬也不是13萬,高速風(fēng)筒為什么偏偏是11萬轉(zhuǎn)速呢?--【其利天下】

    在追求高效便捷的現(xiàn)代生活中,高速風(fēng)筒已成為眾多消費者吹干頭發(fā)、打造精致造型的得力助手。那么技術(shù)角度看,為什么市面上大多數(shù)高速風(fēng)筒驅(qū)動方案的轉(zhuǎn)速集中在110000rpm這一數(shù)值,而不是
    的頭像 發(fā)表于 06-26 16:00 ?2043次閱讀
    不是8萬也不是13萬,高速風(fēng)筒為什么偏偏是11萬<b class='flag-5'>轉(zhuǎn)速</b>呢?--【其利天下】

    MC SDK 5.4.8生成的程序 ,帶載工作時轉(zhuǎn)速到1200左右驟停,為什么?

    問題如題,電機參數(shù):內(nèi)阻0.02歐,電感0.04mH,電壓:14S(54V),額定電流:100A,最高轉(zhuǎn)速:2500rpm。 查了一些資料,有可能是電流環(huán)帶寬不夠,不知道如何增加電流環(huán)帶寬。 各位大神幫忙分析一下,是哪里的問題。
    發(fā)表于 06-19 07:55

    無刷暴力風(fēng)扇方案,轉(zhuǎn)速與靜音的完美平衡

    轉(zhuǎn)速、強風(fēng)力和低噪音,使暴力風(fēng)扇迅速成為市場上的熱門產(chǎn)品。今天來跟大家分享其利天下技術(shù)的130000rpm無刷暴力風(fēng)扇驅(qū)動方案。一、方案設(shè)計亮點:高性能與便攜性的完美結(jié)合主控芯片:采用高性能32位
    的頭像 發(fā)表于 04-22 18:07 ?1518次閱讀
    無刷暴力風(fēng)扇方案,<b class='flag-5'>轉(zhuǎn)速</b>與靜音的完美平衡

    樹莓派GUI應(yīng)用開發(fā):零到炫酷的魔法之旅!

    各位樹莓派的粉絲們!今天我要帶你們踏上一段神奇的旅程——探索樹莓派上GUI應(yīng)用的無限可能!你是不是覺得樹莓派只能用來跑跑服務(wù)器、做個簡單的項目?NONONONO!今天我就要顛覆你的認(rèn)知,告訴你樹莓派
    的頭像 發(fā)表于 04-04 09:03 ?1158次閱讀
    樹莓派<b class='flag-5'>GUI</b>應(yīng)用開發(fā):<b class='flag-5'>從</b>零到炫酷的魔法之旅!

    勻膠機轉(zhuǎn)速對微流控芯片精度的影響

    ,離心力越大,光刻膠被推向襯底邊緣的力就越大,涂層就越薄。光刻膠厚度與轉(zhuǎn)速的公式為?h=k/N2,其中?h是光刻膠的厚度,?N是旋涂速度(rpm/每分鐘),?k是光刻膠與設(shè)備的特性等所決定的。 對芯片精度的影響 尺寸精度:微流控芯
    的頭像 發(fā)表于 03-24 14:57 ?934次閱讀

    如何在iMX8MM EVK上啟用紅外接收器?

    Arduino Uno board IR TX module 與 IR TX 接口的 Arduino 將向與 IR RX LED 接口
    發(fā)表于 03-24 06:20