在原理图元件编辑界面,双击空白处或者选择Options—Part properties进入下图对话框,将选中功能的值设置为False/True,OK即可.
[ESP32]PWM的输出
一、PWM信号简介
- PWM:脉冲宽度调制,简称脉宽调制
- 频率(f):一秒钟PWM有多少个周期(单位Hz)
- 周期(T):一个周期的时间
- 占空比(duty):在一个脉冲周期内,高电平的时间与整个周期时间的比例
- 脉宽时间:一个周期内高电平时间
- 占空比越大,输出的有效电压越高。
二、ESP32中的LEDC(PWM控制器)
- LEDC:指LED PWM控制器,即PWM信号产生器。
- LED_PWM有16路通道(0~15)
- 8路高速通道(0~7),由80MHz时钟驱动
- 8路低速通道(8~15),由8MHz时钟驱动
三、产生PWM信号的流程
使用Arduino 通过PWM调光LED必须遵循的步骤:
首先,选择一个PWM通道,从0到15共有16个通道。
然后,设置PWM信号频率。对于LED来说,使用5000 Hz的频率是合适的。
设置信号的占空比分辨率,分辨率从1到16位。此处将使用8位分辨率,可以使用0到255的值来控制LED亮度(2的8次方)。
1
ledcSetup(0, 30000, 8); // pwm通道, 频率, 精度
指定信号将出现在哪个或哪些GPIO上。为此,将使用以下函数:
1
ledcAttachPin(GPIO, channel) //输出信号的GPIO,产生信号的通道。
- 使用PWM控制LED亮度,可以使用以下函数:
1
ledcWrite(channel, dutycycle); // PWM信号的通道和占空比
3.1 LEDC频率与分辨率的关系


3.2 LEDC频率与最大分辨率表

3.3 使用LEDC输出PWM的示例程序
1 | #include <Arduino.h> |
虽然之前在STM32的博文里面的其中一篇讲PWM的博文已经讲过了,但在这里再讲一遍,我们手里的舵机模块基本都是靠时基脉冲中的占空比调节来控制的,那再具体再说的通俗一点呢?就是比如我的时基为20ms , 要求舵机转到0度的所要求的的占空比为0.5ms,那么我们就需要以20ms为一个周期,每个周期内的高电平时间为0.5ms(这就是占空比),然后其余时间为低电平即可,而具体到我手上的这个360度舵机呢,说实话不建议大家使用360度舵机,因为360度舵机失去了舵机最大的优势就是角度调节,我可以控制比如180度的舵机能够精确转动到哪一个位置,但是360度舵机不行,我们只能控制他正反转以及正反转速度,但是控制方法是一模一样的,下边是示例代码
A40i替换开机动画
修改logo图片可参考手册,动画可以提供一个参考,不同的地方自行修改
root@08df03d23758:~/workspace/allwinner/android/device/softwinner/a40-p1/media#
将动画放入:device/vendor-name/device-name/media/bootanimation.zip
Android应用开机自启动示例程序
当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为 android.intent.action.BOOT_COMPLETED。我们要做的是做好接收这个消息的准备,而实现的手段就是实现一个BroadcastReceiver。
Android系统源码定制修改
修改系统默认时间显示为24小时制
目前只针对安卓7.1.1进行了修改测试
源码路径:
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
添加:
1 | <string name="def_time_12_24" translatable="false">24</string> |
源码路径:
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
添加:
1 | private void loadSystemSettings(SQLiteDatabase db) { |
去除“从顶部向下滑动即可退出全屏模式”
framework/base/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16private final class H extends Handler {
private static final int SHOW = 1;
private static final int HIDE = 2;
@Override
public void handleMessage(Message msg) {
switch(msg.what) {
case SHOW:
+ //handleShow();
break;
case HIDE:
+ //handleHide();
break;
}
}
}
Allegro对outline进行移动与编辑
物联网应用-MQTT遗嘱应用
在开始本节课以前请确保您的电脑已经成功安装了MQTTfx软件。另外我们还将使用PubSubClient库。您可以通过以下链接获取此库。
官网地址:https://pubsubclient.knolleary.net/
GitHub:https://github.com/knolleary/pubsubclient/
百度网盘下载: https://pan.baidu.com/s/12MHGbdfiOdwOGip5RMSSEQ 提取码: sizy
当您将PubSubClient库安装后,我们就可以使用该库进行开发了。
VMware因存储不足导致不开机问题的修复方法无法启动
VMware修复因存储不足导致不开机问题
1、在VMware虚拟机中按Ctrl+D打开“虚拟机设置”,在“硬件”设备中选择“CD/DVD (IDE)”,在“连接”中选择“使用ISO镜像文件”,选择Ubuntu的iso安装文件,“确定”。
2、重启虚拟机,在显示“VMware”文字是按下Esc键,进入“Boot Menu”,选择“Enter Setup”-”Boot“,将”CD-ROM Drive“设为第一启动项,按F10,重启。
3、系统重启后通过iso文件启动,选择语言”English“,选择”Try Ubuntu without installing“,进入系统。
VMware因断电等原因强制关闭Ubuntu导致无法启动的修复方法
因为某种缘由,如逼迫闭机,vmware下的ubuntu涌现启动没有了的状态。
问题现象
1、Invalid argumentmount: mounting /sys on /root/sys failed:No such file or directorymount: mounting /dev on /root/dev failed: No such
2、sd 32:0:0:0 [sda] assuming drive cache: write through【卡住进不去系统】
等等,可以尝试修复文件系统。
3、系统启动进入GRUB,系统黑屏无法启动
修复过程
设置启动镜像文件
在VMware虚拟机中按 Ctrl+D 打开 “Virtual Machine Settings”,在“Hardware” “CD/DVD (IDE)”,在“连接”中选择“Use ISO image file”,选择Ubuntu的iso安装文件,点击“ok”
Ubuntu开启SSH服务并允许ROOT权限远程登录
服务器配完ubuntu系统以及LNMP环境以后,想用WINSCP远程登录,就需要开启SSH服务才能支持。
SSH服务分为客户端和服务器。顾名思义,我想用WINSCP远程登录Ubuntu服务器,所以需要安装SSH server。
下面介绍如何开启SSH服务。