愛體驗認證

顯示具有 程式 標籤的文章。 顯示所有文章
顯示具有 程式 標籤的文章。 顯示所有文章

2019年8月7日 星期三

Arduino程式語法參考_TCweng


Arduino 程式參考語法


結構:


  1. if
  2. if...else
  3. for


持續增加中,上一次更新時間 2019.8.8 , 11:33




for - arduino程式語法參考_TCweng

for


for 迴圈通常用來執行一連串的重複動作,且配合一個計數器來判斷何時停止這個迴圈的動作,因齊因其擁有重複執行動作的特性,也常被用來處理陣列的資料

for ( 定義計數器,結束條件,計數器計算 ){
}

for ( int a = 1 , a<500 , a++){
  Serial.println(a);
}


以上程式會在序列埠中依序顯示出1~500的數字,也就是說a小於500時,for迴圈裡的程式就會一直被執行,而且執行一次a就會加一

if...else - arduino程式語法參考_TCweng

if...else


if...else 程式在執行時更細微的區分相對應數值的執行動作,例如當x值大於50時要讓燈泡保持明亮,而低於50時則關閉燈泡,程式可以這樣寫

if (x > 50){
  digitalWrite(13,HIGH);
}
else{
  digitalWrite(13,LOW);
}



甚至近一步區分x值是在25~50的區間要使燈泡閃爍,可以添加else if 程式,來進一步判斷x值的大小

if (x > 50){
  digitalWrite(13,HIGH);  //高於50時,保持燈泡明亮
}
else if (x>25){
  digitalWrite(13,HIGH);  //25~50區間時,讓燈泡閃爍
  delay(1000);
  digitalWrite(13,LOW);
  delay(1000);
}
else{
  digitalWrite(13,LOW);  //低於25,讓燈泡保持關閉
}


回總攬
https://tcweng.blogspot.com/2019/08/arduinotcweng.html

loop() - arduino程式語法參考_TCweng

loop()


在Arduino通電並執行完setup()迴圈裡的程式後,便會換成執行loop()迴圈裡的程式,而且這個迴圈裡的程式便會一直重複執行


範例:

int Pin = 3;

void setup(){
  Serial.begin(9600);
  pinMode(Pin, INPUT);

}

void loop(){
  digitalWrite(Pin,HIGH);
  delay(1000);
  digitalWrite(Pin,LOW);
  delay(1000);

}


以上執行時,3號腳位會間隔一秒執行高電壓和低電壓的交替輸出,如果在3號腳位插上一顆燈泡,也就會是間隔一秒的亮跟暗


回總攬



setup() - arduino程式語法參考_TCweng

setup()


在"setup"迴圈裡,程式只會在Arduino通電時執行一次,因此腳位的定義(輸入,輸出),感應器的初始化設定通常在這裡執行

2019年5月5日 星期日

TCweng_Arduino 16×2LCD顯示器 最完整教學 地址錯誤全搞定

要讓Arduino有顯示的功能
其中最完整的顯示方式之一
就是使用LCD來顯示各種數值或文字

購買的時候建議購買有背板(右圖)的顯示器
用起來會方便很多
尤其是接線的部分
不然一次要接十幾條線真的會眼花撩亂
而且還會占用到很多的arduino接腳....
「arduino lcd」的圖片搜尋結果「arduino lcd」的圖片搜尋結果
!!在做這個專題之前有以下幾點必須注意
1. 完成所有步驟後如果沒有顯示文字,須用螺絲起子調整背板的亮度
2. 購買時建議購買有標註地址的顯示器,例如0×3F...等等,當然如果沒有也是可以使用,只是可能要多試幾種


第一個步驟:接線

VCC  >>  5V
GND  >>  GND
SDA  >>  A4
SCL  >>  A5

!!!!如果VCC接3.3V也可以使用
!!!!但會降低亮度,須用螺絲起子調整背板的亮度




第二個步驟:匯入程式庫
匯入LiquidCrystal_I2C程式庫

在Arduino IDE中點擊
草稿碼->匯入程式庫->管理程式庫


在上方搜尋輸入"LiquidCrystal I2C"
找到LiquidCrystal I2C進行安裝




安裝完成後就可以開始寫程式了😋😋

#include <LiquidCrystal_I2C.h> 
#include <Wire.h> 
LiquidCrystal_I2C lcd(0x27,16,2);  //LCD位置0x27,LCD大小16*2
void setup() {
  lcd.init(); //初始化LCD 
  lcd.backlight(); //開啟背光
  lcd.print("Hello World!"); //顯示Hello World!
}
void loop() {
  
}



以上程式如果無法使用

先調整背光

如果不行

請把0x27改成0x3F

在不行的話就改成
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
一樣0x27跟0x3F都試試看


這些調整是因為每家廠商做出來的東西不同
需要進行不同的控制方式或地址






最後只要調整背光就可以看到文字囉






2019年5月3日 星期五

TCweng_switch,if迴圈控制LED

Arduino要讓LED點亮的方式有很多
每個專題也有不同的顯示目的
因此寫程式的方式也就百百種
所以今天TC就教大家
如何用if迴圈跟switch迴圈輪流點亮LED
提供大家寫更大專題的小地基


首先接線的部分如下圖






程式

int ledPin = 3;        // LED 接腳
int ButtonPin = 2;          // 按鈕接腳
int tc = 0;               // 定義一個按鈕狀態變數

