久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 51單片機L298N控制小電機,程序修改 [打印本頁]

作者: Scorpionx    時間: 2019-10-28 19:29
標題: 51單片機L298N控制小電機,程序修改
用51單片機做恒溫實驗,DS18B20讀取溫度,低于溫度下限繼電器吸合加熱棒加熱,高于溫度上限啟動風扇降溫,
啟動風扇用L298N,
師傅要求從單片機引腳輸出高低電平控制
目前降溫如何用L298N沒有一點思緒求大神指點程序如何修改,還有就是L298N如何接
現有程序如下

#include <reg52.h>
#include <ds18b20.h>        //引入DS18B20頭文件

//引腳定義:               
sbit JDQ=P1^4;                //繼電器控制
sbit SMG_q = P1^0;        //定義數碼管陽級控制腳(千位)
sbit SMG_b = P1^1;        //定義數碼管陽級控制腳(百位)
sbit SMG_s = P1^2;        //定義數碼管陽級控制腳(十位)
sbit SMG_g = P1^3;        //定義數碼管陽級控制腳(個位)

//變量定義:
unsigned char ly_dis[4];//定義顯示緩沖區
unsigned char DSU=30;        //上線溫度
unsigned char DSD=25;        //下線溫度
code unsigned char table[]=
                        {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
                                        //表:共陽數碼管 0-9
unsigned char l_posit=0;        //顯示位置

//函數聲明:
void display(void);//顯示函數,顯示緩沖區內容
void delay(void);

//主函數
void main()
{        
        unsigned int i=0;
        float tt;
        int ltemp;
        while(1){
                if(i==0)
                        tmpchange();              //溫度轉換
                if(i==100){
                        tt=tmp()*0.0625;          //得到真實十進制溫度值,因為DS18B20
                                                                //可以精確到0.0625度,所以讀回數據的最低位代表的是0.0625度。
                        if(tt<=DSD)                //低于下線溫度啟動繼電器
                                JDQ=0;               
                        if(tt>=DSU)                //達到上線溫度關閉繼電器
                                JDQ=1;

                          ltemp=tt*10+0.5;           //放大十倍,這樣做的目的將小數點后第一位也轉換為可顯示數字,同時進行一個四舍五入操作。
                        if(ltemp<0){                //判斷第一位顯示整數還是負號
                                ly_dis[0]=0xbf;
                                ltemp=0-ltemp;        
                        }
                        else
                                ly_dis[0]=ltemp/1000;//顯示百位值
                        ltemp=ltemp%1000;
                        ly_dis[1]=ltemp/100;        //顯示溫度十位值
                        ltemp=ltemp%100;
                        ly_dis[2]=ltemp/10;                //顯示溫度個位值
                        ly_dis[3]=ltemp%10;                //顯示小數點后一位
                }
                i++;
                if(i==3000)
                        i=0;
                display();        //調用顯示        
                delay();        
        }
}

//顯示函數,參數為顯示內容
void display()
{
        P0=0XFF;                        //        
        switch(l_posit){
        case 0:                //選擇千位數碼管,關閉其它位
                SMG_q=0;
                SMG_b=1;        
                SMG_s=1;               
                SMG_g=1;
                P0=table[ly_dis[0]];        //輸出顯示內容
                break;
        case 1:                //選擇百位數碼管,關閉其它位
                SMG_q=1;
                SMG_b=0;        
                SMG_s=1;               
                SMG_g=1;
                P0=table[ly_dis[1]];
                break;
        case 2:                //選擇十位數碼管,關閉其它位
                SMG_q=1;
                SMG_b=1;        
                SMG_s=0;               
                SMG_g=1;
                P0=table[ly_dis[2]]&0x7f;
                break;
        case 3:                //選擇個位數碼管,關閉其它位
                SMG_q=1;
                SMG_b=1;        
                SMG_s=1;               
                SMG_g=0;
                P0=table[ly_dis[3]];
                break;
        }
        l_posit++;                //每調用一次將輪流顯示一位
        if(l_posit>3)
                l_posit=0;        
}

//延時子函數,短暫延時
void delay(void){               
        unsigned char i=10;
        while(i--);
}

IMG_20191028_191812.jpg (3.9 MB, 下載次數: 45)

IMG_20191028_191812.jpg

作者: New_star    時間: 2019-10-28 21:38
你查下L298N,試著編看看。做單片機很多都是試出來的!(我也是新手)
作者: 來51學習的    時間: 2019-10-28 21:44
你好!
1、L298模塊有輸入、輸出和使能控制
2、輸入端和使能端,接單片機IO口
3、輸出端接電機(風扇)
4、L298模塊,一般供電12V,風扇也選12V
作者: 1915134278    時間: 2019-11-2 14:56
IN1和IN2輸入PWM,他們控制的是OUT1和OUT2,OUT1和2接同一個電機,IN3和IN4同理
作者: man1234567    時間: 2019-11-4 21:44
如果只是低溫加熱高溫散熱的話,用兩個口驅動兩個繼電器就可以了,一個開關電熱器一個開關電風扇。程序就是讀溫度,在相應的溫度區域驅動存放易燃繼電器就可以。
L298N控制小電機是控制2路電機正反轉的,你根本不需要。另從圖上看,模塊的2個使能口全部跳在高電平上已經有效,只要控制IN1-4口就可以在OUT1-4上控制兩路電機正反轉了。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩电影中文字幕 | 国产一级视频在线播放 | 福利网站在线观看 | 国产乱码精品一区二区三区五月婷 | 欧美不卡网站 | 免费av电影网站 | 国产欧美在线视频 | 一区二区三区视频在线观看 | 久久国产秒| 欧美一级全黄 | 国产一区二区影院 | 成人在线不卡 | 久久久久久久av | 国产精品久久av | 日韩成人影院 | 一级黄色片在线看 | 青青久在线视频 | 九九热精品视频 | 精品无码三级在线观看视频 | 久久精品免费一区二区 | 日日操操| 男人av的天堂 | www.日本精品 | 国产成人影院 | 日韩超碰在线 | 羞羞视频免费观 | 一区二区三区国产视频 | 亚洲欧美在线免费观看 | 国产精品久久久久久二区 | 日韩欧美精品在线 | 国产情侣激情 | 99久久99久久精品国产片果冰 | 欧美日韩专区 | 欧美在线视频一区 | 成人视屏在线观看 | 精品国产免费人成在线观看 | 一区在线免费视频 | 鲁视频| av在线天天 | 国产视频福利在线观看 | 久草视频观看 |