单片机小车

article/2025/8/4 5:32:47

*## 单片机小车
本周作为单片机新手的我制作了我的第一个作品—单片机小车

一 元件:1.单片机最小系统板
2.杜邦线
3.USB转TTL CH340模块STC单片机下载线刷机板USB转串口
4.智能小车配件 红外寻迹
5.智能小车51单片机套件底盘组装寻迹避障开发板编程循迹机器人配件
6.L298N电机驱动板模块

二 制作
1.安装小车
小车安装还是很简单的在这里插入图片描述
2.安装电子元件
先固定电子元件会导致不好连接操作,所以我是先先连接好元件,在固定的。在这里插入图片描述
我是按照这个连接图连的。
练好后应该是这样的。
在这里插入图片描述
注意:①电机驱动模块上的GND和5V与单片机练好后,12v和5V需要再来一根导线连接一下。
②电机驱动模块与电机连接时候挺费劲的,需要先把接线柱的螺丝拧开,我宁的时候差点把小车底座捅穿。
③接电机时候一定要注意正负极,通电的正负接法会影响小车跑的方向,如果两个接错之后小车会倒跑,一个接错小车就会原地转了。
④可以考虑把避障装在小车靠下面,这样遇到低的障碍物也可以变向。

3.编代码


#include <REG52.H>
sbit ENA=P0^0;
sbit IN1=P0^1;
sbit IN2=P0^2;
sbit ENB=P2^0;
sbit IN3=P2^1;
sbit IN4=P2^2;
sbit A1=P1^0;
sbit B2=P1^1;
void delay(int z)
{
int x,y;
for(x=z;x>0;x–)
for(y=110;y>0;y–);
}
void go()
{
ENA=1;
IN1=1;
IN2=0;
ENB=1;
IN3=1;
IN4=0;
}
void back()
{
ENA=1;
IN1=0;
IN2=1;
ENB=1;
IN3=0;
IN4=1;
}
void right()
{
ENA=1;
IN1=0;
IN2=1;
ENB=1;
IN3=1;
IN4=0;
}
void left()
{
ENA=1;
IN1=0;
IN2=1;
ENB=1;
IN3=1;
IN4=0;
}
void main()
{
while(1)
{
go();
if(B20)
{
back();
delay(500);
left();
delay(700);
}
if(A1
0)
{
back();
delay(500);
right();
delay(700);
}
}
}

如果是按照上面连接图装的小车,可以直接用上面的代码。如果是自己装的,就需要记住连接口名字,编代码时候写。

4.烧录
烧录时候还是遇到困难的,之前一直是用自己的开发板烧录,和这个不太一样。开发板只要一根线就好,而这个需要电源线和USB转TTL CH340模块STC单片机下载线刷机板USB转串口。开始时候我们班每一个烧录成功的,每次都会报错,或者在检测中。所以我们只能拿开发板的芯片用。我在烧录失败几次后把单片机上的按钮按了几下。再次尝试时,显示检测中了,但我这时候发现单片机没开,在按下按钮时候突然提示烧录成功。挺开心的,作为我们班第一个造好的。
所以烧录时候得先用USB转TTL CH340模块STC单片机下载线刷机板USB转串口接电脑开始下载,然后打开单片机才能烧录成功。

注意:烧录时候需要注意单片机型号和串口号。单片机型号在单片机上有标注。串口号需要右击此电脑—管理—设备管理器—端口查看。烧录时候需要再软件中自己调。

最后展示一下在这里插入图片描述
可惜不能发视频。

总之这周还是收获挺多的,也挺开心。


http://chatgpt.dhexx.cn/article/xtr8082Z.shtml

相关文章

51单片机之智能小车(避障、跟随、循迹)

目录 基本概述 硬件组成 功能 关键字 模块介绍 电机模块L9110S 循迹模块&#xff08;TCRT5000传感器&#xff09; 红外避障模块 测速模块 小车 移动小车&#xff08;控制电机转动&#xff0c;使小车前进、后退、左转、右转 &#xff09; 遥控小车&#xff08; 使…

详细介绍如何从零开始制作51单片机控制的智能小车(一)———让小车动起来

从本文开始&#xff0c;在之后的一段时间里&#xff0c;我会通过本系列文章&#xff0c;详细介绍如何从零开始用51单片机去实现智能小车的控制&#xff0c;本文作为本系列的第一篇文章&#xff0c;主要介绍如何让小车动起来。 本系列文章链接&#xff1a; ------------------…

乐观锁-基于CAS原理

乐观锁理论基础 乐观锁的操作过程中其实没有没有任何锁的参与&#xff0c;乐观锁只是和悲观锁相对&#xff0c;严格的说乐观锁不能称之为锁。下面我们就通过乐观锁与悲观锁的对比来更好的理解乐观锁。 乐观锁与悲观锁的概念 乐观锁&#xff1a;总是假设最好的情况…

JAVA CAS原理深度分析

CAS CAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。 本文先从CAS的应用说起&#xff0c;再深入原理解析。 CAS应用 CAS有3个操作数&#xff0c;内存值V&#xff0c;旧的预期值A&#xff0c;要修…

CAS原理图

主要原理 1 用户第一次访问一个CAS 服务的客户web 应用时&#xff08;访问URL &#xff1a;http://192.168.1.90:8081/web1 &#xff09;&#xff0c;部署在客户web 应用的cas AuthenticationFilter &#xff0c;会截获此请求&#xff0c;生成service 参数 2 然后redirect 到C…

