标题:
这个单片机电机控制程序如何修改? 求帮助
[打印本页]
作者:
freedom9001
时间:
2019-6-10 17:32
标题:
这个单片机电机控制程序如何修改? 求帮助
各位大师,能帮忙改改一下这个程序吗?
要求:出胶后,电机旋转180度,毛刷下降保持,然后电机来回45度往复旋转
#include "Oiling_Tooling.Arduino.h"
void System_Init()
{
digitalWrite( Starting_switch_Pin , HIGH );
digitalWrite( Interrupt_switch_Pin , HIGH );
digitalWrite( Oil_injection_Pin , LOW );
digitalWrite( Brush_Pin , LOW );
digitalWrite( Electric_machinery_Pin , LOW );
digitalWrite( Downward_pressure_Pin , LOW );
pinMode( Starting_switch_Pin , INPUT);
pinMode( Interrupt_switch_Pin , INPUT);
pinMode( Oil_injection_Pin , OUTPUT);
pinMode( Brush_Pin , OUTPUT);
pinMode( Electric_machinery_Pin , OUTPUT);
pinMode( Downward_pressure_Pin , OUTPUT);
}
#ifndef _Oiling_Tooling_Arduino_H_
#define _Oiling_Tooling_Arduino_H_
#include <Arduino.h>
/*****************************************
定义引脚
*****************************************/
#define Starting_switch_Pin 13 //启动开关
#define Interrupt_switch_Pin 2 //中断开关
#define Electric_machinery_Pin 5 //驱动电机
#define Downward_pressure_Pin 6 //驱动注油针下压
#define Oil_injection_Pin 3 //注油
#define Brush_Pin 4 //毛刷
extern void System_Init();//初始化
#endif
#include "Oiling_Tooling.Arduino.h"
int Electric_machinery_value=3000; //电机运行值
int Downward_pressure_time=200; //驱动注油针下压时间
int Oil_injection_time=500; //注油时间
int Brush_time=500; //毛刷动作时间
void setup()
{
System_Init();
}
void loop()
{
if(digitalRead(Starting_switch_Pin)==LOW)
{
delay(50);
if(digitalRead(Starting_switch_Pin)==LOW)
{
if(digitalRead(Interrupt_switch_Pin)==HIGH)
{
digitalWrite( Oil_injection_Pin , HIGH );
digitalWrite( Brush_Pin , LOW );
digitalWrite( Electric_machinery_Pin , LOW );
digitalWrite( Downward_pressure_Pin , LOW );
delay( 100);
digitalWrite( Brush_Pin , HIGH ); //毛刷到位
digitalWrite( Downward_pressure_Pin , HIGH );//注油针下压
delay( Downward_pressure_time······ );
digitalWrite( Oil_injection_Pin , HIGH );//开始注油
delay( Oil_injection_time );
digitalWrite( Oil_injection_Pin , LOW ); //结束注油
delay( Brush_time);//防止油漏出
digitalWrite( Downward_pressure_Pin , LOW ); //注油针上升
delay(200);
for(int i=0;i<Electric_machinery_value;i++) //电机动作
{
digitalWrite( Electric_machinery_Pin , HIGH );
delay(1);
digitalWrite( Electric_machinery_Pin , LOW );
delay(1);
if(digitalRead(Interrupt_switch_Pin)==LOW)
{
delay( 50 );
if(digitalRead(Interrupt_switch_Pin)==LOW)
{
digitalWrite( Starting_switch_Pin , HIGH );
digitalWrite( Interrupt_switch_Pin , HIGH );
digitalWrite( Oil_injection_Pin , LOW );
digitalWrite( Brush_Pin , LOW );
digitalWrite( Electric_machinery_Pin , LOW );
return;
}
}
}
digitalWrite( Brush_Pin , LOW );//毛刷上升
}
}
while(digitalRead(Starting_switch_Pin)==LOW)
{
}
}
}
复制代码
作者:
51hei团团
时间:
2019-6-11 02:26
直流电机还是步进电机?
作者:
鹏博士PBs
时间:
2019-6-11 07:58
这是多少拍的步进电机啊
作者:
witheMe
时间:
2019-8-11 20:47
不清楚电机型没有对应的参数。很难帮你修改正确。你可以试试编码器
作者:
MY黄土高坡
时间:
2019-8-12 09:06
程序存在什么问题吗?先做前两个流程,完成以后最后那个流程外加一个死循环就可以了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1