Arduino代碼
以下是一個(gè)簡(jiǎn)單的草圖,該草圖從Arduino的ADC引腳中讀取傳感器數(shù)據(jù),并在串口顯示器上打印輸出。對(duì)于大多數(shù)項(xiàng)目,可以滿足多數(shù)需求。
// Change these constants according to your project's design
const float VCC = 5; // voltage at Ardunio 5V line
const float R_DIV = 47000.0; // resistor used to create a voltage divider
const float flatResistance = 25000.0; // resistance when flat
const float bendResistance = 100000.0; // resistance at 90 deg
void setup() {
Serial.begin(9600);
pinMode(flexPin, INPUT);
}
void loop() {
// Read the ADC, and calculate voltage and resistance from it
int ADCflex = analogRead(flexPin);
float Vflex = ADCflex * VCC / 1023.0;
float Rflex = R_DIV * (VCC / Vflex - 1.0);
Serial.println("Resistance: " + String(Rflex) + " ohms");
// Use the calculated resistance to estimate the sensor's bend angle:
float angle = map(Rflex, flatResistance, bendResistance, 0, 90.0);
Serial.println("Bend: " + String(angle) + " degrees");
Serial.println();
delay(500);
}
如果一切工作正常,則在折彎彎曲傳感器時(shí),您應(yīng)該看到電阻的變化和估算的角度。

代碼說(shuō)明
首先在草圖中定義彎曲傳感器和下拉電阻連接的Arduino引腳編號(hào)。
const int flexPin = A0;
接下來(lái),定義了幾個(gè)常數(shù):VCC是系統(tǒng)電壓,R_DIV是用于創(chuàng)建分壓器的阻值,flatResistance和bendResistance是彎曲傳感器在水平和90°彎曲時(shí)的阻值。確保您準(zhǔn)確設(shè)置這些常數(shù)。
const float VCC = 5;
const float R_DIV = 47000.0;
const float flatResistance = 25000.0;
const float bendResistance = 100000.0;
在setup()函數(shù)中,我們將初始化串口通信,并將A0引腳設(shè)置為輸入。
void setup() {
Serial.begin(9600);
pinMode(flexPin, INPUT);
}
在 loop() 函數(shù)中,我們首先進(jìn)行ADC讀數(shù)。
int ADCflex = analogRead(flexPin);
當(dāng)Arduino將此模擬電壓轉(zhuǎn)換為數(shù)字量時(shí),它實(shí)際上將其轉(zhuǎn)換為范圍為0到1022的10位數(shù)量。因此,為了計(jì)算實(shí)際輸出電壓,我們使用以下公式:
float Vflex = ADCflex * VCC / 1023.0;
接下來(lái),我們使用分壓公式計(jì)算彎曲傳感器的電阻,并將其顯示在串口顯示器上。
float Rflex = R_DIV * (VCC / Vflex - 1.0);
Serial.println("Resistance: " + String(Rflex) + " ohms");
最后,我們使用計(jì)算出的阻值來(lái)估算傳感器的彎曲角度。為此,我們使用IDE的內(nèi)置map()函數(shù)。
map()函數(shù)映射并將傳感器的阻值轉(zhuǎn)換為傳感器的彎曲角度。因此,當(dāng)我們調(diào)用*map(Rflex, flatResistance, bendResistance, 0, 90.0)*時(shí),flatResistance值將映射到0°,bendResistance將映射到90°。
float angle = map(Rflex, flatResistance, bendResistance, 0, 90.0);
Serial.println("Bend: " + String(angle) + " degrees");
Serial.println();
-
顯示器
+關(guān)注
關(guān)注
22文章
5146瀏覽量
144403 -
代碼
+關(guān)注
關(guān)注
30文章
4968瀏覽量
73990 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
196947
發(fā)布評(píng)論請(qǐng)先 登錄
如何使用傳感器開(kāi)發(fā)板加快您的設(shè)計(jì)速度
基于arduino開(kāi)發(fā)板FRDM-KL25Z脈搏心率傳感器
如何將傾斜傳感器連接到Arduino開(kāi)發(fā)板上?
Arduino開(kāi)發(fā)板使用DHT11溫濕度傳感器的方法 精選資料分享
Arduino開(kāi)發(fā)板使用DHT11溫濕度傳感器的方法 精選資料分享
如何去制作一種基于Arduino開(kāi)發(fā)板和壓力傳感器的肺活量計(jì)
請(qǐng)問(wèn)Arduino開(kāi)發(fā)板如何連接傾斜傳感器?
Arduino開(kāi)發(fā)板的測(cè)試程序和土壤濕度傳感器的資料詳細(xì)說(shuō)明
Arduino的各種常用開(kāi)發(fā)板
如何使用Arduino開(kāi)發(fā)板和溫度傳感器實(shí)現(xiàn)實(shí)時(shí)氣象站?
配置esp8266開(kāi)發(fā)板的Arduino開(kāi)發(fā)環(huán)境
Arduino 下初試 stm32開(kāi)發(fā)板
如何將Arduino板與不同的傳感器連接
利用Arduino開(kāi)發(fā)板連接彎曲傳感器的方法-上
Arduino傳感器–ROHM傳感器評(píng)估套件概覽
利用Arduino開(kāi)發(fā)板連接彎曲傳感器的方法-下
評(píng)論