相關(guān)知識
**紅外計數(shù)測速傳感器:**一般由三部分組成:光的發(fā)射、光的接收及信號放大。輸入的電信號驅(qū)動發(fā)光二極管(LED),使之發(fā)出一定波長的光,被光探測器接收而產(chǎn)生光電流,再經(jīng)過進(jìn)一步放大后輸出。
其工作原理為通過對紅外發(fā)射光的阻斷和導(dǎo)通,在紅外接收管感應(yīng)出的電流變化來實現(xiàn)開和關(guān)的判斷。有遮擋,輸出高電平;無遮擋,輸出低電平。
TM1637四位數(shù)碼管模塊: 是一個12腳的帶時鐘點(diǎn)的4位共陽數(shù)碼管(0.36英寸)的顯示模塊,驅(qū)動芯片為TM1637,只需2根信號線即可使單片機(jī)控制4位8段數(shù)碼管。可以免去我們前面繁瑣的接線。
電路搭建
所需材料
ArduinoUno * 1
紅外計數(shù)測速傳感器 * 1
TM1637四位數(shù)碼管模塊 * 1
電路連接
紅外計數(shù)測速傳感器接線:
VCC------>Arduino的+5V
GND------>Arduino的GND
DO------>Arduino的信號端
TM1637四位數(shù)碼管模塊接線:
CLK------>Arduino的信號端
DIO----->Arduino的信號端
VCC------>Arduino的+5V
GND------>Arduino的GND
程序編寫
練習(xí)一:計數(shù)儲錢罐
使用紅外計數(shù)測速傳感器制作一個能夠計數(shù)的儲蓄罐。
圖形化****方式:
代碼方式:
在使用代碼編程之前,我們需要先添加TM1637四位數(shù)碼管模塊的庫文件。
點(diǎn)擊arduinoIDLE中的工具-->庫文件管理,在列表中選擇SevenSegmentTM1637進(jìn)行安裝。
/* 項目名稱:計數(shù)儲蓄罐
* 項目時間:2022.03.02
* 項目作者:MRX
*/
#include < SevenSegmentTM1637.h >
int count = 0;
int sensor_Pin = 6;
SevenSegmentTM1637 display(2,3);
void setup(){
count = 0;
display.begin();
display.setBacklight(20);
display.clear();
pinMode(sensor_Pin, INPUT);
}
void loop(){
display.print(count);
if (digitalRead(sensor_Pin)) {
delay(1000);
count = count + 1;
}
}
練習(xí)二:斷電保留計數(shù)的儲蓄罐
在練習(xí)一的基礎(chǔ)上,實現(xiàn)斷電后,能夠記住之前統(tǒng)計的數(shù)量。并在這個數(shù)量基礎(chǔ)上繼續(xù)計數(shù)。
圖形化方式:
代碼方式:
/* 項目名稱:斷電保留計數(shù)儲蓄罐
* 項目時間:2022.03.02
* 項目作者:MRX
*/
#include < SevenSegmentTM1637.h >
#include < EEPROM.h >
int count = 0;
int sensor_Pin = 6;
SevenSegmentTM1637 display(2,3);
void setup(){
count = 0;
display.begin();
display.setBacklight(20);
display.clear();
EEPROM.get(0, count);
pinMode(sensor_Pin, INPUT);
}
void loop(){
display.print(count);
if (digitalRead(sensor_Pin)) {
delay(1000);
count = count + 1;
EEPROM.put(0, count);
}
}
相關(guān)知識:
**EEPROM Get: **從EEPROM獲得一個值,表達(dá)式為EEPROM.get(address, a)
**EEPROM Put: **用變量來把一些數(shù)值放到EEPROM里,表達(dá)式為EEPROM.put(address, a)
**EEPROM Write: **保存對應(yīng)的值到EEPROM,表達(dá)式為EEPROM.write(address, a);
EEPROM Clear: 清除EEPROM的內(nèi)容,其實就是把EEPROM中每一個字節(jié)寫入0,表達(dá)式為EEPROM.write(address, 0);
EEPROM Read: 讀取EEPROM,表達(dá)式為EEPROM.read(address);
-
發(fā)光二極管
+關(guān)注
關(guān)注
13文章
1192瀏覽量
66150 -
EEPROM
+關(guān)注
關(guān)注
9文章
1008瀏覽量
81350 -
Arduino
+關(guān)注
關(guān)注
187文章
6461瀏覽量
186524 -
光探測器
+關(guān)注
關(guān)注
1文章
39瀏覽量
10849 -
TM1637
+關(guān)注
關(guān)注
0文章
21瀏覽量
9405
發(fā)布評論請先 登錄
相關(guān)推薦
評論