最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

旋转的自行车车灯

时间:2017-05-17 09:13来源:未知 作者:admin 点击:
作为一个声明,这个项目是圆的约六(或七?) 岁. 这是我做的我的电气工程研究在嵌入式工程类与我的好朋友摩奴。 整个班级都建立一个电动自行车电机的任务,显示和一些额外的功能。 我们做为自行车的照明。 我想创造一些特别的东西。 我的想法是要安装一些LE
旋转的自行车车灯

作为一个声明,这个项目是圆的约六(或七?)岁.这是我做的我的电气工程研究在嵌入式工程类与我的好朋友摩奴。整个班级都建立一个电动自行车电机的任务,显示和一些额外的功能。我们做为自行车的照明。我想创造一些特别的东西。我的想法是要安装一些LED直接在车轮转动,让他们。开关LED“上”和“关闭”在正确的时刻(“上”当二极管是面对前/后,否则“关闭”)会欺骗人的眼睛和创建一个静态光帧的前面和后面。

不幸的是我没有追求的项目后,我已经完成它。我现在专注于木工项目:)我有很多老项目与微控制器(µC)躺在。我会把有趣的教学时我有时间做这件事。你可以检查我的项目很老的博客:www.tiny-labs.com我希望你们中的一些人发现他们很有趣,虽然有许多的优势项目有。

我试着记住每件事,把它写下来。随便问我任何问题通过留言或者PM。

享受:)

步骤1:概念

旋转的自行车车灯

该功能在小动画形象。我将轮为12个部门。每个车轮安装12对LED和白光LED用红色发光二极管的前、后。由于车轮的旋转,计算正确的开关时间为每对是必要的。因此我需要知道时间,执行一个旋转轮。现在我可以计算出“上”和“下”的每一次对LED的转动下。我想要四前置和四后置LED发光二极管接通。如果车轮转动一段,LED,这是离开前/后关掉,和LED,这是进入前/后接通。这是一个有点用词来描述复杂的。我认为动画背后的想法了。

例如,这是前面的开关表:

//		 Time segments
//     |00|01|02|03|04|05|06|07|08|09|10|11|
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   01|  |  |  |  |  |  |  |  |##|##|##|##|
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   02|  |  |  |  |  |  |  |##|##|##|##|  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
// L 03|  |  |  |  |  |  |##|##|##|##|  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   04|  |  |  |  |  |##|##|##|##|  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
// E 05|  |  |  |  |##|##|##|##|  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   06|  |  |  |##|##|##|##|  |  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
// D 07|  |  |##|##|##|##|  |  |  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   08|  |##|##|##|##|  |  |  |  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
// S 09|##|##|##|##|  |  |  |  |  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   10|##|##|##|  |  |  |  |  |  |  |  |##|
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   11|##|##|| | | | | | | | # # | # # | 
 /——+——+——+——+——+——+——+——+——+——+——+——+——+ 
 / / 12 | # # | | | | | | | | | # # | # # | # # | 
 /——+——+——+——+——+——+——+——+——+——+——+——+——+ 
 / /

每个LED # #接通。一段的长度等于旋转时间下降12。这让我直接到下一个问题。

如何测量旋转的时间吗?

这是很容易的。我基本上做同样的什么简单的5美元的自行车电脑。我用磁铁和簧片开关霍尔传感器(我用霍尔传感器后,但一个简单的簧片开关会做同样的魔法)来测量旋转时间。当磁铁触发我的传感器,我开始一个时钟(一个非常精确的时钟),当传感器被触发了,我节省时间的推移,两者之间的事件和重启时钟下等等。现在我只是把12的时间,所以我一段时间了。

开关二极管

车轮是旋转的,我有一段时间。当传感器被触发我用段时间从以前的旋转,在即将到来的旋转开关二极管。我有我的精确时钟复位和启动运行在下一个循环的开始。现在我用我的时间表格上面的开关二极管,根据我目前在段。这个过程是每一个旋转重复。如果在转速略有差异(骑车走快或慢)你可以看到轻微的光架沿轮动。一辆自行车的行驶速度通常是不变的,慢慢的改变,现在的问题就在这里。关键时刻,是起步阶段,当自行车又停了。要诚恳,我没有实施任何解决这个问题。如果你开始驾驶你的车,灯光将再次启动功能。站在一个解决方案仍然是一个陀螺仪测量车轮的位置和开关,目前在前/后位灯。这些组件是相当便宜,现在。我再加一段以后可能的变化。

步骤2:电路图

旋转的自行车车灯

