历史上的今天
返回首页

历史上的今天

今天是:2024年10月24日(星期四)

正在发生

2019年10月24日 | ATMEGA168+L298控制电机正反转的代码与Proteus仿真

2019-10-24 来源:51hei

这是之前课程设计做的遥控小车,简单的控制电机转速使小车前进和后退,左转右转也是参考了网上别人的,有需要的可以看看,哪里有不足也请指出

ATMEGA168单片机+L298仿真原理图如下

 

单片机源码:

int Foreward_key=2;//正转按钮
int Reverse_key=3;//反转按钮
int Stop_key=4;//停止按钮
int Trunleft_key=0;//左转按钮
int Trunright_key=1;//右转按钮
int Foreward_led=5;//正转指示灯
int Reverse_led=6;//反转指示灯
int Stop_led=7;//停止指示灯
int pinI1=8;//定义电机1正转接口
int pinI2=9;//定义电机1反转接口
int pinI3=13;//定义电机2正转接口
int pinI4=12;//定义电机2反转接口
int speedpin=14;//定义EA(PWM调速)接口
int speedpin1=14;//定义EB(PWM调速)接口
void setup()
{
  pinMode(Foreward_key,INPUT);
  pinMode(Reverse_key,INPUT);
  pinMode(Trunleft_key,INPUT);
  pinMode(Trunright_key,INPUT);
  pinMode(Stop_key,INPUT);
  pinMode(Foreward_led,OUTPUT);
  pinMode(Reverse_led,OUTPUT);
  pinMode(Stop_led,OUTPUT);
  pinMode(pinI1,OUTPUT);//定义该接口为输出接口
  pinMode(pinI2,OUTPUT);
  pinMode(pinI3,OUTPUT);//定义该接口为输出接口
  pinMode(pinI4,OUTPUT);
  pinMode(speedpin,OUTPUT);
  pinMode(speedpin1,OUTPUT);
  digitalWrite(Foreward_led,HIGH);
  digitalWrite(Reverse_led,HIGH);
  digitalWrite(Stop_led,HIGH);
}
void loop()

  if(digitalRead(Foreward_key)==HIGH)//正转
  {
    while(digitalRead(Foreward_key)==HIGH);
    digitalWrite(Foreward_led,LOW);
    digitalWrite(Reverse_led,HIGH);
    digitalWrite(Stop_led,HIGH);
    digitalWrite(pinI1,LOW);//使直流电机顺时针转
    digitalWrite(pinI2,HIGH);
    analogWrite(speedpin,100);
    digitalWrite(pinI3,LOW);//使直流电机顺时针转
    digitalWrite(pinI4,HIGH);
    analogWrite(speedpin1,100);
  }
  if(digitalRead(Reverse_key)==HIGH)//反转
  {
    while(digitalRead(Reverse_key)==HIGH);
    digitalWrite(Foreward_led,HIGH);
    digitalWrite(Reverse_led,LOW);
    digitalWrite(Stop_led,HIGH);
    digitalWrite(pinI1,HIGH);//使直流电机逆时针转
    digitalWrite(pinI2,LOW);
    analogWrite(speedpin,100);
    digitalWrite(pinI3,HIGH);//使直流电机逆时针转
    digitalWrite(pinI4,LOW);
    analogWrite(speedpin1,100);

  }
  if(digitalRead(Stop_key)==HIGH)//停止
  {
    while(digitalRead(Stop_key)==HIGH);
    digitalWrite(Foreward_led,HIGH);
    digitalWrite(Reverse_led,HIGH);
    digitalWrite(Stop_led,LOW);
    digitalWrite(pinI1,LOW);//使直流电机逆时针转
    digitalWrite(pinI2,LOW);
    analogWrite(speedpin,100);
    digitalWrite(pinI3,LOW);//使直流电机逆时针转
    digitalWrite(pinI4,LOW);
    analogWrite(speedpin1,100);
  }
  if(digitalRead(Trunleft_key)==HIGH)//左转
  {
    while(digitalRead(Trunleft_key)==HIGH);
    digitalWrite(Foreward_led,LOW);
    digitalWrite(Reverse_led,HIGH);
    digitalWrite(Stop_led,HIGH);
    digitalWrite(pinI1,LOW);//使直流电机顺时针转
    digitalWrite(pinI2,HIGH);
    analogWrite(speedpin,100);
    delay(120);
    digitalWrite(pinI3,LOW);//使直流电机顺时针转
    digitalWrite(pinI4,HIGH);
    analogWrite(speedpin1,100);

  }
    if(digitalRead(Trunright_key)==HIGH)//右转
  {
    while(digitalRead(Trunright_key)==HIGH);
    digitalWrite(Foreward_led,LOW);
    digitalWrite(Reverse_led,HIGH);
    digitalWrite(Stop_led,HIGH);
    digitalWrite(pinI3,LOW);//使直流电机顺时针转
    digitalWrite(pinI4,HIGH);
    analogWrite(speedpin1,100);
    delay(120);
    digitalWrite(pinI1,LOW);//使直流电机顺时针转
    digitalWrite(pinI2,HIGH);
    analogWrite(speedpin,100);
  }

}

