又是喂鱼机,我很无聊很低级,很无耐不得不整。
jrcsh2010/09/15电子技术 IP:广东
程序已经写~~~~ 厌腻了 也就是开狗,喂狗, 用定时器产生定时或 1302 作时钟源,   这次用步进电机作鱼料给进, 会比 以前直流电机的精准多, 还是用 弹簧的转动来推动,

一片 STCC52 、uln2003、1302待定、 显示用数据码管或 1602
来自:电子信息 / 电子技术
23
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
冲压发动机
14年4个月前 IP:未同步
257948
把电路上来看看!或是机械结构
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
冲压发动机
14年4个月前 IP:未同步
257949
我在想我们老家大鱼塘也有投食的机器,不过不是全自动的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
lovehongkong
14年4个月前 IP:未同步
257954
这种问题。。用个闹钟+继电器就可以了吧╮〔╯ε╰〕╭
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
257959
插楼也是一种美~~~~ 机械结构完成   程序主体~~~早早已经完成  晚上回来进一步调试吧

电路很不想上上来  都是通用 常用的   自搭不出这个电路~~~ 基本上也没法玩


   1.jpg

传送轴用来 推鱼料前进的核心元件。 主要材料使用了一只~~~昨天吃完快餐没扔的快只~~~ 一条RVVP1*0.3的电线 开2个孔定位 绕几下完成



2.jpg


储存饲料的瓶子,   作一个接口 其实这个接口早就 构思好了  也作过一些  这次只是作个样子 哈哈

3.jpg


4.jpg
5.jpg
6.jpg     

按快~~~没上传完就发出来了~~~晕
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
257961
6.jpg

这个传送机构要注意的一点

密封性 ~~ 要不到处都是~~~哪个 饲料的味道   上次作的过于开放就有这个问题

这次大面积都作密封处理    2边都尽量封闭   只留出料口   有时间出料口也封上作成自动开合 呵呵呵呵


7.jpg    8.jpg    9.jpg    10.jpg    11.jpg    11.jpg    12.jpg    13.jpg    14.jpg    15.jpg    16.jpg    17.jpg    18.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
257962
测试了一下午  没有问题 也没有死机会  

但安全 小狗带是带上好
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
tyd1998
14年4个月前 IP:未同步
257977
很好很强大嘛
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
AsyncMaster
14年4个月前 IP:未同步
257979
太专业了……膜拜
我要这个改一下用来自动生产能才。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
飞天狂想
14年4个月前 IP:未同步
257990
看的出楼主确实很无聊``````费那么多功夫作这样一个东西```
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
257993
引用第8楼◤◢◣◢◣◥于2010-09-15 20:09发表的  :
太专业了……膜拜
我要这个改一下用来自动生产能才。。



~~缺点是不耐用~~~~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
257995
引用第9楼飞天狂想于2010-09-15 20:45发表的  :
看的出楼主确实很无聊``````费那么多功夫作这样一个东西```


一个半小时左右吧  东西都是现成的 组装在小修一下就行了


  硅胶是主力~~~~ 哈哈
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
冲压发动机
14年4个月前 IP:未同步
258007
不错!LZ可以做个能把食物抛射很远的结构吗?再加上全自动,
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
258009
引用第12楼冲压发动机于2010-09-15 22:01发表的  :
不错!LZ可以做个能把食物抛射很远的结构吗?再加上全自动,


电磁G  控制好了不就行了  

在不行上个 电磁铁一样飞出去
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey
14年4个月前 IP:未同步
258016
1302 容易挂掉,劣质晶振无爱,而且好的难找
建议直接用51做RTC
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
258023
引用第14楼warmonkey于2010-09-15 22:13发表的  :
1302 容易挂掉,劣质晶振无爱,而且好的难找
建议直接用51做RTC


1302 手上没晶振丢一边去了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
258044
1602  也上上了 还小小的写了个开机 画面~~~~~个人虽然认为~~~纯是~~~浪费~~~~起动时间~~~




~~~录象大于 8MB 上不来~~~~晕了


这次行了吧


attachment icon 照片 096.avi 6.99MB AVI 16次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
258045
代码  功能  1602   看门小时狗, 定时器, 步进电机 2相6线2拍半控制法,加速起动过程,


