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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4652|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)L298N控制小電機(jī),程序修改

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 10 黑幣 回復(fù)本帖可獲得 2 黑幣獎(jiǎng)勵(lì)! 每人限 1 次(中獎(jiǎng)概率 60%)
跳轉(zhuǎn)到指定樓層
樓主
ID:622126 發(fā)表于 2019-10-28 19:29 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
用51單片機(jī)做恒溫實(shí)驗(yàn),DS18B20讀取溫度,低于溫度下限繼電器吸合加熱棒加熱,高于溫度上限啟動(dòng)風(fēng)扇降溫,
啟動(dòng)風(fēng)扇用L298N,
師傅要求從單片機(jī)引腳輸出高低電平控制
目前降溫如何用L298N沒有一點(diǎn)思緒求大神指點(diǎn)程序如何修改,還有就是L298N如何接
現(xiàn)有程序如下

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

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

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

//函數(shù)聲明:
void display(void);//顯示函數(shù),顯示緩沖區(qū)內(nèi)容
void delay(void);

//主函數(shù)
void main()
{        
        unsigned int i=0;
        float tt;
        int ltemp;
        while(1){
                if(i==0)
                        tmpchange();              //溫度轉(zhuǎn)換
                if(i==100){
                        tt=tmp()*0.0625;          //得到真實(shí)十進(jìn)制溫度值,因?yàn)镈S18B20
                                                                //可以精確到0.0625度,所以讀回?cái)?shù)據(jù)的最低位代表的是0.0625度。
                        if(tt<=DSD)                //低于下線溫度啟動(dòng)繼電器
                                JDQ=0;               
                        if(tt>=DSU)                //達(dá)到上線溫度關(guān)閉繼電器
                                JDQ=1;

                          ltemp=tt*10+0.5;           //放大十倍,這樣做的目的將小數(shù)點(diǎn)后第一位也轉(zhuǎn)換為可顯示數(shù)字,同時(shí)進(jìn)行一個(gè)四舍五入操作。
                        if(ltemp<0){                //判斷第一位顯示整數(shù)還是負(fù)號(hào)
                                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;                //顯示溫度個(gè)位值
                        ly_dis[3]=ltemp%10;                //顯示小數(shù)點(diǎn)后一位
                }
                i++;
                if(i==3000)
                        i=0;
                display();        //調(diào)用顯示        
                delay();        
        }
}

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

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

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

IMG_20191028_191812.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:631687 發(fā)表于 2019-10-28 21:38 | 只看該作者
你查下L298N,試著編看看。做單片機(jī)很多都是試出來的。ㄎ乙彩切率郑
回復(fù)

使用道具 舉報(bào)

板凳
ID:610681 發(fā)表于 2019-10-28 21:44 | 只看該作者
你好!
1、L298模塊有輸入、輸出和使能控制
2、輸入端和使能端,接單片機(jī)IO口
3、輸出端接電機(jī)(風(fēng)扇)
4、L298模塊,一般供電12V,風(fēng)扇也選12V
回復(fù)

使用道具 舉報(bào)

地板
ID:496421 發(fā)表于 2019-11-2 14:56 | 只看該作者
IN1和IN2輸入PWM,他們控制的是OUT1和OUT2,OUT1和2接同一個(gè)電機(jī),IN3和IN4同理
回復(fù)

使用道具 舉報(bào)

5#
ID:584814 發(fā)表于 2019-11-4 21:44 | 只看該作者
如果只是低溫加熱高溫散熱的話,用兩個(gè)口驅(qū)動(dòng)兩個(gè)繼電器就可以了,一個(gè)開關(guān)電熱器一個(gè)開關(guān)電風(fēng)扇。程序就是讀溫度,在相應(yīng)的溫度區(qū)域驅(qū)動(dòng)存放易燃繼電器就可以。
L298N控制小電機(jī)是控制2路電機(jī)正反轉(zhuǎn)的,你根本不需要。另從圖上看,模塊的2個(gè)使能口全部跳在高電平上已經(jīng)有效,只要控制IN1-4口就可以在OUT1-4上控制兩路電機(jī)正反轉(zhuǎn)了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品欧美视频 | 91精品国产综合久久久久 | 欧美99久久精品乱码影视 | 国产精品久久久久久久粉嫩 | 日韩精品一区二区三区中文在线 | 天天操夜夜拍 | 成年人免费在线视频 | 一区二区三区四区视频 | 在线观看黄免费 | 亚洲高清视频在线 | 免费在线视频a | 久久专区 | 91久久精品国产91久久 | 夜色www国产精品资源站 | 国产日韩精品在线 | av在线一区二区三区 | 美女黄网 | 中文字幕乱码一区二区三区 | 欧美伊人| 亚洲国产中文字幕 | 999久久久久久久久 国产欧美在线观看 | 久久精品中文 | 亚洲一区二区视频 | 中文字幕 欧美 日韩 | 欧美高清视频一区 | 不卡一二区 | 国产精品久久久久久一区二区三区 | 亚洲电影一级片 | 天天躁人人躁人人躁狂躁 | 久久91av | 在线观看免费观看在线91 | 日韩中文字幕在线播放 | 免费观看一级毛片 | 97久久精品午夜一区二区 | 99精品国产一区二区三区 | 日韩视频在线一区二区 | 欧美另类视频 | 免费在线看a | 亚洲精品v日韩精品 | 日韩视频在线观看一区二区 | 国内精品久久精品 |