搜索
bottom↓
回复: 60

外面真冷,才10度

[复制链接]

出0入0汤圆

发表于 2011-12-13 03:49:26 | 显示全部楼层 |阅读模式
本来以为养猪后不用搞研发了,谁知道还是要熬夜堆码给小猪做加热板的控制器,刚脱离热流道的苦海又掉进了加热板的火坑,还要是白天养猪晚上堆码,叫我情何以堪。。。
刚堆完18b20的码,测了下外面的温度,10度,好冷!
顺便发下关键部位的代码,其它的等整理好了再发。

unsigned char T18B02Int(void)
{   
    unsigned char DQdata;
    //DQoutput(DQ);                                       //  设置DQ脚为输出
    DIR_1WIRE_OUT();
    //DQhigh(DQ);                                         //拉高总线
    SET_OP_1WIRE();
    //delayUs(5);
    delay_Nus(5);
    //DQlow(DQ);                                           //拉底总线
    CLR_OP_1WIRE();
    //delayUs(600);                                       //延时大于480us
    delay_Nus(400);
    //DQinput(DQ);
    DS18B20_input();
    //delayUs(40);
    delay_Nus(80);
    //DQdata=GPIOPinRead(DQ);                            //读取DQ值
    DQdata=CHECK_IP_1WIRE();
    //delayUs(500);                                       //延时20us
   delay_Nus(400);
    return(DQdata);
}

u8 read_bit(void)         
{
    static u8 dataDQ;
    //DQoutput(DQ);
    SET_OP_1WIRE();
    DIR_1WIRE_OUT();
    //delayUs(5);
    delay_Nus(5);
    //DQhigh(DQ);
    //SET_OP_1WIRE();
    //delayUs(2);
    //delay_Nus(2);
    //DQlow(DQ);
    CLR_OP_1WIRE();
    //delayUs(5);
    delay_Nus(2);
    //DQinput(DQ);
    DS18B20_input();
    delay_Nus(2);
    //dataDQ=GPIOPinRead(DQ);
    dataDQ=CHECK_IP_1WIRE();
    //delayUs(60);
    delay_Nus(60);
    return(dataDQ);
}

void write_bit(unsigned char bitval)   
{     
    //DQoutput(DQ);                                       //  设置DQ脚为输出
  SET_OP_1WIRE();
  DIR_1WIRE_OUT();
  //delayUs(2);
  //delay_Nus(2);
    //DQhigh(DQ);
  //SET_OP_1WIRE();
    //delayUs(5);
  delay_Nus(5);
    //DQlow(DQ);                                           //拉底总线
  CLR_OP_1WIRE();
  //delayUs(5);
  delay_Nus(5);

    if (bitval==1)   
    {
         //DQhigh(DQ);
      SET_OP_1WIRE();

    }

     //delayUs(55);
    delay_Nus(55);
}

unsigned char readByteDS18B20(void)
{
    unsigned char i;
    unsigned char j;
    unsigned char value=0;
   
     
    for (i=0;i<8;i++)
    {
        j=read_bit();     //调读位函数
      
        if (j)               //如果是 1 置1
        {
            value|=(0x01<<i);  //先读低位,再读高位
           //delayUs(3);
            delay_Nus(3);
        }
    }                         //否则置 0
    SET_OP_1WIRE();
    return(value);           
}

void writeByteDS18B20(unsigned char val)
{
    unsigned char i;
    unsigned char temp;
   
   
    for (i=0;i<8;i++)
    {
        temp=val>>i;
        temp&=0x01;
        write_bit(temp);   //调写位函数
         
    }
    SET_OP_1WIRE();
    delay_Nus(3);   
}

/**********************************************************************
读DS18B20 ID
**********************************************************************/
unsigned int readIDDS18B20(void)
{
        unsigned char tempL,tempH;
        unsigned int x;
        while(T18B02Int());
        writeByteDS18B20(0x33);                //读ID
        tempL=readByteDS18B20();
        tempH=readByteDS18B20();
        x=(tempH<<8)|tempL;
        return(x);
}

