分类:制作

来DIY一个空气质量指示器吧


“衰荷滚玉闪晶光,一夜西风一夜凉。 雁阵声声蚊欲静,枣红点点桂流香。——《白露》(左河水)”白露过后,天气日渐转凉,转眼便已入秋了。
然而现在的我们并不能像古人那样惬意的进入秋天了,随着天气的转凉,空气质量再次受到了各家各户的关注,近十几年来,不少国家发现酸雨,雨雪中酸度增高,使河湖、土壤酸化、鱼类减少甚至灭绝,森林发育受影响,这与大气污染是有密切关系的。
2012年,我国出台规定将用空气质量指数(AQI)替代原有的空气污染指数(API)。

空气质量按照空气质量指数大小分为六级,相对应空气质量的六个类别,指数越大、级别越高说明污染的情况越严重,对人体的健康危害也就越大,从一级优,二级良,三级轻度污染,四级中度污染,直至五级重度污染,六级严重污染。

面对如此严峻的环境,我们今天也要制作一个和空气质量相关的DIY作品,这次的制作是一个空气质量指示器,通过查询网络上的AQI指数,点亮不同颜色的LED。

Continue reading

使用STC15系列MCU控制舵机

舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转,对于一般的180°舵机,PWM占空比 (0.5~2.5ms 的正脉冲宽度)和舵机的转角(-90°~90°)成正比。

用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度。单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。

对于STC15系列的PCA控制,我们可以到STC的官网下载例程,通过PCA实现PWM。

Continue reading

制作:如何geek范儿的延长耳机使用时间

作为易耗品耳机使用寿命有限,经常因为小部分的损坏就导致整个耳机报废了。一般比较高级的耳机,可以用1到2年,比较有些耳机用的线材不好,用一段时间就会容易坏,特别是耳机和插孔连接处,经常由于使用不注意,暴力拔插,耳机线处于弯曲状态,导致内部受损。

所以我们需要使用一个保护措施来防止耳机线弯曲,折损。

Continue reading

安卓USB串口:单片机的新玩法

将智能手机与DIY电子设备连接起来一直是我们电子爱好者的热门话题,wifi,蓝牙,4G都是采用无线连接的方式,现在一般的安卓智能手机都支持OTG功能,即通过手机MicroUSB接口连接外部硬件设备,如U盘,键盘,鼠标,芝麻DIY近期推出一套DIY套件,可通过安卓智能手机发送串口数据。

Continue reading

制作:安卓手机遥控小车

市面上的智能小车已经很多了,循迹的,避障的,手机遥控的,种类繁多,我们芝麻DIY终于也推出一款小车,很遗憾,它只有一个功能,那就是手机wifi遥控,本文介绍该小车的组成部分,解释部分源码。

虽然我们的功能很简单,但这同时也是我们最大的优点,我们的电路结构非常简易,十分适合手工操作,硬件包括:STC15单片机一块,ESP8266串口转WIFI模块一个,L9110s两路电机驱动模块一个,还有电阻,排针插座,线缆等其他一些小部件。

Continue reading

简易的单片机时钟

今天我们分享一个8051单片机的小制作。
这次的制作之所以说他简单,是因为它的电路简单,程序简单,当然功能也很简单,只能显示时和分,没有按键,通过串口调时间。
下面,我们将单片机程序,原理图,和实物图发布上来,注意,本制作使用STC89C52单片机,不保证对其他型号51单片机的兼容:
单片机程序:

#include
#include
//unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//共阳数码管数字码
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共阴数码管数字码
int time=2115,qian,bai,shi,ge,miao,num,time_shi=22,time_fen=31;

void delay()
{int a=500;
while(a--);
}

void display() //数码管动态扫描
{
qian=time_shi/10; //数码管个位
bai=time_shi%10; //十位
shi=time_fen/10; //百位
ge=time_fen%10; //千位
P0=table[ge];
P2=0xf7;
delay();
P2=0xff;

P0=table[shi];
P2=0xfb;
delay();
P2=0xff;

P0=table[bai];
P2=0xfd;
delay();
P2=0xff;

P0=table[qian];
P2=0xfe;
delay();
P2=0xff;

}

void main()
{
TMOD = 0x21;
SCON = 0x50;
TH1 = 0xd0;
TL1 = TH1;
EA = 1;
ET0 = 1;
TI=1;
ES = 1;
TR1 = 1;
TH0=(65536-45872)/256; //定时器初始化
TL0=(65536-45872)%256;
TR0 = 1;
while(1)
{
display();
if (time_fen==60) //如果分=60,时+1
{time_shi++;
time_fen=0;}
if(time_shi==24) //如果时=24,分时归零
{
time_shi=0;
time_fen=0;
}
} }

void inter() interrupt 1 //定时器中断
{
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
num++;
if(num==20)
{
num=0;
miao++;
P1=miao;
if (miao==60)
{
time_fen++;
miao=0;
} }
}

void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
if(SBUF==1){time_shi++;} //收到‘1’,时+1
if(SBUF==2){time_fen++;} //收到‘2’,分+1
ES=0;
TI=1;
printf("NOW TIME IS %d : %d \n",time_shi,time_fen); //当串口收到信息时,输出消息
ES=1;
TI=0;
}
else
TI=0;
}

原理图:
原理图省略了时钟,复位和供电电路。
Continue reading

和你的单片机聊天

在《无线电》杂志上读到过很多关于手机连接单片机的文章,比如手机控制智能小车,手机显示传感器信息等,毕竟现在是物联网时代,业余时间玩单片机的过程中,我突然想到能否使用智能手机来和单片机聊天呢,于是便有了聊单片机的这个项目。

本制作硬件部分主要由单片机/Arduino,ESP8266无线串口模块(图1)两大部分组成,单片机负责运行用户自己的程序,ESP8266主要处理单片机和外部网络的通讯。

2             1

Continue reading