淘晶驰串口屏上位机-arduino 自动小焊机
[*] SolidWorks建模
[*] 花了一周时间做出来了:lol
[*]硬件部分 arduino uno+ 2个中间继电器+1个HMI 串口屏+220V 带调试器电机
[*]
[*]HMI 串口屏设置参数1
[*]HMI 串口屏设置参数2
[*]HMI 串口屏设置参数3
[*]arduino 代码Serial.Event 是伪中断 程序用的轮询 有好的代码 欢迎大神指教
[*]//淘晶驰串口屏幕上位机 arduino 下位机 串口控制IO 实现自动焊接-20210325 西代
String comdata = "";
int i=0;
String ss_str="";
String ms_str="";
void revece_data(void); //接受串口数据
void test_data(void); //执行串口数据
void setup() {
pinMode(13, OUTPUT);//数字IO13--控制继电器及电机工作
pinMode(12, OUTPUT);//数字IO12--控制继电器及焊枪开关工作
digitalWrite(13, LOW);//停止电机
digitalWrite(12, LOW);//停止焊机
Serial.begin(9600);
}
void loop()
{
revece_data();
if(comdata.length()>0)
{
Serial.println(comdata);
test_data();
while(Serial.read()>=0){} //清空串口缓存
}
}
void test_data(void) //执行串口命令
{
i=comdata.indexOf('A');
ss_str=comdata.substring(i+1,comdata.length());
ms_str=comdata.substring(0,i);
Serial.println(ss_str.toInt()*1000);
Serial.println(ms_str.toInt()*1000);
digitalWrite(12, HIGH);//启动焊机
delay(ms_str.toInt()*1000);//启弧时间结束
digitalWrite(13, HIGH);//启动电机
int ys=ss_str.toInt();
//delay(ss_str.toInt()*1000);
comdata="";
while (ys>0)//串口轮询
{
revece_data();
Serial.println(comdata);
if(comdata=="A")//触摸屏串口stop停止启动电机
{
digitalWrite(13, LOW);//停止启动电机
Serial.println("OFF MO-TO");
digitalWrite(12, LOW);
Serial.println("OFF H-J");
comdata="";
break;
}
ys=ys-1;
delay(1000);
}
digitalWrite(13, LOW);//停止电机
digitalWrite(12, LOW);//停止焊机
i=0;
ss_str="";
ms_str="";
comdata = "";
}
void revece_data()//接受串口数据 comdata
{
while (Serial.available())
{
//获取新的字节:
char inChar = (char)Serial.read();
//将它添加到inputString:
comdata += inChar ;
delay(2);
}
}
这种场合用这些模块 要注意做好抗干扰 :lo楼主威武!!! 上面的界面是串口屏上的界面?手摇调节角度?电机是普通电机?电机调速怎么实现? 老铁,你这种是什么焊机?是否有采用脉冲?我也想把普通的焊接改成那种带脉冲的,目前还在思考当中。。。 脉冲是焊机自带的功能吧,焊机不带脉冲的话只能用连续点焊来实现 牛逼胆子大的。串口屏界面再优化下就好了。
页:
[1]