怎么样才能转动步进机电机同时支持12864屏刷新,不会让电机转得太慢呢?- #include <U8glib.h> //声明库
- U8GLIB_ST7920_128X64_4X u8g(12, 11, 10);
- #include <HX711.h>
- HX711 hx(8, 9,128,0.002347);
- #include <EEPROM.h>
- #include <EasyStepper.h>
-
- // define the pins
- #define STEP_PIN 6
- #define DIR_PIN 7
- #define EN_PIN 13
-
- // define the inverted
- #define DIR_PIN_INVERTED true
- #define EN_PIN_INVERTED true
-
- // the EasyStepper instance
- EasyStepper stepper1(STEP_PIN, DIR_PIN, EN_PIN, DIR_PIN_INVERTED, EN_PIN_INVERTED);
-
- // the stepps to rotate
- int stepps = 200;
- int times = 0;
- float x,y;
- const uint8_t L[] PROGMEM = {
- 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,
- 0xC0,0x00,0x00,0x06,0x00,0x60,0x70,0x00,
- 0x00,0x03,0x80,0x00,0x00,0x1C,0x00,0x00,
- 0xC0,0x00,0x04,0x07,0x00,0x70,0x38,0x00,
- 0x00,0x01,0xF0,0x00,0x07,0xFE,0x00,0x00,
- 0xC0,0x00,0x07,0x07,0x00,0x30,0x30,0x00,
- 0x00,0x01,0xE0,0x00,0xFF,0x0E,0x00,0x00,
- 0xDC,0x00,0x1F,0x06,0x00,0x30,0x30,0x00,
- 0x00,0x01,0x84,0x00,0xC3,0x0C,0x00,0x03,
- 0xFC,0x00,0x38,0x06,0x00,0x30,0x30,0x00,
- 0x00,0x41,0xFF,0x00,0x63,0x0C,0x00,0x1F,
- 0xC0,0x00,0xDC,0x76,0x00,0x30,0x37,0x00,
- 0x00,0xFF,0x87,0x00,0x67,0xD8,0x00,0x01,
- 0xC0,0x00,0x08,0x36,0x00,0x30,0x7E,0x00,
- 0x00,0xE0,0x26,0x00,0x6F,0x98,0x00,0x01,
- 0x70,0x00,0x0B,0x06,0x00,0x7D,0xF0,0x00,
- 0x00,0xC7,0xE0,0x00,0x23,0x18,0x00,0x03,
- 0x38,0x00,0x1F,0x66,0x03,0xF0,0x20,0x00,
- 0x01,0x8F,0x00,0x00,0x23,0x38,0x00,0x06,
- 0x1B,0xE3,0xF8,0x76,0x01,0x30,0x20,0x00,
- 0x00,0x13,0x38,0x00,0x37,0xF0,0x00,0x0D,
- 0xFF,0xF7,0x98,0x16,0x00,0x30,0x3C,0x00,
- 0x00,0x3B,0x98,0x00,0x3E,0x30,0x03,0xFF,
- 0xF0,0x00,0x3F,0x06,0xF0,0x38,0xFE,0x00,
- 0x00,0x76,0xC0,0x00,0x00,0x03,0x83,0xC0,
- 0x18,0x00,0x3A,0x1F,0xF0,0x33,0x8C,0x00,
- 0x00,0xCC,0x70,0x01,0x03,0x01,0xC0,0x01,
- 0x18,0x00,0x69,0xFE,0x00,0xF1,0x98,0x00,
- 0x00,0x0C,0xFC,0x01,0x23,0x80,0xE0,0x3F,
- 0xD8,0x00,0xD8,0x06,0x03,0xA0,0xD8,0x00,
- 0x00,0x1F,0xFF,0x83,0x21,0xC8,0x40,0x31,
- 0x98,0x01,0x98,0x06,0x0F,0x30,0x78,0x00,
- 0x00,0x38,0x37,0xF3,0x30,0x8C,0x00,0x11,
- 0x18,0x03,0x18,0x06,0x0E,0x30,0x70,0x00,
- 0x00,0xFF,0xB1,0xE7,0x10,0x06,0x00,0x1F,
- 0x98,0x04,0x18,0x06,0x00,0x30,0x78,0x00,
- 0x01,0x9C,0x30,0x06,0x1C,0x07,0x00,0x18,
- 0x18,0x00,0x18,0x06,0x00,0x30,0xFC,0x00,
- 0x07,0x1F,0xB0,0x02,0x0F,0x0F,0x80,0x10,
- 0x18,0x00,0x18,0x06,0x00,0x37,0x8F,0x80,
- 0x00,0x1F,0x30,0x00,0x07,0xFF,0x00,0x00,
- 0x18,0x00,0x18,0x06,0x00,0xE6,0x07,0xF0,
- 0x00,0x18,0xF0,0x00,0x00,0x00,0x00,0x00,
- 0x18,0x00,0x18,0x06,0x00,0x60,0x01,0xC0,
- 0x00,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,
- 0xF8,0x00,0x00,0x06,0x00,0x00,0x00,0x00,
- 0x00,0x18,0x70,0x00,0x00,0x00,0x00,0x00,
- 0x78,0x00,0x00,0x06,0x00,0x00,0x00,0x00,
- 0x00,0x60,0x00,0x01,0x00,0x00,0x08,0x00,
- 0x00,0x00,0x00,0x00,0x80,0x00,0x10,0x00,
- 0x00,0x90,0x00,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x80,0x00,0x10,0x00,
- 0x00,0x8B,0x39,0xCD,0x72,0x80,0x01,0x60,
- 0x08,0xBA,0x56,0x00,0xB7,0x2C,0xD7,0x80,
- 0x01,0xE4,0xC6,0x33,0x8D,0x40,0x08,0x90,
- 0x08,0xC6,0x49,0x00,0xC8,0x93,0x38,0x00,
- 0x00,0x84,0x7B,0xD1,0x8D,0x40,0x08,0x90,
- 0x09,0xC6,0x48,0x00,0x8B,0x93,0x17,0x00,
- 0x00,0x84,0x42,0x13,0x8D,0x40,0x08,0x90,
- 0x06,0xC6,0x48,0x00,0x8C,0x93,0x30,0x80,
- 0x00,0x84,0x39,0xCD,0x75,0x40,0x08,0x90,
- 0x00,0xB9,0xA8,0x00,0x8B,0x52,0xDF,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x1D,0x00,0x00,0x10,0x00,0x00,0x3C,0x04,
- 0x00,0x10,0x00,0x70,0x00,0x08,0x20,0x20,
- 0x23,0x00,0x00,0x10,0x00,0x00,0x22,0x04,
- 0x00,0x10,0x00,0x88,0x00,0x08,0x20,0x20,
- 0x21,0x67,0x5B,0xF6,0x75,0x80,0x22,0x0F,
- 0xB9,0xD6,0x00,0x83,0x80,0x08,0x7D,0xA0,
- 0x1D,0x98,0xA4,0x59,0x8A,0x40,0x3D,0xF4,
- 0x46,0x39,0x00,0x84,0x40,0x08,0x22,0x60,
- 0x03,0x1F,0x24,0x91,0xF2,0x40,0x28,0x04,
- 0x7A,0x11,0x00,0x84,0x40,0xC8,0x22,0x20,
- 0x23,0x18,0x25,0x11,0x82,0x40,0x24,0x04,
- 0xC2,0x11,0x00,0x8C,0x58,0x88,0x26,0x6C,
- 0x1D,0x17,0x27,0xF1,0x72,0x40,0x22,0x03,
- 0x39,0xD1,0x00,0x73,0x99,0x0F,0x99,0xAC,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- int hx711()
- {
- double sum = 0; // 为了减小误差,一次取出10个值后求平均值。
- for (int i = 0; i < 10; i++) // 循环的越多精度越高,当然耗费的时间也越多
- sum +=hx.bias_read(); // 累加
- return sum/10; // 求平均值进行均差
- }
- void motor()
- {
- if (times < 10)
- {
- stepper1.run();
- if (stepper1.isDone())
- {
- // go back
- stepps *= -1;
- stepper1.rotate(2000.0, stepps);
- times++;
- if(times==10)times=0;
- }
- }
- }
-
- void setup()
- {
- hx.set_offset(5350);
- hx.tare();
- u8g.firstPage();
- do {
- u8g.drawBitmapP( 0, 0, 16 , 64, L);
- u8g.setFont(u8g_font_7x14); //写文字
- u8g.drawStr(5,49,"E-cig Test Ver1.0");
- } while( u8g.nextPage() );
- delay(5000);
- stepper1.debugMode(false);
- stepper1.startup();
- stepper1.rotate(800.0, stepps);
-
- }
- void loop()
- {
- u8g.firstPage( );
- int data=hx711();
- motor();
- //delay(100);
- do //显示
-
- {
- u8g.setFont(u8g_font_5x7); //写文字
- u8g.drawStr(2,6,"Arduino Oscilloscope V0.1");
- u8g.setFont(u8g_font_5x7); //写文字
- u8g.drawStr(5,64,"Shenzhen R-tech Co.,Ltd.");
- u8g.setPrintPos(50, 50);
-
- {
- u8g.setFont(u8g_font_9x18);
- u8g.print(data);
-
- }
- // u8g.drawLine(64,0,64,63); // 画坐标轴
-
- // u8g.drawLine(0,32,128,32);
- // for(x=0;x<128;x+=8) //画坐标轴刻度
- // u8g.drawLine(x,31,x,33);
- // for(x=0;x<64;x+=8)
- // u8g.drawLine(63,x,65,x);
- // u8g.drawFrame(19,6,90,52); //画边框
- }
- while( u8g.nextPage( ));
- }
复制代码 |