标题:
基于单片机的太阳能自动寻光装置仿真与源码
[打印本页]
作者:
wlc
时间:
2018-2-14 17:17
标题:
基于单片机的太阳能自动寻光装置仿真与源码
能够自动寻光,追寻太阳,开关的作用就是相当于光敏电阻,当为低电平是,停止寻光
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(24.23 KB, 下载次数: 46)
下载附件
2018-2-15 02:19 上传
0.png
(60.28 KB, 下载次数: 36)
下载附件
2018-2-15 02:19 上传
单片机源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit hor1=P1^0; //水平方向正转使能端
sbit hor2=P1^1; //水平方向反传使能端
sbit ver1=P1^2; //垂直方向正转使能端
sbit ver2=P1^3; //垂直方向反传使能端
uchar code FWD[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正转
uchar code REV[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反转
bit ka1,ka2,kb1,kb2,hormotor,vermotor;
uint ia,ib;
/*******************************************************
电机转动延时子函数
********************************************************/
void delay_dianji(unsigned int t) //电机转动延时函数
{
unsigned int k;
while(t--)
{
for(k=0; k<300; k++) //k从0自加一至300
{ }
}
}
void fangxiang() //识别方向子函数
{
if(hor1==0) //水平正传使能端有效
{
ia++;
if(ia>7)
ia=0;
P0=FWD[ia]; //转动方向为正向
delay_dianji(15);
}
if(hor2==0) //水平反转使能端有效
{
ia++;
if(ia>7)
ia=0;
P0=REV[ia]; //转动方向为反向
delay_dianji(15);
}
if(ver1==0) //垂直正传使能端有效
{
ib++;
if(ib>7)
ib=0;
P2=FWD[ib]; //转动方向为正向
delay_dianji(15);
}
if(ver2==0) //垂直反转使能端有效
{
ib++;
if(ib>7)
ib=0;
P2=REV[ib]; //转动方向为反向
delay_dianji(15);
}
}
main()
{
while(1) //死循环
{
fangxiang(); //识别方向子函数
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
电机.rar
(81.24 KB, 下载次数: 108)
2018-2-14 17:15 上传
点击文件名下载附件
太阳能追光
下载积分: 黑币 -5
作者:
yt1329770668
时间:
2018-4-22 12:44
感谢分享
作者:
ironTonySTK
时间:
2018-5-23 18:00
大佬有没有做出实物出来啊 仿真里面四个舵机是干嘛的
作者:
1024256
时间:
2018-5-23 19:32
666666
作者:
ironTonySTK
时间:
2018-5-26 19:14
还有你这个仿真里的电机是什么型号的啊 为啥转360度 而且程序驱动好像也没用PWM?不太懂
作者:
whlx622
时间:
2018-5-26 21:39
不错。这个搞得可以可以
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1