单片机:直流电机(内含ULN2003芯片,硬件原理及解析,软件编程及注释)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 单片机:直流电机(内含ULN2003芯片,硬件原理及解析,软件编程及注释)

62d46968094046bcac75fdd958033ddb.png

ada7c622242f4597bea81f1d060d6778.png


注:

1-7引脚分别对应的16-10引脚依次为7个输入输出,中间依次用非门连接。

如1号引脚输入端输入为0,为假,16脚输出为1,为真,若VCC连接24V,则输出为24V

8脚为GND

9脚为VCC

以下此种方式连接直流电机是错误的!


255a5c3affeb49bfa53e6798e5124265.png

因为输出无法直接输出高电平,输出的均为低电平,只有在1和16脚对应连接时才为一端为高电平,一端为低电平(外部连接上拉电阻可以实现某一管脚为高电平)

连接直流电机正确方法


07f0bfa75d4e45cb99fab122108f742b.png


VCC端连接直流电机一端,,,另一端连接10-16脚任意一个,此时给1-7引脚一个1(高电平),使之对应的10-16引脚为低电平,电机两端有电势差,电机转动,但是只能沿一个方向转到,无法改变方向,因为正负极确定。(如想改变方向,需要在某一引脚添加上拉电阻,形成高电平,如15脚,再将电机与15-16引脚连接)


e1e181809d2b4578a6d15e1786be6778.png


A2-A4版芯片使用上半部分芯片(用于集成电路,各管脚功能固定)


P10-P13为输入管脚,P25固定连接蜂鸣器的输入端,16-12引脚连接输出端,通过J24排针连接电机,此时J47的1号引脚固定连接电机的VCC引脚,2-5号引脚任意一个连接电机的引脚


A5-A7版芯片使用下半部分芯片(各管脚功能不固定,可通过排针灵活更改控制)


1-4号引脚通过J46连接输入端,可自由搭配。16-13通过J47连接输出端,连接输出端


e718de3b8efc4455b4555cec7379faef.png


//功能:使直流电机转动5s,后停止
//将电机两端连接在P1^0(或P1^1或P1^2或P1^3)和VCC端
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit  DC_Motor=P1^0;
#define DC_MOTOR_RUN_TIME 5000//定义直流电机运行时间为5000ms
void delay_time(u16 time_delay)//延时函数
{
    u16 i,j;
    for(i=time_delay;i>0;i++)
        for(j=110;j>0;j++)
    ;
}
void main()
{
    DC_Motor=1;//开电机
    delay_time(DC_MOTOR_RUN_TIME);
    DC_Motor=0;//关电机
    while(1)
    {
        ;
    }
}

62c60db9803e4deebd5328fa5fca7b21.png


相关文章
|
12天前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
Java 并发编程——volatile 关键字解析
|
1月前
|
缓存 Java 调度
多线程编程核心:上下文切换深度解析
在现代计算机系统中,多线程编程已成为提高程序性能和响应速度的关键技术。然而,多线程编程中一个不可避免的概念就是上下文切换(Context Switching)。本文将深入探讨上下文切换的概念、原因、影响以及优化策略,帮助你在工作和学习中深入理解这一技术干货。
47 10
|
1月前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
47 8
|
1月前
|
算法 调度 开发者
多线程编程核心:上下文切换深度解析
在多线程编程中,上下文切换是一个至关重要的概念,它直接影响到程序的性能和响应速度。本文将深入探讨上下文切换的含义、原因、影响以及如何优化,帮助你在工作和学习中更好地理解和应用多线程技术。
42 4
|
2月前
|
存储 缓存 开发者
Python编程中的装饰器深度解析
本文将深入探讨Python语言的装饰器概念,通过实际代码示例展示如何创建和应用装饰器,并分析其背后的原理和作用。我们将从基础定义出发,逐步引导读者理解装饰器的高级用法,包括带参数的装饰器、多层装饰器以及装饰器与类方法的结合使用。文章旨在帮助初学者掌握这一强大工具,同时为有经验的开发者提供更深层次的理解和应用。
41 7
|
2月前
|
存储 安全 Java
Java多线程编程中的并发容器:深入解析与实战应用####
在本文中,我们将探讨Java多线程编程中的一个核心话题——并发容器。不同于传统单一线程环境下的数据结构,并发容器专为多线程场景设计,确保数据访问的线程安全性和高效性。我们将从基础概念出发,逐步深入到`java.util.concurrent`包下的核心并发容器实现,如`ConcurrentHashMap`、`CopyOnWriteArrayList`以及`BlockingQueue`等,通过实例代码演示其使用方法,并分析它们背后的设计原理与适用场景。无论你是Java并发编程的初学者还是希望深化理解的开发者,本文都将为你提供有价值的见解与实践指导。 --- ####
|
2月前
|
安全 程序员 API
|
2月前
|
存储 设计模式 分布式计算
Java中的多线程编程:并发与并行的深度解析####
在当今软件开发领域,多线程编程已成为提升应用性能、响应速度及资源利用率的关键手段之一。本文将深入探讨Java平台上的多线程机制,从基础概念到高级应用,全面解析并发与并行编程的核心理念、实现方式及其在实际项目中的应用策略。不同于常规摘要的简洁概述,本文旨在通过详尽的技术剖析,为读者构建一个系统化的多线程知识框架,辅以生动实例,让抽象概念具体化,复杂问题简单化。 ####
|
2月前
|
设计模式 安全 Java
Java编程中的单例模式深入解析
【10月更文挑战第31天】在编程世界中,设计模式就像是建筑中的蓝图,它们定义了解决常见问题的最佳实践。本文将通过浅显易懂的语言带你深入了解Java中广泛应用的单例模式,并展示如何实现它。
|
2月前
|
设计模式 SQL 安全
Java编程中的单例模式深入解析
【10月更文挑战第24天】在软件工程中,单例模式是设计模式的一种,它确保一个类只有一个实例,并提供一个全局访问点。本文将探讨如何在Java中使用单例模式,并分析其优缺点以及适用场景。
18 0

推荐镜像

更多