我开始与电路图。我需要一轮每个站点12个发光二极管,这24个发光二极管为每个车轮,共48。控制二极管,我使用一个微控制器从ATMEL公司生产的高速单片机。它有足够的港口,我的12对LED。测量时,我使用一个霍尔效应传感器。一个原子电池组将一切的力量。我需要一个开关和一些被动电子元件(电阻和电容)。

这是一轮完整的列表:

  • attiny2312
  • 24发光二极管(白前,红后)
  • 3节AA电池
  • 打开/关闭开关
  • LED的开启/关闭状态
  • 电阻220欧姆(LED)
  • 电阻10K欧姆(为复位端口上拉)
  • 大厅或簧片开关
  • 100nf(平滑电容器的电源)
  • Atmel公司的程序员6针连接器(可选)
  • 线(很多人:D)

我用一个Atmel公司的程序员Atmel Studio我的一点代码闪存微控制器。你可以使用命令行工具以及。你可以切换到一个不同的微控制器。下面的源代码写的attiny工作,但它应该很容易调整你的选择控制单元编码。

步骤3:第一个原型

旋转的自行车车灯

第一个原型是非常快速和肮脏的。我们使用了大量的磁带和粗线安装LED的边缘。电池和控制单元被放置在车轮的中心。它看起来很丑陋,但实际上是一个坚实的建设。稍后我会解释的源代码,请欣赏视频:D

在第一次试验中只有三对LED进行了同时接通。第二测试四对LED。我们保持了四的“最终版”LED版。在这种情况下,所以我们可以照亮更多的街道,前面的路是长的光带。

步骤4:第二和最后的原型

旋转的自行车车灯

第二原型有一个电子和一个更好的执行“贴”套管:D已经安装到我的自行车。最终版本必须为LED铝轮辋。边缘涂上黑漆。它看起来真棒。不幸的是,我找不到照片整体的和最后的安装。刚从前轮。

下一步将提高安装系统和电子的外壳,但我们从来没有真正。我有点难过,回首这项目。它有很大的潜力。无论如何,享受视频。与尾灯的视频有一个软件缺陷。这就是为什么红色LED似乎跳。我修好了之后。

步骤5:源代码

有四个相关的源文件。你可以找到他们作为附件。我添加了Makefile以及。Makefile配置µ你可以调整你的选择控制单元。

  • 主。C(主回路和初始化)
  • 主。H(所有的定义和设置)
  • 中断。C(中断运行时)
  • 功能。C(功能;)

的主要特点是外包给中断运行时节约能源。你可以把µC睡觉。

主要的C。

这是主回路。主。C配置端口,中断和接口,需要直接进入主循环。

//	=== LED timing diagram rear ===
// 
//				  Time segments
//     |00|01|02|03|04|05|06|07|08|09|10|11|
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   01|  |  |  |  |  |  |  |  |##|##|##|##|
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   02|  |  |  |  |  |  |  |##|##|##|##|  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
// L 03|  |  |  |  |  |  |##|##|##|##|  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   04|  |  |  |  |  |##|##|##|##|  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
// E 05|  |  |  |  |##|##|##|##|  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   06|  |  |  |##|##|##|##|  |  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
// D 07|  |  |##|##|##|##|  |  |  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   08|  |##|##|##|##|  |  |  |  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
// S 09|##|##|##|##|  |  |  |  |  |  |  |  |
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   10|##|##|##|  |  |  |  |  |  |  |  |##|
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   11|##|##|  |  |  |  |  |  |  |  |##|##|
//   --+--+--+--+--+--+--+--+--+--+--+--+--+
//   12|##|  |  |  |  |  |  |  |  |##|##|##|
//   --+--+--+--+--+--+--+--+--+--+--+--+--+


#include "main.h"	//Import all needed defines, makros, libraries, global variables

//=== Receiver ===

#define F_CPU 8000000UL

#include <avr/io.h>
#include <util/delay.h>
#include "rf12.c" 

int main(void)
{
	unsigned char chr = '1';

	vTIMER0_ini();	//Initialize ans start timer 0 (overflow after 8*0.064ms), 8bit timer, prescaler 8, interrupt enable, no preload
	vPORTS_ini();	//Initialize all ports for LED usage
	vINT0_ini();	//Initialize external interrupt 0 (int0)
	sei();			//Global interrupt enable on	
	rf12_init();
	
	while(1)		//Endless loop
	{
		rf12_rxdata(&chr, 1);
		if (chr == '1')
		{
			switche_on = 1;
		}
		if (chr == '0')
		{
			switche_on = 0;
		}
	}
}
      
      (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
相关文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片