久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
NTC熱敏電阻溫度Arduino采樣程序
[打印本頁]
作者:
51heiszx
時間:
2019-4-12 08:48
標題:
NTC熱敏電阻溫度Arduino采樣程序
1. 硬件平臺: Arduino UNO(ATMega328P); 2. 編譯器(IDE): Arduino 1.88
3. 電路連接方式:+5V----10K上拉電阻----NTC(10K,B3950)----GND
單片機源程序如下:
/************************************************************
Copyright (C), 2019-2019, xxxx Co., Ltd.
FileName:
Description: // AD_NTC測試
Version: // 版本信息:1.0
Function List: //
************************************************************/
// 硬件: Arduino UNO(ATMega328P); 編譯器(IDE): Arduino 1.88
#include <avr/pgmspace.h>
#include <MsTimer2.h>
#define RS232_DUBEG //開啟/關閉 串口調試
/* ATMega328(比如UNO)有三個計時器timer 0-2, 一些延時語句比如delay(), millis() micros() 用的是timer0,
6個PWM輸出腳當然也要用這些計時器,它們是這樣分配的:
Pins 5 and 6: timer0
Pins 9 and 10: timer1
Pins 11 and 3: timer2
*/
#define PWM1_PIN 9 //3PIN PWMOUT
#define PWM2_PIN 10 //5PIN PWMOUT
#define AD_IN A0 //電路連接方式:+5V----10K上拉電阻----NTC(10K,B3950)----GND
#define NANO_LED 13 //NANO板載LED連接13腳
//定義數據傳輸時間 (ATMega328P運行在16MHz下,一個時鐘周期的時間為1/16,000,000s = 1/16,000m s= 1/16us = 62.5ns ,一個nop是62.5ns)
#define NOP asm("nop")
boolean _1msFlg = 0;
boolean bBlinkSta = 0;
unsigned int uiAD_Value;
unsigned char ucPWM_Value;
char cNTC_Temp = 0;
struct NTC_TEMP
{
char cTemp;
unsigned int uiAD;
};
const struct NTC_TEMP NTC_Temp_Tab[] PROGMEM = //電路連接方式:+5V----10K上拉電阻----NTC(10K,B3950)----GND
{
{-40,0x3E3},{-39,0x3E1},{-38,0x3DF},{-37,0x3DD},{-36,0x3DA},{-35,0x3D8},{-34,0x3D5},{-33,0x3D3},{-32,0x3D0},{-31,0x3CD},
{-30,0x3CA},{-29,0x3C6},{-28,0x3C3},{-27,0x3BF},{-26,0x3BB},{-25,0x3B8},{-24,0x3B3},{-23,0x3AF},{-22,0x3AA},{-21,0x3A6},
{-20,0x3A1},{-19,0x39C},{-18,0x396},{-17,0x391},{-16,0x38B},{-15,0x385},{-14,0x37F},{-13,0x378},{-12,0x372},{-11,0x36B},
{-10,0x364},{-9 ,0x35C},{-8 ,0x355},{-7 ,0x34D},{-6 ,0x345},{-5 ,0x33D},{-4 ,0x334},{-3 ,0x32C},{-2 ,0x323},{-1 ,0x31A},
{0 ,0x310},{1 ,0x307},{2 ,0x2FD},{3 ,0x2F3},{4 ,0x2E9},{5 ,0x2DF},{6 ,0x2D5},{7 ,0x2CA},{8 ,0x2C0},{9 ,0x2B5},
{10 ,0x2AA},{11 ,0x29F},{12 ,0x294},{13 ,0x289},{14 ,0x27D},{15 ,0x272},{16 ,0x267},{17 ,0x25B},{18 ,0x250},{19 ,0x244},
{20 ,0x239},{21 ,0x22D},{22 ,0x222},{23 ,0x217},{24 ,0x20B},{25 ,0x200},{26 ,0x1F5},{27 ,0x1EA},{28 ,0x1DF},{29 ,0x1D4},
{30 ,0x1C9},{31 ,0x1BE},{32 ,0x1B3},{33 ,0x1A9},{34 ,0x19E},{35 ,0x194},{36 ,0x18A},{37 ,0x180},{38 ,0x176},{39 ,0x16D},
{40 ,0x163},{41 ,0x15A},{42 ,0x151},{43 ,0x148},{44 ,0x13E},{45 ,0x137},{46 ,0x12E},{47 ,0x126},{48 ,0x11E},{49 ,0x116},
{50 ,0x10E},{51 ,0x107},{52 ,0x100},{53 ,0xF8 },{54 ,0xF1 },{55 ,0xEB },{56 ,0xE4 },{57 ,0xDE },{58 ,0xD7 },{59 ,0xD1 },
{60 ,0xCB },{61 ,0xC5 },{62 ,0xC0 },{63 ,0xBA },{64 ,0xB5 },{65 ,0xB0 },{66 ,0xAB },{67 ,0xA6 },{68 ,0xA1 },{69 ,0x9C },
{70 ,0x98 },{71 ,0x93 },{72 ,0x8F },{73 ,0x8B },{74 ,0x87 },{75 ,0x83 },{76 ,0x80 },{77 ,0x7C },{78 ,0x78 },{79 ,0x75 },
{80 ,0x72 },{81 ,0x6E },{82 ,0x6B },{83 ,0x68 },{84 ,0x65 },{85 ,0x62 },{86 ,0x60 },{87 ,0x5D },{88 ,0x5A },{89 ,0x58 },
{90 ,0x55 },{91 ,0x53 },{92 ,0x51 },{93 ,0x4E },{94 ,0x4C },{95 ,0x4A },{96 ,0x48 },{97 ,0x46 },{98 ,0x44 },{99 ,0x42 },
{100,0x41 },{101,0x3F },{102,0x3D },{103,0x3B },{104,0x3A },{105,0x38 },
};
/*********************************************
//NTC-溫度轉換
*********************************************/
char NTC2Temp(unsigned int NTC_AD_Value)
{
unsigned char i;
char temp = 0; // -40 --- 105 C
for(i = 0; i < sizeof(NTC_Temp_Tab) / (sizeof(NTC_Temp_Tab[0].cTemp) + sizeof(NTC_Temp_Tab[0].uiAD)); i++)
{
if(pgm_read_word(&NTC_Temp_Tab[i].uiAD) <= NTC_AD_Value)
{
temp = pgm_read_byte(&NTC_Temp_Tab[i].cTemp);
break;
}
}
return(temp);
}
/*********************************************
//TIMER2中斷任務
*********************************************/
void Timer2Task(void)
{
_1msFlg = 1;
}
/*********************************************
//初始化
*********************************************/
void setup()
{
#ifdef RS232_DUBEG
Serial.begin(9600);
#endif
pinMode(PWM1_PIN,OUTPUT);
pinMode(PWM2_PIN,OUTPUT);
pinMode(NANO_LED,OUTPUT);
pinMode(AD_IN,INPUT);
MsTimer2::set(1, Timer2Task); // 1ms
MsTimer2::start();
}
/*********************************************
//主程序
*********************************************/
void loop()
{
if ( _1msFlg)
{
#define _500MS_CNT 500
#define _100MS_CNT 100
static unsigned int ui500msCnt = _500MS_CNT;
static unsigned char uc100msCnt = _100MS_CNT;
unsigned char i;
_1msFlg = 0;
if (--ui500msCnt == 0)
{
ui500msCnt = _500MS_CNT;
if (bBlinkSta)
{
bBlinkSta = 0;
digitalWrite(NANO_LED,0);
}
else
{
bBlinkSta = 1;
digitalWrite(NANO_LED,1);
}
uiAD_Value = analogRead(AD_IN);
//ucPWM_Value = (unsigned char)(uiAD_Value >> 2);
//analogWrite(PWM1_PIN,ucPWM_Value);
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
AD_NTC.rar
(2.2 KB, 下載次數: 125)
2019-4-12 08:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
51heiszx
時間:
2019-4-12 09:35
NTC與AD采樣值對應表:
http://www.zg4o1577.cn/bbs/dpj-156080-1.html
作者:
SayBey
時間:
2019-5-14 15:04
謝謝你的資料,非常感謝!
作者:
如癡百感生
時間:
2019-8-6 16:55
前來學習 很需要這份資料。 非常感謝!
作者:
dar_cj
時間:
2019-10-5 19:19
正好在學習這個
作者:
dar_cj
時間:
2019-10-5 20:49
請問一下{100,0x41 },{101,0x3F },{102,0x3D },{103,0x3B },{104,0x3A },{105,0x38 },這種數據是怎么得出來的呢
假如我要得到200的數據應該是多少呢
作者:
碌碌無為
時間:
2020-1-14 23:24
先收藏了,將來應該可以用到;感謝樓主分享。
作者:
vvvvd
時間:
2020-4-15 09:44
感謝up
作者:
迷彩王
時間:
2020-11-25 21:45
有接線圖么
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国内精品一区二区
|
久久精品国产一区二区电影
|
91精品国产91久久久久久
|
久久久久久亚洲精品
|
久久99蜜桃综合影院免费观看
|
日韩欧美一区在线
|
亚洲精品一区二三区不卡
|
cao在线
|
国产精品久久久精品
|
精品av
|
成人免费网站视频
|
国产精品久久av
|
免费国产黄网站在线观看视频
|
日一区二区
|
亚洲欧美日韩精品久久亚洲区
|
99精品国产一区二区三区
|
国产精品不卡一区二区三区
|
国产精品一区二区不卡
|
91看片网
|
成人毛片视频免费
|
久久久久久久久久爱
|
中文字幕一区二区三区不卡在线
|
国产高清免费视频
|
午夜小视频在线播放
|
久久久亚洲一区
|
成人在线精品视频
|
国产中文字幕在线观看
|
午夜精品影院
|
99成人免费视频
|
一区二区三区在线
|
欧美精品一二三
|
国产精品久久久久久模特
|
91精品国产麻豆
|
国产成人免费视频网站视频社区
|
国产中文字幕网
|
欧美一区二区三区在线
|
91麻豆精品国产91久久久更新资源速度超快
|
亚洲 成人 av
|
久久精品免费观看
|
黄色一级视频免费
|
成人在线免费
|