2017年10月5日 星期四

Arduino LCD1602練習筆記

LCD 1602顯示元件

目的

輸入字串顯示在LCD

元件

1.Arduino UNO
2.LCD1602+LCM1602IIC

線路圖


/*
 * LCD練習
 */
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
  Serial.begin(9600);
  lcd.init();  //初始化
  lcd.backlight(); //開啟背光
  lcd.print("Welcome"); //輸出字串至LCD
  delay(1000);
  lcd.clear(); //字串輸出清除
}

void loop() {
  SerialLcd();
}

void SerialLcd(){

  if(Serial.available())
  { delay(50);
    lcd.clear();

  while(Serial.available()>0)
  lcd.write(Serial.read());
}
}

輸入字串後,即可在LCD顯示輸入內容

2017年10月4日 星期三

Arduino 按鈕改變LED亮度練習

目的:使用一個按鈕控制LED燈亮度

元件:

1.Arduino UNO
2.LED
3.電阻1k歐姆
4.按鈕

線路圖


 /*
 *按鈕控制LED亮度
 */
#define LED 9
#define Button 10

int val=0;
int old_val=0;
int state=0;
int brightness=64;
unsigned long startTime=0;

void setup(){
   pinMode(LED,OUTPUT);
   pinMode(Button,INPUT);
}

void loop(){
   val=digitalRead(Button); //更新按鈕狀態
//按鈕剛按下時
  if((val==HIGH) && (old_val==LOW))
  {
    state=1-state;             //更改狀態(由OFF->ON)
    startTime=millis();    //儲存目前經過時間
    delay(10);
  }

//按鈕已按下時
if((val==HIGH) && (old_val==HIGH))
  {
     if(state==1&&(millis()-startTime)>500) //按鈕被按下超過500ms時
     {
    brightness++;
    delay(10);
    if(brightness>255)
    brightness=0;
      }
   }
old_val=val;  //儲存目前狀態

//當state為on時
 if(state==1)
analogWrite(LED,brightness);
else
analogWrite(LED,0);
}

Arduino LCD1602練習筆記

LCD 1602顯示元件 目的 輸入字串顯示在LCD 元件 1.Arduino UNO 2.LCD1602+LCM1602IIC 線路圖 /*  * LCD練習  */ #include <LiquidCrystal_I2C.h> LiquidCryst...