#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef bit BOOL ;
unsigned char aa,b2,d1,d11,d12;
unsigned int m,m1,m2,ty,s1,m1,h1,a2,ty1,dsrw,bb,a1,i1,b1;
void akey(void);
void delaymma(uint z);
void delay(BYTE ms);
void delay2(void);
void wy(void);
void xs(void);

sbit key1 = P3^2;    
sbit key2 = P3^3;
sbit key3 = P3^4;
sbit key4 = P3^5;
sbit key5 = P3^6;
sbit key6 = P3^7;
sbit rs    = P2^0;        //
sbit rw = P2^1;
sbit ep = P2^2;
sfr WDT_COUTR = 0xc1; //小狗狗起床了

BYTE code  dis_code[11]={"01234567890"};
unsigned char data   dis_buf[8];
unsigned char data   dis_buf2[2];
//uchar xdata cl[4][20]={{1,2,3,0},{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}};
BYTE code dis1[] = {"||  Greenbird ||"};
BYTE code dis2[] = {"||    JRCSH   ||"};


uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //P10~3. P20-3
uchar code FFW[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //P10~3. P20-3
//uchar code REV1[8]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90}; ////P14~7.
//uchar code fj2[8]={0x90,0x80,0xc0,0x40,0x60,0x20,0x30,0x10}; ////P14~7.


uchar rate ;

void delay(BYTE ms)
{                            // 延时子程序
    BYTE i;
    while(ms--)
    {
        for(i = 0; i< 250; i++)
        {
            _nop_();
            _nop_();
            _nop_();
            _nop_();
        }
    }
}

BOOL lcd_bz()
{                            // 测试LCD忙碌状态
    BOOL result;
    rs = 0;
    rw = 1;
    ep = 1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    result = (BOOL)(P0 & 0x80);
    ep = 0;
    return result;    
}

lcd_wcmd(BYTE cmd)
{                            // 写入指令数据到LCD
    while(lcd_bz());
    rs = 0;
    rw = 0;
    ep = 0;
    _nop_();
    _nop_();    
    P0 = cmd;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    ep = 1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    ep = 0;        
}

lcd_pos(BYTE pos)
{                            //设定显示位置
    lcd_wcmd(pos | 0x80);
    WDT_COUTR =0X3f; //3F <10S  //0X3C < 1S//小狗狗乖
}

lcd_wdat(BYTE dat)    
{                            //写入字符显示数据到LCD
    while(lcd_bz());
    rs = 1;
    rw = 0;
    ep = 0;
    P0 = dat;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    ep = 1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    ep = 0;    
}

lcd_init()
{                            //LCD初始化设定
    lcd_wcmd(0x38);            //
    delay(1);
    lcd_wcmd(0x0c);            //
    delay(1);
    lcd_wcmd(0x06);            //
    delay(1);
    lcd_wcmd(0x01);            //清除LCD的显示内容
    delay(1);
}
void delay2()
{                          
   uchar k,t;
   k = rate;
   t = 0x00;

   do{
       do{ _nop_();_nop_();_nop_();_nop_();
             _nop_();_nop_();_nop_();_nop_();
         }while(--t);
        
     }while(--k);
}
/********************************************************/
/*
/*步进电机正转
/*
/********************************************************/
void  motor_ffw()
{
   uchar i;

      for (i=0; i<8; i++)     //一个周期转30度
        {
          P1 = FFW[i];        //取数据
          delay2();            //调节转速
        }
}

/********************************************************
*                                                      
*  主程序                                              
*                                                      
*********************************************************/

main()
{  
BYTE i;
    lcd_init();                // 初始化LCD            
delay(10);
delaymma(7);
for(m=0;m<3;m++)
{
    lcd_pos(0);                // 设置显示位置为第一行的第5个字符
    i = 0;
    while(dis1[i] != '\\0')
    {                        // 显示字符"jrcsh"
        lcd_wdat(dis1[i]);
        i++;
    }



    lcd_pos(0x40);            // 设置显示位置为第二行第二个字符
    i = 0;
    while(dis2[i] != '\\0')
    {
        lcd_wdat(dis2[i]);    // 显示字符"   jrcsh@qq   "
        i++;
    }
delaymma(800);
for(i=0;i<80;i++)
{
lcd_pos(i);
    lcd_wdat(' ');
}
delaymma(560);
}// for m
lcd_pos(0);                // 设置显示位置为第一行的第5个字符
    i = 0;
    while(dis1[i] != '\\0')
    {                        // 显示字符"jrcsh"
        lcd_wdat(dis1[i]);
      delaymma(100);
        i++;
    }



    lcd_pos(0x40);            // 设置显示位置为第二行第二个字符
    i = 0;
    while(dis2[i] != '\\0')
    {
        lcd_wdat(dis2[i]);    // 显示字符"   jrcsh@qq   "
delaymma(200);
        i++;
    }
delaymma(800);
for(i=0;i<80;i++)
{
lcd_pos(i);
    lcd_wdat(' ');
}

                    // 显示"-"
TMOD = 0x11;
EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;//开定时器0中断
TH0 = 0x28;
TL0 = 0x00;
TH1 = 0x28;
TL1 = 0x00;
TR1=1;
TR0=1;//定时器开
//TR0=0;//停定时器0
P1=0xff;
d1=1;

m2=0;
m1=0;
h1=0;
s1=0;
a1=0;
a2=1;
i1=0;
/*
for(m=0;m<4;m++)
{
for(m1=0;m1<20;m1++)
{
cl[m][m1]=m1+m*10;
}
}
*/
m1=0;
dis_buf[0] = dis_code[h1 / 10];        // 时十位
    dis_buf[1] = dis_code[h1 % 10];        // 时个位
    dis_buf[3] = dis_code[m1 / 10];        // 分十位
    dis_buf[4] = dis_code[m1 % 10];        // 分个位
    dis_buf[6] = dis_code[s1 / 10];        // 秒十位
    dis_buf[7] = dis_code[s1 % 10];        // 秒个位
    dis_buf[2] = ':';                        // 显示"-"
    dis_buf[5] = ':';    
/*
lcd_pos(8);
    lcd_wdat(' ');
lcd_pos(7);
    lcd_wdat(' ');
for(i=64;i<80;i++)
{
lcd_pos(i);
    lcd_wdat(' ');
}
*/
aa=0;  
rate = 0x10;
b1=1;
b2=1;
d1=0;
while(1)                    
{
WDT_COUTR =0X3f; //3F <10S  //0X3C < 1S//小狗狗乖
//---------------------------------------
if(key1==0)
{
aa=99;
}
if(aa==99)
{
b1++;
motor_ffw();  
if(rate>2)
rate--;
}    
if(b1 > 4)
{
if(rate>2)
rate--;
if(key1==1)
{
b1=1;
aa=0;
P1=0xff;
rate = 0x10;
}
}  
//---------------------------------------
//0000000000000000000000000000000000

  
if(a1==0)
{

if(a2==1)
{
lcd_pos(0);

lcd_wdat(' ');
}
if(a2==0)
{
lcd_pos(6);
    lcd_wdat(' ');
}
/*
   lcd_pos(a2);                // 设置显示位置为第一行的第5个字符
    i = 0;
    while(dis1[i] != '\\0')
    {                        // 显示字符"jrcsh"
        lcd_wdat(dis1[i]);
        i++;
    }

    lcd_pos(0x40);            // 设置显示位置为第二行第二个字符
    i = 0;
    while(dis2[i] != '\\0')
    {
        lcd_wdat(dis2[i]);    // 显示字符"  jrcsh@qq  "
        i++;
    }
*/

xs();


/*
lcd_pos(0x43);            // 设置显示位置为第二行第二个字符
    i = 0;
    while(i<4)

    {  
m=dis_code[cl[i][i1] / 10];
        lcd_wdat(m);    // 策略显示
m=dis_code[cl[i][i1] % 10];
        lcd_wdat(m);    // 策略显示
    lcd_wdat('-');
        i++;
    }
*/
a1=1;
}//a1=0
//时间设定部分-----------------------------------
if(key2==0)
{
delaymma(7);
while(!key2)
delaymma(7);
h1++;
xs();
}
if(key3==0)
{
delaymma(7);
while(!key3)
delaymma(7);
h1--;
xs();
}
if(key4==0)
{
delaymma(7);
while(!key4)
delaymma(7);
m1++;
xs();
}
if(key5==0)
{
delaymma(7);
while(!key5)
delaymma(7);
m1--;
xs();
}
if(key6==0)
{
delaymma(17);
while(!key6)
delaymma(17);
d1=0;
xs();
}

//时间设定部分-----------------------------------


//工作记录显示===================================





//工作记录显示===================================


if(s1 > 59)
{
s1=0;
m1++;
dis_buf[3] = dis_code[m1 / 10];        // 分十位
dis_buf[4] = dis_code[m1 % 10];        // 分个位


}


if(m1 > 59)
{
m1=0;
h1++;
dis_buf[0] = dis_code[h1 / 10];        // 时十位
dis_buf[1] = dis_code[h1 % 10];        // 时个位
rate = 0x15;
if(h1<20) //定里处理部分--------------小于21点  大于 6点着手 每小时 放一次 食料 ---------------------
{
if(h1>5)
{
for(m=0;m<170;m++)
{
wy();
}
d1++;
}
}
}
if(h1 > 23)
{
h1=0;
      }
if(a1==0)
{
akey() ;
dis_buf[0] = dis_code[h1 / 10];        // 时十位
dis_buf[1] = dis_code[h1 % 10];        // 时个位
dis_buf[3] = dis_code[m1 / 10];        // 分十位
dis_buf[4] = dis_code[m1 % 10];        // 分个位
}//a1
//0000000000000000000000000000000000000000000
    } // wa
}//ma

/********************************************************/  



void delaymma(uint z)
{                
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);    
}


