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

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

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

全工位氫氧根離子監(jiān)測(cè)站

迪文智能屏 ? 2024-03-29 08:12 ? 次閱讀

——來(lái)自迪文開發(fā)者論壇

本期為大家推送迪文開發(fā)者論壇獲獎(jiǎng)開源案例——全工位氫氧根離子監(jiān)測(cè)站,工程師采用7英寸串口屏,通過(guò)RS485RS232接口與外設(shè)通訊,實(shí)現(xiàn)水中氫氧根離子含量檢測(cè)??蓱?yīng)用于電廠污水、紡織污水、池塘污水檢測(cè)等場(chǎng)景,降低人工采集成本,測(cè)試精準(zhǔn)度高。


UI素材展示

00973eae-ed61-11ee-9118-92fbcf53809c.png

00ab18de-ed61-11ee-9118-92fbcf53809c.png

UI開發(fā)示例

00b697a4-ed61-11ee-9118-92fbcf53809c.png

C51代碼設(shè)計(jì) 機(jī)械臂核心操作代碼:

#ifndef __BASE_H__#define __BASE_H__#include "sys.h"
#define BASE_SHAKE_CNT_DEF 12#define BASE_CLEAN_TIME_DEF 3
u8 base_shake(u16 cnt,u16 quit_code);u8 base_clean(u16 clean_time, u16 quit_code);u8 base_air_dry(u16 quit_code);u8 base_select_sample(u8 pos,u8 is_clean,u16 quit_code);
#include "base.h"#include "motor.h"#include "test.h"#include "params.h"
u8 base_shake_x_or_y(u8 is_x,u16 cnt,u16 quit_code){ #define SHAKE_STEP 300 #define SHAKE_DELAY 400 s16 cur_step = 0;u8res=0; if(cur_motor_pos==MOTOR_POS_CLEAN) return0; while(cnt--) { if(cur_step==0) cur_step = SHAKE_STEP; else if(cur_step>0) cur_step = SHAKE_STEP*-2; else cur_step = SHAKE_STEP*2; if(is_x) { motor_set_dir((cur_step<0?MOTOR_DIR_FORWARD:MOTOR_DIR_BACKWARD),MOTOR_DIR_SKIP,MOTOR_DIR_SKIP);? ?? ?? ?? ?? ?? ?? ?? ?motor_move((cur_step<0?-cur_step:cur_step),0,0);? ?? ?? ?? ?? ? }else? ?? ?? ?? ?? ? {? ?? ?? ?? ?? ?? ?? ?? ?motor_set_dir(MOTOR_DIR_SKIP,(cur_step<0?MOTOR_DIR_FORWARD:MOTOR_DIR_BACKWARD),MOTOR_DIR_SKIP);? ?? ?? ?? ?? ?? ?? ?? ?motor_move(0,(cur_step<0?-cur_step:cur_step),0);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? }? ?? ?? ?? ?? ? sys_delay_ms(SHAKE_DELAY);? ?? ?? ?? ?? ? if(func_code_scan()==quit_code)? ?? ?? ?? ?? ? {? ?? ?? ?? ?? ?? ?? ?? ?res = 1;? ?? ?? ?? ?? ?? ?? ?? ?break;? ?? ?? ?? ?? ? }? ?? ?? ????????}???? ? ?? ?? if(cur_step!=0)? ?? ???{? ?? ?? ?? ?? ? if(is_x)? ?? ?? ?? ?? ? {? ?? ?? ?? ?? ?? ?? ?? ?motor_set_dir((cur_step<0?MOTOR_DIR_BACKWARD:MOTOR_DIR_FORWARD),MOTOR_DIR_SKIP,MOTOR_DIR_SKIP);? ?? ?? ?? ?? ?? ?? ?? ?motor_move(SHAKE_STEP,0,0);? ?? ?? ?? ?? ? }else? ?? ?? ?? ?? ? {? ?? ?? ?? ?? ?? ?? ?? ?motor_set_dir(MOTOR_DIR_SKIP,(cur_step<0?MOTOR_DIR_BACKWARD:MOTOR_DIR_FORWARD),MOTOR_DIR_SKIP);? ?? ?? ?? ?? ?? ?? ?? ?motor_move(0,SHAKE_STEP,0);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? }? ?? ?? ?? ?? ? sys_delay_ms(SHAKE_DELAY);????????}? ?? ?? return res;}
u8 base_shake(u16 cnt,u16 quit_code){ if(base_shake_x_or_y(1,cnt,quit_code)) return 1; if(base_shake_x_or_y(0,cnt,quit_code)) return2; return 0;}
u8 base_clean(u16 clean_time, u16 quit_code){ #define FULL_TIME (sys_params.full_time) #define EMPTY_TIME (FULL_TIME+25) #define BASE_UNIT 200 u8 res = 0;u8time;motor_select_sample(MOTOR_POS_CLEAN); WASTE_PUMP_OFF(); WATER_PUMP_ON(); time = FULL_TIME; while(time--) { sys_delay_ms(BASE_UNIT); if(func_code_scan()==quit_code) { res = 1; break; }} if(clean_time) { WASTE_PUMP_ON(); while(clean_time--) { sys_delay_ms(1000); if(func_code_scan()==quit_code) { res = 1; break; } } } WASTE_PUMP_ON(); WATER_PUMP_OFF(); time = EMPTY_TIME; while(time--) { sys_delay_ms(BASE_UNIT); if(func_code_scan()==quit_code) res = 3; } WASTE_PUMP_OFF(); if(res==0) { test_update_sta(WORK_STA_AIR_DRY); res = base_air_dry(quit_code); } return res;}
u8 base_air_dry(u16 quit_code){ #define AIR_DRY_TIME (sys_params.air_dry_time) u8 res = 0;u8sec; AIR_PUMP_ON(); sec = AIR_DRY_TIME; while(sec--) { sys_delay_ms(1000); if(func_code_scan()==quit_code) { res = 1; break; } } AIR_PUMP_OFF(); return res;}
u8 base_select_sample(u8 pos,u8 is_clean,u16 quit_code){ if(is_clean) { test_update_sta(WORK_STA_CLEAN); if(is_testing) { work_sta = WORK_STA_TEST_STEP_1; if(test_upload_data()) return 1; } if(base_clean(BASE_CLEAN_TIME_DEF, quit_code)) return 1; } if(is_testing) { work_sta = WORK_STA_TEST_STEP_2; if(test_upload_data()) return 1;} test_update_sta(WORK_STA_MOVE); motor_select_sample(pos); if(func_code_scan()==quit_code) return2; test_update_sta(WORK_STA_SHAKE); if(base_shake(BASE_SHAKE_CNT_DEF,quit_code)) return 3; if(func_code_scan()==quit_code) return4; return 0;}

測(cè)試相關(guān)的代碼:

bitis_complete_tip=0;u16 complete_tip_time = 0;u8 cur_bottle_no = 0;u8 cur_completed_num = 0;u8 total_sample_num = NUM_OF_GROUP_DEF;u8 cur_work_sta = WORK_STA_IDLE;u8 last_result[LAST_RESULT_MAX_LEN] = {"--------\0\0"};u8 is_testing = 0;u8is_normal_completed=0;u8test_make(u16quit_code);
//開始測(cè)試void test_start(u16 quit_code){u16val; is_testing = 1; is_complete_tip = 0; cur_work_sta = WORK_STA_CLEAN; cur_completed_num = 0; cur_bottle_no = start_bottle_no; score = SCORE_UNKNOW; val = 1; sys_write_vp(MAIN_WIN_START_BTN_VP,(u8*)&val,1); main_win_update(); is_normal_completed = !test_make(quit_code); if(is_normal_completed) { test_update_sta(WORK_STA_CLEAN); base_clean(BASE_CLEAN_TIME_DEF, quit_code); } motor_select_sample(MOTOR_POS_PROTECT); cur_work_sta = (is_normal_completed?WORK_STA_ALL_COMPLETED:WORK_STA_IDLE); cur_bottle_no = 0; val = 0; sys_write_vp(MAIN_WIN_START_BTN_VP,(u8*)&val,1); main_win_update(); if(is_normal_completed) { is_complete_tip = 1; complete_tip_time = COMPLETE_TIP_MAX_TIME; sys_goto_win(WIN_ID_MAIN); sys_delay_ms(100); sys_click_pos(2,13); } is_testing = 0; is_stable = 0; check_stable_tick = 0; val = 0; sys_write_vp(BTN_VAL_ADDR,(u8*)&val,1); work_sta = WORK_STA_TEST_STEP_COMPLETED; test_upload_data();}
//測(cè)試流程u8 test_make(u16 quit_code){ u8 pos; u8 offset; float sum = 0; float max = -999999; float min = 999999; u8 index = 0; u8 end_pos; end_pos = total_sample_num+start_bottle_no-1; for(pos=(start_bottle_no-1);pos{ if(base_select_sample(pos,!(is_group&&(index%num_of_group)),quit_code))return1; cur_work_sta = WORK_STA_ANALYSIS; main_win_update(); if(is_testing) { work_sta = WORK_STA_TEST_STEP_3; if(test_upload_data()) return 1; } check_stable_tick = 1; is_stable = 0; stable_val = 999999; while(1) { if(is_stable) break; if(func_code_scan()==quit_code) return 2;} score = SCORE_UNKNOW; memset(last_result,0,LAST_RESULT_MAX_LEN); sprintf(last_result,"%.3f",cur_ph); if(is_group&&(invalid_num_of_group { offset = index%num_of_group; if(offset>=invalid_num_of_group) { sum += cur_val;//對(duì)有效點(diǎn)累加求和 if(cur_val>max) max = cur_val; if(cur_val min = cur_val; } if((offset+1)==num_of_group) { sum /= (num_of_group-invalid_num_of_group); score = ((max-min) sum = 0; max = -999999; min = 999999; } } cur_completed_num++; if(is_testing) { work_sta = WORK_STA_TEST_STEP_4; if(test_upload_data()) return 1; } cur_bottle_no++; if(cur_bottle_no>end_pos) cur_bottle_no = 0; main_win_update(); index++;} return 0;}

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

    關(guān)注

    5

    文章

    4348

    瀏覽量

    91105
  • 監(jiān)測(cè)
    +關(guān)注

    關(guān)注

    2

    文章

    3388

    瀏覽量

    44236
  • 迪文屏
    +關(guān)注

    關(guān)注

    3

    文章

    71

    瀏覽量

    5259
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    環(huán)境噪聲監(jiān)測(cè)站#城市噪聲在線監(jiān)測(cè) #智慧能源

    監(jiān)測(cè)站
    pingao141378
    發(fā)布于 :2024年09月14日 11:44:05

    水文監(jiān)測(cè)站都有哪些優(yōu)勢(shì)

    水文監(jiān)測(cè)站作為現(xiàn)代科技與自然生態(tài)融合的重要工具,正以其獨(dú)特的魅力和強(qiáng)大的功能,守護(hù)著寶貴的水資源。水文監(jiān)測(cè)站不僅是水資源管理的“智慧之眼”,還是我們應(yīng)對(duì)水環(huán)境挑戰(zhàn)、推動(dòng)生態(tài)文明建設(shè)的得力助手。
    的頭像 發(fā)表于 09-05 17:05 ?116次閱讀

    什么是雷達(dá)水文監(jiān)測(cè)站

    雷達(dá)水文監(jiān)測(cè)站以其實(shí)時(shí)監(jiān)測(cè)、預(yù)警預(yù)報(bào)、數(shù)據(jù)分析、自動(dòng)化管理及節(jié)能環(huán)保等多重優(yōu)勢(shì),正逐步成為智慧水利體系中重要的一環(huán)。雷達(dá)水文監(jiān)測(cè)站不僅提升了水資源管理的科學(xué)性和準(zhǔn)確性,還為保障國(guó)家水安全、促進(jìn)經(jīng)濟(jì)社會(huì)可持續(xù)發(fā)展提供了強(qiáng)有力的技術(shù)
    的頭像 發(fā)表于 08-29 13:27 ?92次閱讀

    水位監(jiān)測(cè)站的功能特點(diǎn)以及應(yīng)用

    水位監(jiān)測(cè)站在保障水域安全、合理利用水資源等方面發(fā)揮著重要作用。隨著我國(guó)水資源管理水平的不斷提高,水位監(jiān)測(cè)站將發(fā)揮更大的作用。
    的頭像 發(fā)表于 08-23 16:25 ?162次閱讀

    #人工智能 #電工知識(shí) 超聲波微型氣象監(jiān)測(cè)站#智慧能源

    電工監(jiān)測(cè)站
    pingao141378
    發(fā)布于 :2024年08月12日 17:09:11

    景區(qū)負(fù)氧離子監(jiān)測(cè)站的數(shù)據(jù)準(zhǔn)確性如何?

    BK-FZ5景區(qū)負(fù)氧離子監(jiān)測(cè)站的數(shù)據(jù)準(zhǔn)確性是評(píng)估其性能的重要指標(biāo)之一,其準(zhǔn)確性受到多個(gè)因素的影響。
    的頭像 發(fā)表于 07-31 14:41 ?159次閱讀
    景區(qū)負(fù)氧<b class='flag-5'>離子</b><b class='flag-5'>監(jiān)測(cè)站</b>的數(shù)據(jù)準(zhǔn)確性如何?

    無(wú)線墑情監(jiān)測(cè)站是什么?主要參數(shù)介紹

    監(jiān)測(cè)站
    博科儀器
    發(fā)布于 :2024年07月11日 16:44:00

    什么是箱式岸邊水質(zhì)監(jiān)測(cè)站?

    什么是岸邊水質(zhì)監(jiān)測(cè)站?岸邊水質(zhì)監(jiān)測(cè)站是一種安裝在水域岸邊的設(shè)備,用于監(jiān)測(cè)和評(píng)估水體的質(zhì)量和污染情況。這些監(jiān)測(cè)站通常位于河流、湖泊、海洋或其他水體的岸邊,以便方便地獲取水樣并進(jìn)行實(shí)時(shí)
    的頭像 發(fā)表于 06-27 08:56 ?233次閱讀
    什么是箱式岸邊水質(zhì)<b class='flag-5'>監(jiān)測(cè)站</b>?

    土壤墑情監(jiān)測(cè)站監(jiān)測(cè)原理是什么

    土壤墑情監(jiān)測(cè)站監(jiān)測(cè)原理是什么?【BK-GTS05】。土壤墑情監(jiān)測(cè)站監(jiān)測(cè)原理主要基于以下幾種方式:   電阻法:利用土壤中水分含量不同會(huì)導(dǎo)致電阻變化的原理。當(dāng)土壤濕度增加時(shí),電
    的頭像 發(fā)表于 06-07 17:35 ?171次閱讀

    氣象監(jiān)測(cè)站的作用及重要性

    在當(dāng)今社會(huì),氣象監(jiān)測(cè)站不僅僅是一個(gè)簡(jiǎn)單的數(shù)據(jù)收集點(diǎn),更是守護(hù)我們生命安全的重要設(shè)施。隨著科技的不斷進(jìn)步,氣象監(jiān)測(cè)站在預(yù)報(bào)自然災(zāi)害、指導(dǎo)農(nóng)業(yè)生產(chǎn)、保障航空安全等方面發(fā)揮著越來(lái)越重要的作用。 氣象監(jiān)測(cè)站
    的頭像 發(fā)表于 04-26 17:16 ?539次閱讀
    氣象<b class='flag-5'>監(jiān)測(cè)站</b>的作用及重要性

    溝渠流速雨量監(jiān)測(cè)站

    雨量監(jiān)測(cè)站是一種專門用于測(cè)量降雨量的設(shè)施。它通過(guò)收集和記錄降雨量數(shù)據(jù),為氣象、水文和環(huán)境領(lǐng)域的研究和應(yīng)用提供數(shù)據(jù)支持。現(xiàn)代化的雨量監(jiān)測(cè)站通常配備有自動(dòng)化儀器,用于實(shí)時(shí)記錄降雨量數(shù)據(jù),并通過(guò)無(wú)線傳輸
    的頭像 發(fā)表于 02-05 10:43 ?335次閱讀

    污染源水質(zhì)監(jiān)測(cè)——浮漂式水質(zhì)監(jiān)測(cè)站

    污染源水質(zhì)監(jiān)測(cè)——浮漂式水質(zhì)監(jiān)測(cè)站
    的頭像 發(fā)表于 12-11 16:16 ?442次閱讀

    地面沉降監(jiān)測(cè)站可以監(jiān)測(cè)什么?

    隨著城市化的飛速發(fā)展,地面沉降問(wèn)題日益凸顯。為了及時(shí)掌握土地沉降情況,確保人們安全,就需要借助地面沉降監(jiān)測(cè)站的力量。 一、實(shí)時(shí)監(jiān)測(cè)土地沉降 地面沉降監(jiān)測(cè)站的核心功能是實(shí)時(shí)監(jiān)測(cè)土地沉降。
    的頭像 發(fā)表于 11-13 14:08 ?585次閱讀

    GNSS位移監(jiān)測(cè)站產(chǎn)品特點(diǎn)

    風(fēng)途【FT-WY1】GNSS位移監(jiān)測(cè)站從數(shù)據(jù)流程及功能劃分角度,可將整個(gè)監(jiān)測(cè)系統(tǒng)劃分為空間部分、地面基準(zhǔn)站部分、監(jiān)測(cè)終端三大部分。
    的頭像 發(fā)表于 10-27 15:28 ?783次閱讀

    車載揚(yáng)塵監(jiān)測(cè)站# 監(jiān)測(cè)# 車載# 氣象

    監(jiān)測(cè)站
    pgz1234
    發(fā)布于 :2023年10月20日 14:32:36