推荐阅读

史海拾趣

Belden Wire & Cable公司的发展小趣事

在20世纪中期,随着电子技术的快速发展,电线电缆行业也面临着巨大的变革。Belden公司紧跟时代步伐,积极投入研发,推出了一系列具有创新性和前瞻性的产品。这些产品不仅满足了市场对高性能电线电缆的需求,还为公司赢得了众多行业奖项和荣誉。同时,Belden还建立了严格的质量控制体系,确保每一根电线电缆都符合最高的质量标准。

對餘科技(DIOFIT)公司的发展小趣事

DIOFIT公司自创立之初,便面临着激烈的市场竞争和技术挑战。创始人团队凭借对电子技术的深入理解和热情,决心打造一家专注于高端电子产品研发和生产的企业。在资金紧张、人才匮乏的情况下,他们坚持自主研发,不断优化产品设计,最终成功推出了一款具有创新性的智能家居控制系统,赢得了市场的认可,为公司的发展奠定了坚实的基础。

ConnectBlue公司的发展小趣事

在产品创新的基础上,ConnectBlue公司开始积极拓展市场。公司不仅在国内市场取得了良好的销售业绩,还积极开拓国际市场,与多家海外企业建立了合作关系。同时,公司还注重与产业链上下游企业的合作,与多家供应商和集成商建立了长期稳定的合作关系,共同推动无线通信技术的发展和应用。

Advanced Thermal Solutions公司的发展小趣事

为了进一步扩大市场份额,ATS开始实施全球化战略。公司先后在北美、欧洲和亚洲等地设立了分公司或办事处,以便更好地服务全球客户。同时,ATS还积极参与国际展览和交流活动,与全球各地的合作伙伴建立紧密的合作关系。这些举措使ATS的产品和服务得以覆盖更广泛的地域,公司的知名度和影响力也不断提升。

三环(CCTC)公司的发展小趣事

随着科技的不断进步和市场环境的变化,三环(CCTC)公司认识到科技创新是企业持续发展的关键。因此,公司加大了研发投入力度,引进和培养了一批高素质的研发人才,建立了以博士、硕士为主组成的技术研发团队。同时,公司积极承担并完成多个国家、省级重点科研项目,不断开展新材料、新产品、新技术的研究与创新。这些努力使公司在多个领域取得了突破性的成果,实现了转型升级。

DB Lectro Inc公司的发展小趣事

作为一家有社会责任感的企业,DB Lectro Inc始终关注绿色制造和可持续发展。公司在生产过程中采用了环保材料和节能技术,降低了对环境的影响。同时,公司还积极参与公益活动和慈善事业,为社会做出了积极贡献。这些举措不仅提升了公司的品牌形象和社会声誉,还为公司赢得了更多客户和合作伙伴的信任和支持。

问答坊 | AI 解惑

USB驱动分析 绝对经典的一本书

usb源码详析,linux-usb-hub,linux-usb-core, 嬉笑怒骂、娓娓道来。可惜原作者没有署名,在此向原作者致以崇高的敬意!…

查看全部问答>

青越锋--PCB设计软件菜单注释

File--> New  (Ctrl+N):新建原理图文件           Open  (Ctrl+O):打开已有一个原理图文件           Close (Ctrl+F4):关闭已打开的某一个原理图   & ...…

查看全部问答>

HD44780

HD44780HD44780HD44780…

查看全部问答>

液位传感器

本帖最后由 paulhyde 于 2014-9-15 09:22 编辑 液位传感器.doc  …

查看全部问答>

晶闸管调压不稳的问题

用热电偶测温,经单片机pid调节,触发固态继电器实现线性升温 但当电网电压变化时,升温曲线不稳定,很不线性 原因到底出在哪里呢,高次谐波?继电器?pid参数?还是其它因素,希望大家各抒己见,十分希望能得到各位的帮助,谢谢!…

查看全部问答>

水尺计重软件,无线打印

我想在pda上实现水尺计重软件,也想用无线打印,不知道怎么实现pda的无线打印啊…

查看全部问答>

帮忙给我指点一下啊...急啊

我发过两篇了..但是一直都没人解答 我自己这样写了一段  你们给看看对吗 DSP有4个字节一个一个的往SPI上发送.然后与SPI上已计算出的一个字节进行比较 unsigned Rev_data(unsigned flag_msb)//这是一个接收返回函数,有关硬件的 { } ...…

查看全部问答>

如果成形滤波采用平方根升余弦的话,接受端的匹配滤波器 怎么实现?

如题,用什么函数可以实现呢  各位大侠  (matlab)…

查看全部问答>

谁用USB单片机开发过加密狗

有成熟技术者,可与我联系,本人还可以资助一点开发费,嘻!mail@net9999.com …

查看全部问答>

TI的图形库

这里借鉴了“https://home.eeworld.com.cn/space.php?uid=139305&op=photo”同学的帖子,也简单的实现了TI的图形库功能,拿来炫炫。因为我选用的屏是320*480的,所以画面显得更好看些~     现在还没有做控件方面的东西,有兴趣的 ...…

查看全部问答>