void akey(void)
{
/*
if(key1==0)
{
while(!key1)
a1++;
if(a1 > 99)
{
a1 =0;
}
delaymma(100);
}

if(key2==0)
{
while(!key1)
a1--;
if(a1 < 1)
{
a1 =99;
}
delaymma(100);
}
*/
}


void timer0() interrupt 1
{  
TH0 = 0x28;
TL0 = 0x00;
ty=ty++;
if(ty > 20)
{
ty=0;
s1=s1++;



    

}
}

void timer1() interrupt 3
{
TR1=1;
TH1 = 0x28;
TL1 = 0x00;


ty1=ty1++;
WDT_COUTR =0X3f; //3F <10S  //0X3C < 1S//小狗狗乖

if(ty1 > 20)
{
dis_buf2[0] = dis_code[d1 / 10];        // 时十位
dis_buf2[1] = dis_code[d1 % 10];        // 时个位
dis_buf[6] = dis_code[s1 / 10];        // 秒十位
dis_buf[7] = dis_code[s1 % 10];        // 秒个位
a1=0;
ty1=0;
if(a2==0)
{
a2=1;
}
else
{
a2=0;
}
}
}

  
void wy()
{
WDT_COUTR =0X3f; //3F <10S  //0X3C < 1S//小狗狗乖
motor_ffw();
P1=0xff;  
if(rate>2)
rate--;
}    

