【单片机 控制小车】

文章目录


前言

提示:这里可以添加本文要记录的大概内容:

项目需要:为了启发大家兴趣,开启自己的电子创意人生,特意加了小车篇,希望大家都能做一辆属于自己的小车,追逐自己的梦想。


提示:以下是本篇文章正文内容,下面案例可供参考

一、控制小车的思维?

1.让小车动起来?就是让直流电机转起来,电机连接红线 和黑线

2.红线 5v 和黑线0v 正转 红线 0v 和黑线5v

3.电机1 红线 P10 黑线 P11

4.如何让电机正转 P10=1 P11 =0

5.如何让电机反转 P10=0 P11 =1

6.电机2 红线 P12 黑线 P13

7.如何让电机正转 P12=1 P13 =0

8.如何让电机反转 P12=0 P13 =1

如何让电机停止?红线 5v 和黑线5v 红线 0v 和黑线0v P10=0 P11 =0 P12=0 P13 =0

小车如何实现左转? P10=1 P11 =0 P12=0 P13 =0

小车如何实现右转? P10=0 P11 =0 P12=1 P13 =0

如何用按键去控制它的运动?

我想要 前进、后退、停止、左转、右转

If(keynum1) 前进
If(keynum2) 后退

P33

If(key0){
Delay(10)
If(key0){

Keynum++;

If(Keynum==6) Keynum=0;

}

}

二、参考程序

1.引入库

代码如下(示例):

c 复制代码
#include <reg52.h>

sbit P00=P0^0;//电机1
sbit P01=P0^1;//电机1
sbit P02=P0^2;//电机2
sbit P03=P0^3;//电机2

sbit key=P3^3;

void qianjin();

void houtui();

void zuozhuan();

void youzhuan();

void stop();

void delay(unsigned int ms);

unsigned char keynum=0;

/////////////////////////////////////////////////////////////////////
void main()
{

    
    key=1;
    while(1)
    {
        if(key==0)
        {
            
            delay(1000);
            if(key==0)
            {  
                    
               keynum++;
                    if(keynum==6) keynum=0;
            }
            while(key==0);
        
        
        }
        
        if(keynum==1) {qianjin();}
         if(keynum==2) {houtui();}
          if(keynum==3) {zuozhuan();}
           if(keynum==4) {youzhuan();}
            if(keynum==5) {stop();}
          
              
           
    }
}
// 功能是延时
//无返回值
//ms的范围  0-65535  测试过1代表2us
void delay(unsigned int ms)
{
    while(ms--);
}

void qianjin()
{

    P00=1;  P01 =0;
    P02=1;  P03 =0;
}
void houtui()
{

    P00=0;  P01 =1;
    P02=0;  P03 =1;
}

void zuozhuan()
{
    P00=0;  P01 =1;
    P02=0;  P03 =0;

}

void youzhuan()
{
    P00=0;  P01 =0;
    P02=0;  P03 =1;

}

void stop()
{

    P00=0;  P01 =0;
    P02=0;  P03 =0;
}
复制代码
# 三、思考和改进
如何实现小车调速?

# 四、手把手教程



[video(video-dPsHDV9X-1775220779434)(type-csdn)(url-https://live.csdn.net/v/embed/520217)(image-https://v-blog.csdnimg.cn/asset/b7587ddb9dcdd198047cd33df701bed0/cover/Cover0.jpg)(title-20260403_193227小车)]

[video(video-UZIVDfOv-1775220785655)(type-csdn)(url-https://live.csdn.net/v/embed/520219)(image-https://v-blog.csdnimg.cn/asset/e1ea84d98ae595d7a38acf3ac9ded7f1/cover/Cover0.jpg)(title-20260403_201512小车2)]



---

# 总结
学习使人快乐!
音乐使人愉悦!
日积月累使人充实和自信!
相关推荐
崇山峻岭之间4 小时前
HC32F460PETB的PB2的Vout123
单片机
恶魔泡泡糖4 小时前
stm32F103C8T6标准库串口接收之中断方式2
stm32·单片机·嵌入式硬件
充哥单片机设计4 小时前
【STM32开源项目】智能小区充电桩
stm32·单片机·嵌入式硬件·毕业设计·小区充电桩·智能小区充电桩
嵌入式-老费5 小时前
esp32开发与应用(如何解决SoC冷启动的问题)
单片机·嵌入式硬件
充哥单片机设计6 小时前
【STM32开源项目】智能语音台灯
stm32·单片机·嵌入式硬件·毕业设计·单片机设计·智能语音台灯
EatFan7 小时前
全栈自造 Status Deck(四):硬件终于到了,从点亮屏幕到跑通第一个 Demo
单片机·物联网·esp32
sunoo-2297 小时前
【嵌入式裸机开发Day04】i.MX6ULL 蜂鸣器驱动详解:从引脚地址查找到代码实现全流程
arm开发·单片机·嵌入式硬件·学习·串口·裸机
Brilliantwxx8 小时前
【STM32】 SPI阻塞式通信与HAL源码 (源码分析)
stm32·单片机·嵌入式硬件
Doraemomo8 小时前
IMX6ULL裸机开发——PWM
arm开发·嵌入式硬件·imx6ull
老当益壮梁奶奶9 小时前
ARM汇编学习笔记(五):从按键轮询到 GIC 中断控制器(ARM Cortex-A7 )
arm开发·笔记·单片机·嵌入式硬件