/**********************************************************************
读DS18B20温度
**********************************************************************/
unsigned int readTempDS18B20(void)
{
        unsigned char tempL,tempH;
        unsigned int x;
        while(T18B02Int());
        writeByteDS18B20(0xcc);         //跳过ROM
        writeByteDS18B20(0x44);                //启动温度转换
        //DQinput(DQ);
        DS18B20_input();
        //while(!GPIOPinRead(DQ));
        while(!CHECK_IP_1WIRE());
        while(T18B02Int());
        //delayUs(5);
        delay_Nus(5);
        writeByteDS18B20(0xcc);                //跳过ROM
        writeByteDS18B20(0xbe);                //读数据
        tempL=readByteDS18B20();
        tempH=readByteDS18B20();
        x=(tempH<<8)|tempL;
        return(x);
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-12-13 04:53:19 | 显示全部楼层
帮顶吧
试卷还没看完
外面该是零下十度了

出0入0汤圆

发表于 2011-12-13 07:05:05 | 显示全部楼层
楼主的猪真幸福啊,哈哈

出0入0汤圆

发表于 2011-12-13 08:11:58 | 显示全部楼层
是啊,零下10度差不多

出0入0汤圆

发表于 2011-12-13 08:27:05 | 显示全部楼层
回复【2楼】way2888
楼主的猪真幸福啊,哈哈
-----------------------------------------------------------------------
d^v^b

出0入0汤圆

发表于 2011-12-13 08:35:14 | 显示全部楼层
真逗

出0入4汤圆

发表于 2011-12-13 09:23:36 | 显示全部楼层
回复【2楼】way2888  
楼主的猪真幸福啊,哈哈
-----------------------------------------------------------------------

把猪全卖了,换过年钱,更幸福。

出0入0汤圆

发表于 2011-12-13 10:13:26 | 显示全部楼层
楼主把科技用于养猪事业上,可喜可贺
修改增加:人工受精那事儿不要亲自上阵哦。

出0入0汤圆

发表于 2011-12-13 10:14:55 | 显示全部楼层
我这里妥妥的20度,还是降温过后的.

出0入0汤圆

发表于 2011-12-13 10:24:54 | 显示全部楼层
回复【1楼】lw-seed
-----------------------------------------------------------------------

试卷还没看完 ~突然让我想起了彩虹老师了,貌似很久很久没他的消息了。

出0入4汤圆

发表于 2011-12-13 10:28:52 | 显示全部楼层
10°还辛苦,我们都是零下的

出0入0汤圆

发表于 2011-12-13 10:30:18 | 显示全部楼层
恭喜楼主把敲代码变成了副业
头像被屏蔽

出0入0汤圆

发表于 2011-12-13 10:31:05 | 显示全部楼层
COOL ,楼主做好后,将图片补一下 :)

出0入0汤圆

发表于 2011-12-13 10:34:00 | 显示全部楼层
lz给每头猪也穿裤子猪也就不冷了。

出0入0汤圆

发表于 2011-12-13 10:50:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-13 10:53:54 | 显示全部楼层
LZ ,用什么发热的,怎么控制的?

出0入0汤圆

 楼主| 发表于 2011-12-13 12:01:58 | 显示全部楼层
回复【15楼】linghu2 令狐二中
lz ,用什么发热的,怎么控制的?
-----------------------------------------------------------------------

用33欧/米的加热丝套入硅胶管里面,共8米,扎在铁网上,像阿莫那个当地人处理小偷方法那样,倒制到水泥板中间,18b20探头可以买已经用不锈钢筒做好的防水成品,也可以自己弄子_弹壳来做,也埋到水泥板中间,上面加个3/4的铁弯头拉一根1.5m的水管,防止猪咬到线,单片机的任务就是读探头温度,控制可控硅的开关。

出0入0汤圆

发表于 2011-12-13 12:06:38 | 显示全部楼层
能读到负温度么???  很多驱动都没有负温度处理啊

出0入0汤圆

 楼主| 发表于 2011-12-13 12:23:17 | 显示全部楼层

(原文件名:1.JPG)


(原文件名:2.JPG)


(原文件名:3.JPG)

在阿莫这里打的核心板,由于个人焊接技术有限,所有焊盘都加大了。


(原文件名:4.JPG)

