找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1050|回复: 6
收起左侧

C51智能循迹避障小车组装好以后,怎么让它寻黑线移动?

[复制链接]
ID:984793 发表于 2021-11-25 20:03 | 显示全部楼层 |阅读模式
小车组装好以后,怎么让它寻黑线移动
回复

使用道具 举报

ID:908826 发表于 2021-11-25 20:49 | 显示全部楼层
店家没给你程序吗,有专门的传感器,返回信号,控制电机。
回复

使用道具 举报

ID:984832 发表于 2021-11-25 21:32 | 显示全部楼层
加传感器什么了吗
回复

使用道具 举报

ID:783421 发表于 2021-11-26 10:17 | 显示全部楼层
光电传感器、灰度传感器等,写好的程序烧录进MCU里面
回复

使用道具 举报

ID:960857 发表于 2021-11-26 19:11 | 显示全部楼层
用trc5000寻迹模块就行了
回复

使用道具 举报

ID:898921 发表于 2021-11-26 19:29 | 显示全部楼层
你要把电机的两端接到你的驱动模块的接口上,然后根据你的驱动模块使单片机相应的io口赋高低电平,然后使出PWM波,小车就可以动了
回复

使用道具 举报

ID:985592 发表于 2021-11-28 15:13 | 显示全部楼层
#include <reg52.h> sbit IN1 = P1^0;  sbit IN2 = P1^1; sbit ENA = P1^2; sbit IN3 = P1^3; sbit IN4 = P1^4; sbit ENB = P1^5; sbit left1 = P0^0; sbit left2 = P0^1; sbit right1 = P0^2; sbit right2 = P0^3; unsigned char zkb1 = 0; unsigned char zkb2 = 0; unsigned char t = 0; void init() {         EA = 1;         TMOD |= 0x01;         TH0 =(65536 - 100) / 256;         TL0 = (65536 - 100)% 256;                 ET0 = 1;         TR0 = 1; }  void timer0() interrupt 1 {           TH0 = (65536 - 100) / 256;         TL0 = (65536 - 100) % 256;         if(t < zkb1)         { //                 if(t % 2 == 0) //                 { //                     ENA = 1; //             } //                 else  //                 { //                         ENA = 0; //                 }                 ENA = 1;         }         else          {                 ENA = 0;         }         if(t < zkb2)         { //                 if(t%2 == 0) //                 { //                     ENB = 1; //                 } //                 else  //                 { //                         ENB = 0; //                 }                 ENB =1;         }         else          {                 ENB = 0;         }         ++t;         if(t >= 50)         {                 t = 0;         }                     }   void turn_left1() {         zkb1 = 13;         zkb2 = 0;   }   void turn_left2() {           zkb1 = 13;         zkb2 = 0; }   void turn_right1() {         zkb1 = 0;         zkb2 = 13; }   void turn_right2() {         zkb1 = 0;         zkb2 = 13; }   void qianjin() {         zkb1 = 8;         zkb2 = 8; } void xunji() {         unsigned char flag;         if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))         {                 flag = 0;         }         if((right2 == 0)&&(right1 ==1)&&(left1 == 0)&&(left2 == 0))         {                 flag = 1;         }         if((right2 == 0)&&(right1 == 0)&&(left1 == 1)&&(left2 == 0))         {                 flag = 2;         }         if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 1))         {                 flag = 3;         }         if((right2 == 1)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))         {                 flag = 4;         }         switch(flag)         {                 case 0:qianjin();break;                                  case 1:turn_right1();break;                                  case 2:turn_left1();break;                                  case 3:turn_left2();break;                                  case 4:turn_right2();break;                                  default:qianjin();break;         } }   void main() {         init(); //         zkb1 = 40; //         zkb2 = 30;         IN1 = 0;         IN2 = 1;     IN3 = 0;     IN4 = 1;         while(1)         {                                                  xunji();                          } }
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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