void setup() {
  Serial.begin(9600);                           // 序列埠的速度為9600bps
  pinMode(ledPin, OUTPUT);              // 設定LED接腳為輸出模式
  pinMode(ButtonPin, INPUT);               // 設定按鈕接腳為輸入模式
  
}


void loop(){
  tc = digitalRead(ButtonPin);            // 取得按鈕的值
  delay(100);                                      // 延遲
  if (tc == HIGH) {                              // 如果按鈕被按下
    digitalWrite(ledPin, HIGH);           // 把LED輸出訊號為高電壓,點亮
  }
  else {
    digitalWrite(ledPin, LOW);            // 反之讓LED熄滅
  }

}



以上程式按著按鈕時會點亮LED
反之熄滅



接下來是switch迴圈的方式
一樣複製程式並上傳就可以了
只是程式工作的原理不同


int ledPin = 3; // LED 接腳
int ButtonPin = 2; // 按鈕接腳
int tc = 0; // 定義一個按鈕狀態變數

void setup() {

Serial.begin(9600); // 序列埠的速度為9600bps
pinMode(ledPin, OUTPUT); // 設定LED接腳為輸出模式
pinMode(ButtonPin, INPUT); // 設定按鈕接腳為輸入模式

}


void loop(){

tc = digitalRead(ButtonPin); // 取得按鈕的值

delay(100); // 延遲

switch(tc){
  case HIGH:
  digitalWrite(ledPin, HIGH); // 把LED輸出訊號為高電壓,點亮
  break; 

  case LOW: 
  digitalWrite(ledPin, LOW); // 反之讓LED熄滅
  break;

  }


}




TCweng_DHT22溫溼度感應器教學arduino


DHT22是DHT系列
能力非常好的感應器

分辨率達到 
濕度0.1 %     溫度RH 0.1  ℃
量程范围有 
濕度0 ~ 99.9 %   溫度RH -40 ~ 80℃
至於精度也有不錯的表現  
濕度±2 %RH (25℃)   溫度( ±0.5℃)


接線

" - "或黑線 接負極
" + "或紅線 接正極
最後一個就是訊號線啦
今天我們把訊號線插在2號(D2)的位置


程式部分

首先要先下載DHT的函示庫
這個包含了DHT全系列的感應器函示
https://github.com/adafruit/DHT-sensor-library

到上面連結下載壓縮檔後
添加函示庫到Arduino就可以了

如果不會把函示庫添加到IDE裡的讀者
可以到上一篇文章閱讀




程式的部分y
!!!!注意不要複製到中文的部分喔


#include "DHT.h"

#define DHTPIN 2 // dht22的接腳



//#define DHTTYPE DHT11 // DHT 11

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

//#define DHTTYPE DHT21 // DHT 21 (AM2301)



DHT dht(DHTPIN, DHTTYPE);



void setup() {

Serial.begin(9600);

Serial.println("DHT test!");



dht.begin();

}



void loop() {



delay(2000);



float h = dht.readHumidity();

float t = dht.readTemperature();

float f = dht.readTemperature(true);





if (isnan(h) || isnan(t) || isnan(f)) {

Serial.println("Failed to read from DHT sensor!");

return;

}



float hif = dht.computeHeatIndex(f, h);

float hic = dht.computeHeatIndex(t, h, false);



Serial.print("Humidity: ");

Serial.print(h);

Serial.print(" %t");

Serial.print("Temperature: ");

Serial.print(t);

Serial.print(" *C ");

Serial.print(f);

Serial.print(" *Ft");

Serial.print("Heat index: ");

Serial.print(hic);

Serial.print(" *C ");

Serial.print(hif);

Serial.println(" *F");

}

TCweng_安裝 Arduino IDE Windows Linux

Arduino 的程式編輯軟體是免費的開源軟體
下載可以不用支付任何的費用
當然您要支持arduino發展
捐助一小筆費用也是可以的
要記住!!!
有很多人的支持才會讓開源的事物有好的發展


1. 首先到google搜尋arduino
基本上第1個搜尋就會是 arduino的官網
進到官網後


2. 按上方的 software  >>  Download ,進入下載頁面。



3. 選擇適合的版本
目前最新版為1.8.9










如果要下載舊的版本
典籍下列網址
然後在往下拉找到您要的版本即可
TC使用的版本是1.8.4




如果只要下載不贊助
點擊"Just Download”即可開始下載




Windows 系統的安裝方法


下載的安裝檔名為 "arduino-1.8.4-windows.exe"

執行安裝檔後一直按「下一步」即可




Linux 系統的安裝方法


1. 下載的安裝檔名為 "arduino-1.6.8-linux64.tar.xz"

2. 下載完成後將檔案解壓縮
並打開終端機輸入以下指令:
$ tar -xJf arduino-1.6.8-linux64.tar.xz


進入解壓縮後的資料夾
輪流輸入以下指令
(1.8.4為您下載的版本,依下載版本改變)
$ cd arduino-1.8.4

$ sudo sh install.sh

$ sudo apt-get install gcc-avr avr-libc

$ sudo usermod -a -G tty chshlab
$ sudo usermod -a -G dialout chshlab



安裝成功之後就可以開啟來使用了

也可以到偏好設定,調整

編輯器語言

編輯器字型大小
等等.....