/**
* Copyright(C), 2018-2038, KenRobot.com
* FileName: sketch_mar28a.ino
* Author: 啃萝卜
* Create: 2019/03/29
* Modify: 2019/03/29
*/
#include <Stepper.h>
#include <U8glib.h>
int led_0 = 2;
Stepper stepper_0(100, 7, 5, 6, 4);
U8GLIB_SSD1306_128X64 u8g_0(U8G_I2C_OPT_NONE);
float dishu = 0;
int count;
int count1;
int lbapjing;
int v;
int l;
int vs;
int flag;
int time;
int time2;
void int2() {
time = 0;
dishu = (dishu + 1);
count = millis();
if ((count - count1) < 5000) {
v = (600000 / (count - count1));
}
l = (25000 - ((dishu * 10) / 2));
count1 = count;
flag = 1;
}
void setup() {
pinMode(led_0, OUTPUT);
stepper_0.setSpeed(60);
lbapjing = 20;
vs = 500;
l = 25000;
digitalWrite(3, 1);
attachInterrupt(digitalPinToInterrupt(3), int2, FALLING);
stepper_0.setSpeed(150);
digitalWrite(led_0, LOW);
delay(500);
digitalWrite(led_0, HIGH);
}
void loop() {
u8g_0.firstPage();
do {
u8g_0.setFont(u8g_font_9x18);
u8g_0.setPrintPos(0, 10);
u8g_0.print("V:");
u8g_0.print(((v / 1000) % 10));
u8g_0.print(((v / 100) % 10));
u8g_0.print(".");
u8g_0.print(((v / 10) % 10));
u8g_0.print((v % 10));
u8g_0.print("ml/min");
u8g_0.setPrintPos(0, 35);
u8g_0.print("Vs:");
u8g_0.print(((vs / 100) % 10));
u8g_0.print(".");
u8g_0.print(((vs / 10) % 10));
u8g_0.print((vs % 10));
u8g_0.print("ml/min");
u8g_0.setPrintPos(0, 60);
u8g_0.print("L:");
u8g_0.print(((l / 10000) % 10));
u8g_0.print(((l / 1000) % 10));
u8g_0.print(((l / 100) % 10));
u8g_0.print(".");
u8g_0.print(((l / 10) % 10));
u8g_0.print((l % 10));
u8g_0.print("ml");
u8g_0.setPrintPos(95, 60);
u8g_0.print(((lbapjing / 10) % 10));
u8g_0.print((lbapjing % 10));
u8g_0.print("ml");
} while (u8g_0.nextPage());
if (l < (lbapjing * 100)) {
digitalWrite(led_0, LOW);
}
if (flag == 1) {
flag = 0;
time2 = (time2 + 1);
if (time2 > 4) {
time2 = 0;
if (v > 100) {
if (v > (vs + 200)) {
stepper_0.step(100);
delay(50);
}
if (v < (vs - 200)) {
stepper_0.step(-100);
delay(50);
}
}
}
}
time = (time + 1);
if (time > 100) {
time = 0;
v = 0;
}
}
|
|
有步进电机驱动