java---CAS原理分析详解

目录 一、什么是CAS 二、乐观锁与悲观锁 1.乐观锁出现原因 2.乐观锁 3.乐观锁的实现机制---CAS 三、JAVA对CAS的支持 首先演示实际的操作 上述过程的内部原理(java层面) 四、CAS缺陷 1.ABA问题 解决ABA问题 2.循环时间长开销大 3.只能保证一个变量的原子操作 4.解…

AQS和CAS原理

锁机制&#xff08;AQS和CAS&#xff09; 一、AQS 1、AQS原理 AQS&#xff1a;AbstractQuenedSynchronizer抽象的队列式同步器。是除了java自带的synchronized关键字之外的锁机制。     AQS的全称为&#xff08;AbstractQueuedSynchronizer&#xff09;&#xff0c;这个类…

CAS原理解析

什么是CAS cas全称为compareAndSwap&#xff0c;可以很清楚的翻译知道意思为“比较和交换”&#xff0c;字面意思其实就已经解释了CAS的实现原理 CAS简介 从jdk5开始&#xff0c;jdk提供了java.util.concurrent.*&#xff0c;此包下面的类在高并发场景下经常使用&#xff0c;包…

搞定CAS的原理,看这一篇就够了!

一、什么是CAS&#xff1f; CAS &#xff08;compareAndSwap&#xff09;&#xff0c;中文叫比较交换&#xff0c;是一种无锁原子算法&#xff0c;映射到操作系统就是一条CPU的原子指令&#xff0c;其作用是让CPU先进行比较两个值是否相等&#xff0c;然后原子地更新某个位置的…

深入理解vue.js双向绑定的实现原理

vue.js是MVVM&#xff08;模型到视图和视图到模型&#xff09;结构的&#xff0c;同类的还有AngularJs&#xff1b;至于MVC、MVP、MVVM的比较网上已经有很多了&#xff0c;这样不再重复。这篇文章将给大家深入的介绍vue.js双向绑定的实现原理&#xff0c;有需要的朋友们可以参考…

MVVM数据双向绑定

MVVM采用双向数据绑定&#xff0c;view中数据变化将自动反映到viewmodel上&#xff0c;反之&#xff0c;model中数据变化也将会自动展示在页面上。把Model和View关联起来的就是ViewModel。ViewModel负责把Model的数据同步到View显示出来&#xff0c;还负责把View的修改同步回Mo…

vue双向绑定的理解

什么是双向绑定 把Model绑定到View&#xff0c;当我们用JavaScript代码更新Model时&#xff0c;View就会自动更新。在单向绑定的基础上&#xff0c;用户更新了View&#xff0c;Model的数据也自动被更新了&#xff0c;这种情况就是双向绑定 如&#xff1a; 当用户填写表单时&a…

实现vue数据双向绑定

关注公众号&#xff0c;每天都能领外卖红包 关于vue数据双向绑定也是面试很喜欢问的题目了&#xff0c;这里讲下实现方式&#xff0c;效果图、源码、demo在文章末尾 首先看下vue的基本结构 <div id"app"> <div>{{a.b.c}}</div></div> n…

双向绑定原理

适合读者: 了解 MV* 架构模式 希望了解双向绑定原理 从MVC、MVVM说起 参考阮一峰老师的文章:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html 流程:View根据Model展示页面,当页面发生操作时(commander),View传递指令到Controller层,Controller层根据comman…

Angular 双向绑定

Angular10教程--2.3 双向绑定 双向绑定大致可以分成两种类型&#xff1a;一、普通组件的双向绑定二、表单中的双向绑定[(ngModel)]单独使用表单元素在标签中使用 总结&#xff1a; 前面我们了解了属性绑定、事件绑定以及输入和输出的使用&#xff0c;是时候了解双向绑定了。本节…

理解双向绑定

这里是修真院前端小课堂&#xff0c;每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能&#xff0c;本篇分享的是&#xff1a; 【 理解双向绑定】 大家好&#xff0c;我是IT修…

html双向绑定,双向绑定

单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新。 有单向绑定,就有双向绑定。如果用户更新了View,Model的数据也自动被更新了,这种情况就是双向绑定。 什么情况下用户可以更新View呢?填写表单就是一个最直接的例子。当用户…

数据双向绑定

#一、什么是双向绑定 我们先从单向绑定切入单向绑定非常简单&#xff0c;就是把Model绑定到View&#xff0c;当我们用JavaScript代码更新Model时&#xff0c;View就会自动更新双向绑定就很容易联想到了&#xff0c;在单向绑定的基础上&#xff0c;用户更新了View&#xff0c;M…

双向数据绑定是什么

面试官&#xff1a;双向数据绑定是什么 一、什么是双向绑定 我们先从单向绑定切入单向绑定非常简单&#xff0c;就是把Model绑定到View&#xff0c;当我们用JavaScript代码更新Model时&#xff0c;View就会自动更新双向绑定就很容易联想到了&#xff0c;在单向绑定的基础上&am…

第三届全国大学生算法设计与编程挑战赛题解【金奖全国第九】

❥这次秋季赛查重后有效提交队伍共1000余队&#xff0c;前5%金&#xff0c;10%银&#xff0c;20%铜&#xff0c;冠军1名&#xff0c;亚军2名&#xff0c;季军3名。每次比赛之余都不得不感慨oier的可怕实力和某些竞赛强省的高端水平。 ❥赛时一直稳定在前5%&#xff08;金奖行列…