void xs()  
{
uchar i;
lcd_pos(8);                // 设置显示位置为第一行的第9个字符
    i = 0;
    while(i<8)
    {                        
        lcd_wdat(dis_buf[i]);
        i++;
    }

lcd_pos(0x43);            // 设置显示位置为第二行第二个字符

    lcd_wdat('W');
    lcd_wdat('Y');
    lcd_wdat('=');  
    lcd_wdat(dis_buf2[0]);    // 策略显示
    lcd_wdat(dis_buf2[1]);    // 策略显示

}        



/*
key 1   电机转动
2  小时 ++
3   小时 --
4  分钟 ++
5分钟 --
6 喂食次数 归0

*/
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年4个月前 IP:未同步
258047
void timer0() interrupt 1
{  
//TH0 = 0x29;
//TL0 = 0xe1;

TH0=(65536-43800)/256;
TL0=(65536-43800)%256;
ty=ty++;
if(ty >20)
{
ty=0;
s1=s1++;


时钟源部分又进行了 效正~~~ 只能说差不多~~~ 不是很准  还真是 比不上 1302
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
lovehongkong
14年3个月前 IP:未同步
258057
我还是觉得闹钟加继电器好。。话说饲料流动性差,怕单片机死机还不如怕卡住不出料。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年3个月前 IP:未同步
258169
中午前 下料 5次正常
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh作者
14年3个月前 IP:未同步
258490
今天回来查看 运行正常 就是时间还没对准上 这次比上次准了很多  运行2天半 时间只是快了 6分钟左右 时间还要在花时间慢慢校准来

2天半 喂食了 41次

时间是 6点~  20点 每小时一次

1.jpg    2.jpg    3.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
布布卡
14年3个月前 IP:未同步
258947
我见过鱼塘用的  不过很大 并且是分散弹开
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
jrcsh
学者 笔友
文章
491
回复
6730
学术分
4
2009/01/02注册,6年10个月前活动

.

主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}