两路18b20,同在一个房间,很符合+-0.5度的精度,呵呵。
由于精度是+ -0.5度,基本上可以无视小数点以后的温度,读取的数据只要右移4位就直接可以用了,减少运算量。


(原文件名:5.JPG)

18b20探头,防水的成品。


(原文件名:6.JPG)

扎在铁网上的加热管,这是模板,我做的,被领导批评为毫无艺术性,结果她改得挺漂亮,不过那些都已经拿到预制场倒制了。

出0入0汤圆

发表于 2011-12-13 12:47:56 | 显示全部楼层
这应该叫科学养猪

出0入0汤圆

发表于 2011-12-13 12:59:05 | 显示全部楼层
顶,养猪大叔!

出0入0汤圆

发表于 2011-12-13 13:05:26 | 显示全部楼层
回复【17楼】ayumi8
能读到负温度么???  很多驱动都没有负温度处理啊  
-----------------------------------------------------------------------

注意一下程序代码就可以了。有个负温符号的,温度一般显示的是绝对值。

/******************* ds 18b20 **********************************/
void One_Wire_Delay(unsigned char delay_time)
{
while(delay_time)delay_time--;//Delay time us :=(8+delay_time*6)us;
}
/*******DS18B20***********************************************************************/

void Initize_One_Wire_Bus(void)
{
One_Wire_Bus=0;
One_Wire_Delay(80);//Bus master pulling low 488us
One_Wire_Bus=1;
One_Wire_Delay(25);//Resister pull up 158us;
}//Intialization the 1-wire devices;

/***********************************************************************/
unsigned char One_Wire_Read_Byte(void)
{
bit temp_bit;
unsigned char i,result=0;
for(i=0;i<8;i++)
{
  One_Wire_Bus=0;
  One_Wire_Bus=1;
  temp_bit=One_Wire_Bus;
  One_Wire_Delay(9);//delay 62 us
  if(temp_bit)
   result|=0x01<<i;
}
return(result);
  //return the result of the 1-wire device;
}//Read a byte from the 1-wire bus;
/***********************************************************************/
void One_Wire_Write_Byte(unsigned char oww_dat)
{  
unsigned char i;
for(i=0;i<8;i++)
{
  One_Wire_Bus=0;
  if(oww_dat&0x01)One_Wire_Bus=1;
  One_Wire_Delay(20);//delay 128 us
  One_Wire_Bus=1;
  oww_dat>>=1;
}
One_Wire_Delay(10);
}//Write a byte to the 1-wire bus;
/***********************************************************************/
void Read_18B20(void)
{
unsigned char tempH,tempL;
Initize_One_Wire_Bus();
One_Wire_Write_Byte(SkipRom);
_nop_();
  //There is just one DS1820 on the bus;
One_Wire_Write_Byte(ConvertTemperature);
One_Wire_Delay(5);
  //Start to convert temperature;
Initize_One_Wire_Bus();
One_Wire_Write_Byte(SkipRom);
_nop_();
One_Wire_Write_Byte(ReadScratchpad);
GetScratchpad[0]=One_Wire_Read_Byte();
  //Master samples the LSB temperature from the scratchpad;
GetScratchpad[1]=One_Wire_Read_Byte();
  //Master samples the MSB temperature from the scratchpad;
One_Wire_Delay(120);
tempH=(GetScratchpad[1]<<4)|(GetScratchpad[0]>>4);  
tempL=(GetScratchpad[0]&0x0f);
Initize_One_Wire_Bus();
  //Issue a reset to terminate left parts;

if(tempH&0x80)
{
  tempH=~tempH;
  tempL=~tempL+1;
  ResultSignal=1;
  //Negative temperature;
}

ResultTemperatureH=tempH;
ResultTemperatureLL=decimalL[tempL];
ResultTemperatureLH=decimalH[tempL];
  //Result of temperature;
}//Read the byte0 and byte1 from scratchpad;

出0入0汤圆

发表于 2011-12-13 13:14:22 | 显示全部楼层
养猪大叔:提醒一下,加热棒放在水泥中,水泥会爆的,呵呵

出0入0汤圆

发表于 2011-12-13 13:14:28 | 显示全部楼层
呵呵,学以致用,高科技养猪了,顶一个

