目录
sevseg.begin(hardwareConfig,numDigits,digiPins,segmentPins)
sevseg.setNumber(numToShow,decPlaces)
Arduino 基础入门
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE)。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。这里,我运用Arduino 来控制灯光。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。
Arduino编程语言的常用函数介绍
函数介绍
digitalRead()
-
描述:读取指定数字引脚的值
-
函数原型:digitalRead(pin)
-
参数:要读取的数字引脚编号
-
返回值:HIGH(1)或LOW(0)
pinMode()
-
描述:配置引脚的输入输出模式
-
函数原型:pinMode(pin,mode)
-
参数:配置的引脚编号;配置模式
digitalWrite()
-
描述:让配置输出高电平或者低电平。
-
函数原型:digitalWrite(pin,value)
-
参数:引脚编号,输出电平
analogWrite()
-
描述:实现PWM(Uno 中提供引脚为3,5,6,9,10,11)输出功能
-
函数原型:analogWrite(pin,value)
-
参数:输出PWM波的引脚;指定脉冲宽度,范围0~255.
库函数
sevseg.begin(hardwareConfig,numDigits,digiPins,segmentPins)
-
hardwareConfig:使用的是阳极数码管还是阴极。
-
COMMON_CATHODE:共阴极。
-
COMMON_ANODE:共阳极。
-
numDigits:数码管数位。
-
digitPins:数组形式,储存数码管公共极连接的引脚号。
-
segmenPins:数组形式,储存数码管a到dp所对应连接引脚号
sevseg.setNumber(numToShow,decPlaces)
-
numToShow:要显示的数据(可以为整数,浮点数)
-
decPlaces:小数点显示的位置。
sevseg.refreshDisplay()
-
不断重复执行(其他延时会对其产生影响)
控制小灯
让六个小灯同时亮
int delayTime=200;
int ledPin;
void setup() {
// put your setup code here, to run once:
for (ledPin = 8; ledPin <=13; ledPin++) //依次设置1~6个数字引脚为输出模式
{
pinMode(ledPin, OUTPUT); //设置第ledPin个引脚为输出模式
}
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(8, HIGH); //点亮ledPin引脚相连的led灯
delay(delayTime);
digitalWrite(8,LOW); //点亮ledPin引脚相连的led灯
delay(delayTime);
}
用开关控制六个灯制作流水灯
/*
* Digital_Button
* 通过按键控制LED灯亮灭
*/
int buttonPin = 2; // 按键的管脚定义
int ledPin; // LED灯管脚定义
int delayTime =100;
void setup() {
for (ledPin = 9; ledPin <=13; ledPin++) //依次设置1~6个数字引脚为输出模式
{
pinMode(ledPin, OUTPUT); //设置第ledPin个引脚为输出模式
}
pinMode(buttonPin, INPUT_PULLUP); //设置按键管脚上拉输入模式
}
void loop() {
if (digitalRead(buttonPin) == LOW) { // 若按键被按下
delay(20); //等待跳过按键抖动的不稳定过程
if (digitalRead(buttonPin) == LOW) // 若按键被按下
{
for (ledPin = 9; ledPin <=13; ledPin++) //每隔delayTime依次点亮1~6引脚相连的led灯
{
digitalWrite(ledPin, HIGH); //点亮ledPin引脚相连的led灯
delay(delayTime); // 点亮LED灯
}
}
else {
for (ledPin = 13; ledPin > 8; ledPin--) //每隔delayTime依次熄灭6~1引脚相连的led灯
{
digitalWrite(ledPin, LOW); //熄灭ledPin引脚相连的led灯
delay(delayTime);//延时delayTime
}
}
}
}
用开关控制六个灯,制作流水呼吸灯
/*
* Digital_Button
* 通过按键控制LED灯亮灭
*/
int buttonPin = 2; // 按键的管脚定义
int ledPin; // LED灯管脚定义
int delayTime =100;
void setup() {
for (ledPin = 9; ledPin <=13; ledPin++) //依次设置1~6个数字引脚为输出模式
{
pinMode(ledPin, OUTPUT); //设置第ledPin个引脚为输出模式
}
pinMode(buttonPin, INPUT_PULLUP); //设置按键管脚上拉输入模式
}
void loop() {
int t=0;
if (digitalRead(buttonPin) == LOW)
{
if(t==1)
{
t=0;
}else {
t=1;
}
}
if(t==1){ // 若按键被按下
delay(20); //等待跳过按键抖动的不稳定过程
for (ledPin = 9; ledPin <=13; ledPin++) //每隔delayTime依次点亮1~6引脚相连的led灯
{
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// 输出PWM
analogWrite(ledPin, fadeValue);
// 等待30ms,以便观察到渐变效果
delay(30);
}
}
}
else {
for (ledPin = 13; ledPin > 8; ledPin--) //每隔delayTime依次熄灭6~1引脚相连的led灯
{
digitalWrite(ledPin,LOW);
delay(100);
}
}
}
Quark 迷你卡片制作
一 串口驱动
在官网下载串口的驱动。
法一:下载CH340
-
CH340:CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。在串口方式下,CH340 提供常用的MODEM联络信号,用于为计算机扩展异步串口。
-
CH340不支持并口,打印口,IIC,专门为串口应用设计。
-
CH341 是一个USB 总线的转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线
和4 线等同步串行接口。
下载完CH340后显示预安装成功,但是卸载显示无驱动程序卸载,而且无法识别串口(下载失败)
法二:CP210x USB to UART Bridge VCP Drivers - Silicon Labs
-
进入这个网址进行下载驱动。
-
设备成功识别,
<!--其实之前没有识别的原因应该是电脑默认浏览C盘,但是我怕C盘太满下载到F盘了,后面是更新驱动程序的浏览里面改了浏览的文件夹才显示设备正常运转-->
二给SD卡烧录镜像
下载最新的系统镜像
与树莓派一样,Quark-N可以通过SD 卡上面烧录的镜像启动系统。
下载开源烧录软件 balenaEtcher
根据官网的步骤进行烧录
二 连接串口
远程登录与文件互传
下载puTTY串口软件
通过串口进入远程开发板进行相应开发
连接WIFI
在puTTY中 选择Serial 填写host name 和默认Port:112500
进行nmcli wifi on
dev wifi
填写WiFi账号密码
然后选择SSH 填写路由器IP
至此,完成了联网和登录
登录远程桌面
用快捷键 WIN+R 打开输入mstsc 登录远程桌面
输入IP,用户名(pi 或者 root)还有密码即可
文件传输
下载 FileZilla
可以更加方便的来传输文件
LINUX
内核源码网址:http://www.kernel.org,所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中。
学习视频资料:嵌入式开发直播课 - STM32 USART串口的应用 - 创客学院直播室
在远程桌面,在终端进行操作,制作LED的数字时钟
操作完成后,我的上面显示启动失败,并且报错了很多次,下一步,我准备将SD卡格式化,重新进行烧录。很大部分原因是我对终端操作不熟练。
终端学习
简单的命令操作
中断命令执行: Ctrl+z
切换目录:cd
1. cd 显示当前所在的目录
2.cd.. 回到当前目录的上一个目录
3.cd/d d: 进入上次d盘所在的目录
4.cd/d d:\mp4 更改当前的目录为d:\mp4
显示目录内容:dir
dir 显示当前目录中的子文件夹和文件
dir/b 显示当前目录的子文件夹 和文件的文件名
dir/ad 显示当前目录子文件
dir/a-d 显示当前目录的文件
dir c:\test 显示c:\test 目录的内容
创建目录 :md
md work hl 在当前目录中创建名为work和hl 的文件夹
md d:\test 创建d:\test目录
type c:\11.txt 显示c盘中11.txt的文本内容