极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10566|回复: 4

【新手求助】arduino开机后电机自转

[复制链接]
发表于 2012-8-6 17:21:24 | 显示全部楼层 |阅读模式
求助1:arduino——L298N,arduino 通电后,未进行按键控制,电机会转,但按键会控制电机停 。是Arduino损坏了?应该开机时就是低电平啊
求助2:
L298N连接 电机1 电机2,开关1控制电机1    开关2控制电机2 , 怎么编程 能在 开关1开启,电机1转动的时候,按下开关2,电机1停止,电机2转动,

             同样在开关2开启,电机2转动的时候,按下开关1,电机2停止,电机1转动。
      
还能单独控制 转 和 停止。下面是我的程序。初自学垃圾编程,跪求指导。
int val1 = 0;
int val2 = 0;
int val3 = 0;
int val4 = 0;
int state1 = 0;
int state2 = 0;
void setup()
{
  pinMode(6,INPUT);
  pinMode(7,INPUT);
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  }
  void loop()
  {
    val1=digitalRead(6);
    if((val1 == HIGH)&&(val2 == LOW))
    {
      state1 = 1-state1;
      delay(10);
      }
      val2 = val1;
     
      val3 = digitalRead( 7 );
      if((val3 == HIGH)&&(val4 == LOW))
       {
        state2 = 1-state2;
        delay(10);
         }
        val4 = val3;
    if(state1 == 0)
    {
               digitalWrite(2,LOW);
               analogWrite(3,LOW);
                }
               
    if(state2 == 0)
    {
       digitalWrite(4,LOW);
         analogWrite(5,LOW);
      }
      if(state1 == 1)
        {
           digitalWrite(2,HIGH);
           analogWrite(3,HIGH);                 
           }
           if(state2 == 1)
              {
                digitalWrite(4,HIGH);
                analogWrite(5,HIGH);   
                }
                if(state1 == 1)
                {
                  if(state2 == 1)
                  {
                    state1 = 0;
                    digitalWrite(4,HIGH);
                    analogWrite(5,HIGH);   
                    }
                    }
                    if(state2 == 1)
                    {
                      if(state1 == 1)
                      {
                        state2 = 0;
                        digitalWrite(2,HIGH);
                        analogWrite(3,HIGH);                 
                       }
                       }
                       }
  现在是能在  开关1开启,电机1转动的时候,按下开关2,电机1停止,电机2转动,

   但是不能在开关2开启,电机2转动的时候,按下开关1,电机2停止,电机1转动。

通电放置一段时间电机会自己转动,什么毛病?
回复

使用道具 举报

发表于 2012-8-6 19:38:09 | 显示全部楼层
本帖最后由 pww999 于 2012-8-7 01:17 编辑

nt val1 = 0;
int val2 = 0;
int val3 = 0;
int val4 = 0;
int state1 = 0;
int state2 = 0;
void setup()
{
  pinMode(6,INPUT);
  pinMode(7,INPUT);
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  
analogWrite(3,0);
analogWrite(5,0);
}
  void loop()
  {
    val1=digitalRead(6);
val2 = digitalRead(7);

    if(val1 == HIGH)
    {
if (val3==0)
{
//val2 =LOW;
     digitalWrite(4,LOW);
  analogWrite(5,0);
digitalWrite(2,HIGH);
   analogWrite(3,255);
      delay(10);
val3=1;

      }
else {
digitalWrite(2,LOW);
   analogWrite(3,0);
val3=0;
}
}


   if(val2 == HIGH)
    {
if (val4==0)
{
//val1 =LOW;
digitalWrite(2,LOW);
   analogWrite(3,0);
      digitalWrite(4,HIGH);
  analogWrite(5,255);
      delay(10);
val4=1;
      }
else {
  digitalWrite(4,LOW);
  analogWrite(5,0);
val4=0;

}
}






?????
回复 支持 反对

使用道具 举报

发表于 2012-8-6 20:35:28 | 显示全部楼层
上传一下你的硬件接线图或者原理图吧~我估计是你的硬件问题~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-7 16:57:45 | 显示全部楼层
谢谢各位,基础的东西不扎实,用的生硬。已经解决了
回复 支持 反对

使用道具 举报

发表于 2012-8-13 20:07:54 | 显示全部楼层
我猜是放在程序的LOOP中了。楼主怎么解决的?我看了程序,不过也不太懂啊。楼主怎么解决的?呵。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-29 10:23 , Processed in 0.044386 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表