出0入0汤圆

发表于 2011-12-13 13:15:27 | 显示全部楼层
过段时间我展示一下我的自动饲喂系统

出0入0汤圆

发表于 2011-12-13 13:21:35 | 显示全部楼层
零下十度的飘过~~~

出0入0汤圆

 楼主| 发表于 2011-12-13 13:28:13 | 显示全部楼层
回复【17楼】ayumi8
能读到负温度么???  很多驱动都没有负温度处理啊  
-----------------------------------------------------------------------

18b20的负温度已经用补码储存了,读取的就是放大16倍的负温度。

出0入0汤圆

 楼主| 发表于 2011-12-13 13:30:05 | 显示全部楼层
回复【24楼】lloovve
过段时间我展示一下我的自动饲喂系统
-----------------------------------------------------------------------

期待。
周末的广州种猪拍卖会去不?

出0入0汤圆

发表于 2011-12-13 13:39:03 | 显示全部楼层
高科技养猪

出0入0汤圆

发表于 2011-12-13 13:57:36 | 显示全部楼层
回复【24楼】lloovve  
过段时间我展示一下我的自动饲喂系统
-----------------------------------------------------------------------

猜想下,传输带?

出0入0汤圆

发表于 2011-12-13 14:12:40 | 显示全部楼层
ding!

出0入0汤圆

发表于 2011-12-13 15:26:52 | 显示全部楼层
种猪!要是人也有这职业,会不会比公务员考试还热门?

出0入0汤圆

发表于 2011-12-13 15:30:56 | 显示全部楼层
哈哈  我赶上直播了    谢谢楼主分享  代码拿走了哈

出0入0汤圆

发表于 2011-12-13 15:35:52 | 显示全部楼层
这是一篇神奇的文章,我收藏了。

出0入0汤圆

发表于 2011-12-13 15:43:47 | 显示全部楼层
为什么不用不锈钢啊,用水泥会蹦裂的

出0入0汤圆

发表于 2011-12-13 15:53:05 | 显示全部楼层
楼主想弄地暖啊,不错,但是成本有上涨了啊,吃肉又要多掏钱了

出0入0汤圆

发表于 2011-12-13 16:00:47 | 显示全部楼层
本来以为养猪后不用搞研发了,谁知道还是要熬夜堆码给小猪做加热板的控制器,刚脱离热流道的苦海又掉进了加热板的火坑,还要是白天养猪晚上堆码,叫我情何以堪。。。
-----------------------------------------------

COOL

出0入0汤圆

发表于 2011-12-13 16:42:55 | 显示全部楼层
养猪效益怎么样?我也有这打算,和两个朋友,一个是给人看病的,一个是给猪看病的,期待楼主解说

出0入0汤圆

发表于 2011-12-13 17:06:42 | 显示全部楼层
用技术的手段养猪发家致富才是硬道理啊……

出0入0汤圆

发表于 2011-12-13 19:15:00 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-12-13 19:19:15 | 显示全部楼层
回复【37楼】xiaodongenter 张迅
养猪效益怎么样?我也有这打算,和两个朋友,一个是给人看病的,一个是给猪看病的,期待楼主解说
-----------------------------------------------------------------------

这个不好说,要看条件看技术吧。
刚刚接到一个朋友的电话,他的产房昨天发现流行性腹泻病例,刚好这些猪又没有做这个疫苗,现在已经有300多头没断奶的仔猪阵亡了。
另外一个朋友,猪价10块的时候,狂卖了1000多头肉猪,初步估计,就那段时间他已经赚到100来万了。
所以这些东西,别人说是没有用的,关键看自己。

出0入0汤圆

发表于 2011-12-13 19:21:47 | 显示全部楼层
楼主为中国的养猪事业做出了卓越贡献

出0入0汤圆

发表于 2011-12-13 21:04:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-13 21:29:44 | 显示全部楼层
怎么没人要求看猪的照片。lz上几个猪仔萌照。
可以考虑拉媒体来采访,高科技养猪,产业升级的典范

出0入0汤圆

发表于 2011-12-13 21:35:12 | 显示全部楼层
回复【7楼】lengshuicha  冷水茶
-----------------------------------------------------------------------
暴强!

