標(biāo)題:
arduino充氧仿真裝置Proteus仿真程序
[打印本頁]
作者:
橙小亮
時(shí)間:
2020-4-29 01:52
標(biāo)題:
arduino充氧仿真裝置Proteus仿真程序
arduino充氧仿真裝置仿真,這是用于給水進(jìn)行充氧的,通過檢測(cè)水壓以及水溫,再通過一個(gè)公式的計(jì)算,得到水中的氧含量。從而判斷是否電機(jī)是否運(yùn)行給水中鼓起充氧。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png
(35.96 KB, 下載次數(shù): 87)
下載附件
2020-4-29 02:37 上傳
單片機(jī)源程序如下:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#define MPX_PIN A1 //定義壓力傳感器MPX4115的引腳連接
#define LED_PIN 9 //定義led指示燈的引腳連接
#define MOTOR_PIN 9 //定義電機(jī)的引腳連接
#define DS18B20 10 //定義ds18b20的引腳連接
#define JIA_1 11 //定義設(shè)定值+1的引腳連接
#define JIAN_1 13 //定義設(shè)定值-1的引腳連接
OneWire oneWire(DS18B20);
DallasTemperature sensors(&oneWire);
LiquidCrystal myLcd(2,3,4,5,6,7,8); //聲明一個(gè)1602 LCD對(duì)象
float temp = 0; //初始化溫度變量
float mpx = 0; //初始化壓力變量
float DOf = 5;
int time_n = 0;
int time_num = 0;
float DOF = 5; //初始設(shè)計(jì)氧含量的值
void setup(){
// 初始庫
sensors.begin();
myLcd.begin(16,4);
pinMode(JIA_1,INPUT);
pinMode(JIAN_1,INPUT);
pinMode(MOTOR_PIN,OUTPUT);
analogWrite(MOTOR_PIN, 0);
Serial.begin(9600);
myLcd.setCursor(0, 0); //將1602 LCD光標(biāo)移動(dòng)到第一行第一列
myLcd.print(String("temp:"));
myLcd.setCursor(0, 1); //將1602 LCD光標(biāo)移動(dòng)到第二行第一列
myLcd.print(String("mpx :"));
myLcd.setCursor(0, 2); //將1602 LCD光標(biāo)移動(dòng)到第三行第一列
myLcd.print(String("Ture oxygen:"));
myLcd.setCursor(0, 3); //將1602 LCD光標(biāo)移動(dòng)到第四行第一列
myLcd.print(String("Set oxygen :"));
}
void loop(){
//測(cè)溫
sensors.requestTemperatures(); // 發(fā)送命令獲取溫度
temp = sensors.getTempCByIndex(0);
//測(cè)壓
mpx = analogRead(MPX_PIN); //讀取模擬量數(shù)據(jù)
mpx = map(mpx,54,973,15,115); //模擬量輸出是54-973 測(cè)量的電壓為15-115Pa**千萬別改,測(cè)出來的
//鍵盤檢測(cè)
if(digitalRead(JIA_1) == HIGH){
DOF = DOF + 1;
delay(100); //消抖
}
else
DOF=DOF;
if(digitalRead(JIAN_1) == HIGH){
DOF = DOF - 1;
delay(100); //消抖
}
else
DOF=DOF;
//計(jì)算是否低于設(shè)定值
DOf = (mpx/101)*(471.01/(temp+31.98)); //101是大氣壓
if(DOf < DOF)
analogWrite(MOTOR_PIN, 255);
else
analogWrite(MOTOR_PIN, 0);
//顯示
myLcd.setCursor(5, 0);
myLcd.print(String(temp) + String(" 'C"));
myLcd.setCursor(5, 1);
myLcd.print(String(mpx) + String(" KPa"));
myLcd.setCursor(12, 2);
myLcd.print(String(DOf));
myLcd.setCursor(12, 3);
myLcd.print(String(DOF));
}
復(fù)制代碼
所有資料51hei提供下載:
充氧裝置仿真.zip
(3.44 MB, 下載次數(shù): 35)
2020-4-29 01:48 上傳
點(diǎn)擊文件名下載附件
通過檢測(cè)水中壓力和溫度,判斷氧含量
下載積分: 黑幣 -5
作者:
云天茗悠
時(shí)間:
2020-5-4 22:19
不錯(cuò)不錯(cuò)學(xué)習(xí)一下
作者:
lovers
時(shí)間:
2020-6-19 08:20
設(shè)定氧氣濃度那里 一直按沒有反應(yīng)啊,加到6就不動(dòng)了
作者:
Highnose
時(shí)間:
2020-10-24 12:10
請(qǐng)問樓主,這個(gè)壓力傳感器能放水里嗎?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1