- 使用arduino IDE的範例程式Fade, 使用D13作為LED。
- arduino nano只會顯示亮暗, 沒有漸進變化過程
- arduino micro能以on-board LED顯示漸亮漸暗
- 原因分析:
nano 的 D13 不支援PWM
micro 的 D13支援PWM - arduino接上ubs電源時, on-board LED 一直快速閃爍, 線路連接的電子零件沒有通電運作
- 這是透過USB供電時, 短路防護的信號
- 但要留意, 若是透過RAW供電時, 則沒有短路防護。
- 使用Serial.printf("%4.2f", floatVar) 得到結果為 ?
- 原因分析:
arduino IDE只支援C語法, 但是不支援float的格式語法, 必須另外寫程式來格式化輸出 - 我的解決方法: (可以放在setup段來測試)
Serial.begin(9600);
//sprintf format test loop
float celsius=-55.25;
float fahrenheit;
while(celsius<=155){
fahrenheit = celsius * 1.8 + 32.0;
Serial.print(celsius);Serial.print(" ");
Serial.print(fahrenheit);Serial.print(" ");
char *numC=(char *)"000.00C ";
char *numF=(char *)"000.00F ";
//arduino的printf format不支援float, double的格式, ex: %4.2f , 輸出會出現?
//Serial.printf("%4.2fC %4.2fF", celsius, fahrenheit);
sprintf(numC, "%4i.%02i", int(celsius), int(abs(celsius-int(celsius))*100));
sprintf(numF, "%4i.%02i", int(fahrenheit), int(abs(fahrenheit-int(fahrenheit))*100));
Serial.print(numC);Serial.print(" ");Serial.print(numF);Serial.println(" ");
celsius+=3.97;
}
- 在LCD上, 以單一字元顯示 ℃ 或 ℉
- 定義℃ 或℉ 符號
- 在LCD上印出自定符號
- //在程式宣告段
byte degC[8] = {
B01000,
B10100,
B01000,
B00011,
B00100,
B00100,
B00011,
};
byte degF[8] = {
B01000,
B10100,
B01000,
B00111,
B00100,
B00111,
B00100,
};
//在setup()段,
lcd.createChar(0, degC);
lcd.createChar(1, degF);
//要印出字元時
lcd.write(byte(0)); //印出 ℃
lcd.write(byte(1)); //印出 ℉
2018年3月6日 星期二
關於及arduino的一些瑣碎小事
訂閱:
文章 (Atom)