出0入0汤圆

 楼主| 发表于 2011-12-13 22:55:49 | 显示全部楼层
液晶驱动,键盘输入,18b20都基本上调通了,看来是时候做温控器了。
这个温控器的任务是要控制4块加热板的温度,这样他就得有几个功能:
1. 能设定温度;
2. 能检测温度;
3. 能判断什么时候动作;
4. 能有效动作。

设定温度分为显示和输入部分,显示部分为1602液晶,便宜量又足;
设定部分为4个按键:up,down,cancel,set。

检测部分就是传说中的18b20了。

判断的话,PID暂不考虑,仿机械开关,到温断电低温通电。

驱动电路由带过零光耦+可控硅组成。

出0入0汤圆

发表于 2011-12-13 23:13:43 | 显示全部楼层
建议安装中央空调!

出0入0汤圆

 楼主| 发表于 2011-12-13 23:20:20 | 显示全部楼层
回复【43楼】packer
怎么没人要求看猪的照片。lz上几个猪仔萌照。
可以考虑拉媒体来采访,高科技养猪,产业升级的典范
-----------------------------------------------------------------------

人怕出名猪怕壮,哪个记者来不要个猪这么大的红包?

出0入0汤圆

发表于 2011-12-13 23:55:14 | 显示全部楼层
俺家人也养猪

出0入0汤圆

发表于 2011-12-14 02:17:01 | 显示全部楼层
回复【48楼】hl1200aa
回复【43楼】packer  
怎么没人要求看猪的照片。lz上几个猪仔萌照。  
可以考虑拉媒体来采访,高科技养猪,产业升级的典范
-----------------------------------------------------------------------
人怕出名猪怕壮,哪个记者来不要个猪这么大的红包?
-----------------------------------------------------------------------

顶 这个猪这么大的红包!

出0入0汤圆

发表于 2011-12-14 03:23:02 | 显示全部楼层
如果你不想炒作的话,是可以向采访的记者收取被采访的工时费的。

出0入0汤圆

发表于 2011-12-14 08:23:14 | 显示全部楼层
这种大面积采暖用空调好......热泵效率比加热高几倍的.....

出0入0汤圆

发表于 2011-12-14 08:55:40 | 显示全部楼层
回复【52楼】cock  
如果你不想炒作的话,是可以向采访的记者收取被采访的工时费的。
-----------------------------------------------------------------------

这样,记者会免费帮你宣传的,只是会带个相关部门一起去!!

出50入0汤圆

发表于 2011-12-14 10:30:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-14 10:35:51 | 显示全部楼层
有新意,哈哈

出0入0汤圆

发表于 2011-12-15 13:48:07 | 显示全部楼层
高科技,我要去种菜了

出0入0汤圆

发表于 2011-12-20 21:54:23 | 显示全部楼层
18b20测得我住的这出租屋里就10度,也没空调取暖器什么的,还是楼主的猪舒服啊。。。

出0入0汤圆

发表于 2011-12-21 15:30:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-21 22:49:02 | 显示全部楼层
不错不错,慢慢实现全自动化!
自动喂食,自动清扫…………            盼望着吃肉的时候少掏点钱啊!!

出0入0汤圆

 楼主| 发表于 2011-12-30 22:59:22 | 显示全部楼层
突然人品爆发,ansys分析那些加热板是39.2度,做出来的实际温度为39-41度,刚好在需要的范围内,我辛辛苦苦堆码设计的温控器连样品都免了,可怜我几十条18b20探头,全部埋到水泥里面做装饰品了。下面是前段时间的堆码结果,接下来要做的就是抽水控制器了。
点击此处下载 ourdev_709156ZN6ZG6.rar(文件大小:291K) (原文件名:tempertuer_control.rar)

出0入0汤圆

 楼主| 发表于 2011-12-30 23:01:25 | 显示全部楼层
回复【60楼】bin8362422
不错不错,慢慢实现全自动化!
自动喂食,自动清扫…………            盼望着吃肉的时候少掏点钱啊!!
-----------------------------------------------------------------------

今年疫情不轻,明年年中估计还得吃伤心肉,不过清明钱肉价应该不会上扬太厉害,多吃点吧。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-2 08:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表