2019年1月8日 星期二

探究教學四格教案

上次聽完龍山國中鄭志鵬老師跟線西國中林莞如老師的探究教學說明後,把四格教案整理成這樣,然後結合一點自己的想法,覺得這樣可以隨便給我一個素材,我就可以套公式變成探究式教學了
最近也的確是用這個邏輯重新安排了幾個課程,覺得棒棒的,方便好用
簡單來說就是先給學生看到一個多種變因、混亂的兩組現象,試圖讓學生分析裡面的差異(變因),讓學生選定一個關鍵變因設計實驗並操作,統計完實驗結果後分析
每次實驗可以把重點放在其中一件事情就好,一整年下來就能培養到探究教學的不同面向,讓學生往正確的科學素養邁進
 

永續漁業模擬遊戲-pa分析發現pc討論傳達

4人一組,一開始先文本閱讀(5分鐘),給學生一篇烏魚一篇黑鮪魚文章,讀完其中一篇後跟組員討論:教師說明4個提問,請學生從兩篇文章中回答這四個提問
1.人做了什麼事情?
2.魚發生了什麼事情?
3.你覺得之後你應該做什麼事情?
4.圖表內的數據發生了什麼事情?

討論完後進入捕魚活動

開始捕魚活動,我隨便買了7包糖果,也剛好分成7組。每組桌面有14顆,另外12個放隔壁桌子等補充
每次目標 能夠抓4輪,活動計算5次數據,剩下魚每4隻生一隻魚,四捨五入 所以餘數2、3、4都可以生新的魚
有糖果學生會很躁動,要隨時停頓控場 只要停下來等就好了,這也是生活教育的一部分
事先說明離開前每個人可以分到6顆糖果,最後我會點大概數量,請不要佔為己有(但是我們知道學生有些是貪婪的)
第一局一開始決定好要抓幾隻魚,之後不能更改抓魚數
討論結果
第二局每一次抓魚都可以考慮抓魚數
第三局派一個人當科學家,控制整場魚群數量,漁夫不知道魚的量有多少

希望這樣可以讓他們體驗賽局、永續漁業,而不只是打嘴泡說保育而已。

參考資料:
阿簡生物筆記
http://a-chien.blogspot.com/2012/10/blog-post_2144.html
烏魚文章
https://www.coa.gov.tw/ws.php?id=2502215&print=Y
烏魚數據圖
http://www.tfrin.gov.tw/friweb/frienews/enews0083/p2.html
黑鮪魚文章與數據圖
http://www.kuroshio.org.tw/newsite/article_02.php?info_id=333



第二次執行記錄
意外發現三次遊戲的說明層次很重要
看完文章後跟學生亂哈拉,然後說其實你當漁夫就知道,人都是貪婪的,然後開始說明活動規則
第一次只說明數量可以隨便拿,漁夫要捕多少魚都可以,但是每一次抓的數量要一樣多,抓完後剩下的魚會繁殖25% 也就是每4隻生一隻,從場外拿新的魚進來。然後漁夫不能交談告知對方你想抓多少魚,畢竟商場就是戰場,你不會希望你的好漁點被發現。
我希望可以玩10輪
然後今天玩剛好出現佛系漁夫第6組,整組都不抓魚;還有貪婪漁夫,有人一次就掃台了,其他大概都是設定抓一隻。成果的數據很好討論,所以一開始設定少,讓學生自由發揮是重要的。
有幾組結局沒魚可以抓了。

然後討論一下第一輪的結果,統計個人漁獲量、小組總漁獲量、漁場總共出現多少魚,停頓讓學生思考一下,提示學生雖然有人一次掃台,但是神奇的是他竟然不是總漁獲量最大的,請他們思考一下這是為什麼,如果是你要怎麼改變策略
然後請他們思考哪個漁場最符合永續漁業。
提示下一次我要統計幾種冠軍:個人最多漁獲、小組最多漁獲、漁場出現總魚數量最大這三個冠軍。
第二輪改變一個規則,每次你捕魚的數量可以改變,還有至少捕魚總數要超過四隻,不然你全家會餓死。
這次你就會看到策略出來了,剛好有一組神奇的在第三輪停漁,他們變成漁獲大,而且可能可以撐久一點的狀態,學生就會多思考一些事情。這次數據也很漂亮,有很多種狀態去分析。而且有人第四輪捕魚全抓,然後他還不是個人最大漁獲量,就有很多故事可以說了。我請停漁的組別分析他們每個人每一局的捕魚數量
最後第三輪就是科學家活動,每組剩3個漁夫,桌上沒有魚(糖果),漁夫自己記錄每次的捕魚數量,只有科學家知道魚群數量,然後我分配出3種起始數量不同的漁場,科學家每回合要統計殘留魚數量,只能跟我回報下一局的魚總數。
然後第四輪捕魚結束前,因為他們都太保險抓魚了,所以我偷偷告知大家魚還很多盡量抓,可以看到漁獲量明顯上升,然後下課前一樣分析永續漁場是哪個,這樣就完成2節課了

呼出氣體檢測課程-pe(實驗設計與執行)

實驗一、石灰水檢測二氧化碳
破題:我們可以用石灰水來檢測二氧化碳,如何檢測請自己看課本。
提問實驗
一-1呼出氣體與空氣比較
給兩個寶特瓶+30cc石灰水,請學生設計實驗證明呼出氣體二氧化碳大於空氣二氧化碳
學生一開始會直接往寶特瓶吹氣到變色,我會請他說明設計原因,並說這樣很好,可是可以更精密一點
於是就有其他組別想出吹氣,蓋蓋子,搖一搖,比較兩瓶差異(另一個班很神奇的就直接會蓋蓋子搖,這樣的話就直接完成,可以進到下一題,這次的實驗不用每一組做出來,只要有比較快的完成,老師過去請學生發表他們的設計理念即可換到下段課程)
在限制材料的狀況下(只能有空氣、人體呼氣、兩個寶特瓶、限量石灰水),就比較有機會設計出實驗並自己說明流程,因為這樣的組合很單純,要讓學生體驗:控制變因只能有一個也比較容易。
一-2空氣中的二氧呼化碳
請問怎麼用這個器材證明空氣中也有二氧化碳
(放著讓學生試,這個很難,而且就算一直搖也要超久才有機會)
(第二個班發現開關瓶子大約5次即可讓15cc石灰水混濁到可明顯觀察)
一-3延伸題:如何證明運動前後二氧化碳含量不同
再給30cc石灰水,請學生證明運動前後二氧化碳含量差異
這裡可以明顯知道學生是否會操作 同一個人運動前後氣體差異、固定呼氣數量、固定石灰水數量等因素了。
一-4集合詢問講解
石灰水用來測定_____
關瓶子的好處是只有____個變因
一個瓶子裡面裝的是___,另一個裝的是___
一-5示範實驗
葉子寶特瓶(10片馬櫻丹葉子+吹10口氣,一個放外面找強烈太陽15分鐘,一個放暗處,20cc石灰水)即使只有大概經過15分鐘,二氧化碳的含量就有差別了,混濁程度也有差別(第二個班經過2節課,差異十分明顯),我還加了一組沒吹氣但至於黑暗空間,做出來顏色也會不同。搖晃後比較混濁程度,並請學生說明為什麼混濁程度不一樣
(有照光有光合作用消耗二氧化碳)
(沒照光反而產生更多二氧化碳)

實驗二、氯化亞鈷試紙測水
給每組4個半張的試紙,石蕊紅、石蕊藍、氯化亞鈷紅、氯化亞鈷藍
請學生靜置觀察變化,找出變色的,說明他是___為什麼變色?
將試紙標示數字,石蕊藍1、石蕊紅2、氯化亞鈷3(此時兩張都變粉紅色了)
將2張氯化亞鈷試紙烘乾
二-1請設計實驗證明呼出氣體水分大於空氣中的水
學生立刻就解出來了
二-2集合示範實驗
將整份氯化亞鈷試紙烘乾,問學生為什麼吹風機會讓他變藍色?
示範整卷氯化亞鈷在鼻子前的變色
結尾三、問題統整,複習概念
請問什麼實驗可以檢測什麼氣體
什麼實驗可以檢測什麼
呼氣中吐出什麼
這樣就可以一節課完成呼吸檢測教學,並讓學生體驗pe的實驗設計與執行

2018年8月23日 星期四

arduino+DS3231時鐘+0.96OLED or I2C_LCD模組


參考文章
【自造學堂】如何用Arduino x RTC完成LCD時間顯示?
*0*RTC(即時時鐘)模組*0* 如何更新 DS3231 RTC 模組的時間與大型數字時鐘製作

需要安裝資料庫
for DS3231
(下載後解壓縮安裝)  DS3231_TEST

for 0.96OLED
(資料庫搜尋安裝)      Adafruit_GFX
(資料庫搜尋安裝)      Adafruit_SSD1306

for I2C LCD
(資料庫搜尋安裝)      LiquidCrystal_I2C

額外經驗
如何把1變成01(補0)
C語言Printf 自動補0
Topic: Leading zeros for seconds coding

之後要研究的
按鈕改時間設定
https://github.com/tehniq3/oled_096_128x64_i2c_RTC_animated-clock
http://ruten-proteus.blogspot.com/2017/08/ds3231-rtc-iiclcd-clock.html



程式碼-DS3231時鐘+0.96OLED
#include <DS3231.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

//時鐘設定
DS3231 Clock;
bool Century=false;
bool h12;
bool PM;
byte ADay, AHour, AMinute, ASecond, ABits;
bool ADy, A12h, Apm;
byte year, month, date, DoW, hour, minute, second;

//OLED設定
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

//螢幕設定,定義顯示高度跟寬度
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH  16

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

char buffer [16];
char time [16];

void setup() {
  // Start the I2C interface
  Wire.begin();
  //第一次使用要設定以下時間,之後就可以不用設定了
  //Clock.setSecond(00);//Set the second
  //Clock.setMinute(25);//Set the minute
  //Clock.setHour(16); //Set the hour
  //Clock.setDoW(4); //Set the day of the week
  //Clock.setDate(23); //Set the date of the month
  //Clock.setMonth(8); //Set the month of the year
  //Clock.setYear(17); //Set the year (Last two digits of the year)
  // Start the serial interface
  Serial.begin(9600);

  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
  display.clearDisplay();
}

void loop() {
  int sec,minute,hour,date,month,year,temperature;
  sec=Clock.getSecond();
  minute=Clock.getMinute();
  hour=Clock.getHour(h12, PM);
  date=Clock.getDate();
  month=Clock.getMonth(Century);
  year=Clock.getYear();

  temperature=Clock.getTemperature();

  sprintf(time,"20%02u-%02u-%02u",year,month,date); //設定印出01,02,而非1,2
  sprintf(buffer,"%02u:%02u:%02u",hour,minute,sec); //設定印出01,02,而非1,2

  Serial.print("20");
  Serial.print(year,DEC);
  Serial.print(time);
  Serial.print(' ');
  Serial.print(buffer);
  Serial.print('\n');
  Serial.print("Temperature=");
  Serial.print(temperature);
  Serial.print('\n');

  //英文字符显示
  display.setTextColor(WHITE);        //设置字体颜色白色
  display.setCursor(0,0);             //设置字体的起始位置
  display.setTextSize(1);             //设置字体大小
  display.print(time);
  display.setCursor(86,0);
  display.print(temperature);
  display.println("oC");
  display.setTextSize(2);             //设置字体大小
  display.print(buffer);
  delay(1000);
  display.display(); 
  display.clearDisplay();
}


程式碼-DS3231時鐘+I2C_LCD
#include <DS3231.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

DS3231 Clock;
bool Century=false;
bool h12;
bool PM;
byte ADay, AHour, AMinute, ASecond, ABits;
bool ADy, A12h, Apm;
byte year, month, date, DoW, hour, minute, second;

//LED_Fundino紅色板子用
//LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
//LED_MH黑色板子用
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

//建立O型
byte OC[8] = {
  B01100,
  B10010,
  B01100,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};

//設定暫存
char buffer [16];
char time [16];

void setup() {
// Start the I2C interface
  Wire.begin();
  //第一次使用要設定以下時間,之後就可以不用設定了
  //Clock.setSecond(00);//Set the second
  //Clock.setMinute(25);//Set the minute
  //Clock.setHour(16); //Set the hour
  //Clock.setDoW(4); //Set the day of the week
  //Clock.setDate(23); //Set the date of the month
  //Clock.setMonth(8); //Set the month of the year
  //Clock.setYear(17); //Set the year (Last two digits of the year)
  // Start the serial interface
  Serial.begin(115200);

  // 初始化 LCD,一行 16 的字元,共 2 行,預設開啟背光
  lcd.begin(16, 2);

  //建立OC型
  lcd.createChar (1, OC);  // load OC to memory 1

  // 閃爍2次
  for(int i = 0; i < 1; i++) {
    lcd.backlight(); // 開啟背光
    delay(50);
    lcd.noBacklight(); // 關閉背光
    delay(50);
  }
  lcd.backlight();

  // 輸出初始化文字
  lcd.setCursor(0, 0); // 設定游標位置在第一行行首
  lcd.print("DCJH-Maker");
  delay(500);
  lcd.setCursor(0, 1); // 設定游標位置在第二行行首
  lcd.print("Hello,MAKER!");
  delay(1000);
  lcd.clear();
}

void loop() {
  int second,minute,hour,date,month,year,temperature;
  second=Clock.getSecond();
  minute=Clock.getMinute();
  hour=Clock.getHour(h12, PM);
  date=Clock.getDate();
  month=Clock.getMonth(Century);
  year=Clock.getYear();

  temperature=Clock.getTemperature();

  sprintf(time,"20%02u-%02u-%02u",year,month,date); //設定印出01,02,而非1,2
  sprintf(buffer,"%02u:%02u:%02u",hour,minute,second); //設定印出01,02,而非1,2

  Serial.print(time);
  Serial.print(' ');
  Serial.print(buffer);
  Serial.print('\n');
  Serial.print("Temperature=");
  Serial.print(temperature);
  Serial.print('\n');

  lcd.setCursor(0, 0); // 設定游標位置在第一行行首
  lcd.print(time);
  lcd.setCursor(12, 0);
  lcd.print(temperature);
  lcd.print(char(1));
  lcd.print("C");
  lcd.setCursor(0, 1); // 設定游標位置在第二行行首
  lcd.print(buffer);

  delay(1000);
}

2018年6月19日 星期二

arduino_nano+心跳模組+0.96吋oled顯示+nRF24L01無線收發器

前面幾個步驟完成後,終於可以朝生物實驗器材需求最後一關邁進了,那就是-無線通訊,如果學生可以做實驗的同時,老師電腦就收到數據,這樣就可以同步分析數據結果了,而nRF24L01這個無線收發器可以支援1對6,最大功率時距離70m內好像不成問題,未來實驗就可以同時接收6組的數據了,感覺十分方便
你需要一台發送訊號,另一台接收訊號才行,如上圖




程式寫完就可以同步收發心跳模組的訊息,並呈現在電腦上,如上圖


參考文章
nRF24L01無線收發器模組與Arduino通訊實驗(二):一對一通訊
*2*nRF24L01+*2* SHT31 單點無線溫溼度傳輸
Arduino 無線傳輸模組 NRF24L01 測試


裡面遇到一個難關是:接收端表現出來的心跳錶數值都是亂碼,所以我想說數值不行傳輸,那就把數值轉成文字後再傳送應該就沒問題了,查了一下文章發現這個,
在Arduino下將數字(int)轉字元(char)的方法
裡面的這行加入後
itoa (myBPM, BPM, 10);      //將myBPM數字轉成BPM文字
果然就可以正確表示出數據了,能接受數據的瞬間真的很開心!


以下是這個模組要做的事情

1.安裝liberary
SPI
RF24

2.將接收與發送
--------------以下是發送端程式碼部分,發送端本身就接心跳錶跟螢幕--------------
#include <SPI.h>
#include <Wire.h>
#include "RF24.h"
#define USE_ARDUINO_INTERRUPTS true    // Set-up low-level interrupts for most acurate BPM math.
#include <PulseSensorPlayground.h>     // Includes the PulseSensorPlayground Library. 
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


//設定nRF24L01發射訊號
RF24 rf24(7, 8); // CE腳, CSN腳
const byte addr[] = "1Node";
const char msg[] = "Heart Beat";
int myBPM;

//LED設定
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

//螢幕設定,定義顯示高度跟寬度
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH  16


//  Variables
const int PulseWire = 0;       // PulseSensor PURPLE WIRE connected to ANALOG PIN 0
const int LED13 = 13;          // The on-board Arduino LED, close to PIN 13.
int Threshold = 550;           // Determine which Signal to "count as a beat" and which to ignore.
                               // Use the "Gettting Started Project" to fine-tune Threshold Value beyond default setting.
                               // Otherwise leave the default "550" value.
int z,a;

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

PulseSensorPlayground pulseSensor;  // Creates an instance of the PulseSensorPlayground object called "pulseSensor"

void setup() {
  Serial.begin(9600);

  //設定nRF24L01發射訊號
  rf24.begin();
  rf24.setChannel(83);       // 設定頻道編號
  rf24.openWritingPipe(addr); // 設定通道位址
  rf24.setPALevel(RF24_PA_MIN);   // 設定廣播功率
  rf24.setDataRate(RF24_250KBPS); // 設定傳輸速率
  rf24.stopListening();       // 停止偵聽;設定成發射模式


  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
  // init done

  // Configure the PulseSensor object, by assigning our variables to it.
  pulseSensor.analogInput(PulseWire); 
  pulseSensor.blinkOnPulse(LED13);       //auto-magically blink Arduino's LED with heartbeat.
  pulseSensor.setThreshold(Threshold); 

  // Double-check the "pulseSensor" object was created and "began" seeing a signal.
   if (pulseSensor.begin()) {
    Serial.println("We created a pulseSensor Object !");  //This prints one time at Arduino power-up,  or on Arduino reset.
  }
 
  display.clearDisplay();
}

void loop() {
  int myBPM = pulseSensor.getBeatsPerMinute();  // Calls function on our pulseSensor object that returns BPM as an "int".
                                          // "myBPM" hold this BPM value now.

  //英文字符显示
  display.setTextSize(1);             //设置字体大小
  display.setTextColor(WHITE);        //设置字体颜色白色
  display.setCursor(0,0);             //设置字体的起始位置
  display.println("DCJH laboratory");   //输出字符并换行
 
  display.setTextSize(2);             //设置字体大小
  display.print("HB ");          //输出文字
  display.print(myBPM);
  display.print(" ");          //输出文字
  display.setTextColor(BLACK, WHITE); //设置字体黑色,字体背景白色
  display.setCursor(72,8);
  display.print("/min");          //输出文字
  display.display(); 
  display.clearDisplay();

  char BPM[4] ;
  itoa (myBPM, BPM, 10);      //將myBPM數字轉成BPM文字

  //設定nRF24L01發射訊號
  rf24.write(&msg, sizeof(msg));  // 傳送資料
  rf24.write(&BPM, sizeof(BPM));  // 傳送資料
}

--------------以下是接收端程式碼部分,接收端接電腦,輸入後電腦可以開啟"序列埠監控視窗"等訊號傳過來--------------

#include <SPI.h>
#include "RF24.h"

RF24 rf24(7, 8); // CE腳, CSN腳

const byte addr[] = "1Node";
const byte pipe = 1;  // 指定通道編號

int myBPM;

void setup() {
  Serial.begin(9600);
  rf24.begin();
  rf24.setChannel(83);  // 設定頻道編號
  rf24.setPALevel(RF24_PA_MIN);
  rf24.setDataRate(RF24_250KBPS);
  rf24.openReadingPipe(pipe, addr);  // 開啟通道和位址
  rf24.startListening();  // 開始監聽無線廣播
  Serial.println("nRF24L01 ready!");
}

void loop() {
  if (rf24.available(&pipe)) {
    char msg[32] = "";
    char BPM[32] = "";
    rf24.read(&msg, sizeof(msg));
    rf24.read(&BPM, sizeof(BPM));
    Serial.println(msg); // 顯示訊息內容
    Serial.println(BPM); // 顯示訊息內容
    delay(500);
  }
}


-------------------以下是露天網購材料與價錢-------------
NRF24L01+ 升級版改進型 無線模組台產SI24R1 2.4G無線收發(W005) 28元
https://goods.ruten.com.tw/item/show?21545029419316

arduino_nano+0.96OLED顯示

完成品如右側顯示,左側是arduino uno,整體而言加了擴充版還是比原來uno小,未來覺得可以推廣nano+擴充版就好。
這次主要想讓整個儀器比較小一點,所以使用arduino_nano這個比較小的板子,配上擴充版,其實整體而言好像比uno更便宜而且好用,唯一要擔心的可能是容量問題(如果是ATMEGA328P的flash應該都是32kb所以一樣大沒問題),還有他要多安裝一個軟體,Arduino UNO 相容版(CH341) Windows 驅動程式(點此下載)

nano的說明可以參考這篇文章
小狐狸事務所-Arduino Nano 開機測試

接下來0.96吋的oled顯示,我一樣丟"arduino 0.96 led"進去餵狗,找到這些文章
Arduino通過I2C(SSD1306)驅動0.96寸12864OLED
阿玉maker研究區-09-OLED顯示器

然後本來想顯示中文,可是目前失敗中,未來可參考這些文章持續改進
Arduino Uno 驱动OLED进阶 显示中英文字
Step By Step系列 - 番外篇 OLED圖片取檔方法, 使用LCD Assistant
運用SSD1306 OLED模組顯示圖像
使用 LCD Assistant轉換字體
发一个 绘图 Adafruit GFX图形库(這個感覺很厲害,所以備份了文章內容,以後應該用的到)


總之最後就可以顯示我要的訊息了 



以下是我修改的有關0.96吋oled的顯示部分

需要準備的東西
1.安裝一個軟體,Arduino UNO 相容版(CH341) Windows 驅動程式(點此下載)

2.安裝新的Library程式庫
Adafruit_SSD1306
Adafruit-GFX-Library

3.把下面的程式碼倒進去就可以了
--------------以下是程式碼部分--------------
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

//OLED設定
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

//螢幕設定,定義顯示高度跟寬度
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH  16

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

void setup() {
  Serial.begin(9600);

  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
  // init done

  display.clearDisplay();
}

void loop() {
    //英文字符显示
  display.setTextSize(1);             //设置字体大小
  display.setTextColor(WHITE);        //设置字体颜色白色
  display.setCursor(0,0);             //设置字体的起始位置
  display.println("test");   //输出字符并换行
 
  display.setTextSize(2);             //设置字体大小
  display.print("Hello_world");          //输出文字
  display.setTextColor(BLACK, WHITE); //设置字体黑色,字体背景白色
  display.setCursor(72,8);
  display.print("test");          //输出文字
  display.display(); 
  display.clearDisplay();
}


-------------------以下是露天網購材料與價錢,非廣告,僅供參考-------------
XTWduino nano V3.0 ATMEGA328P 改進板  90元
http://goods.ruten.com.tw/item/show?21519333276248

Arduino NANO UNO 多用 擴展板 48元
http://goods.ruten.com.tw/item/show?21550342023467

0.96寸 黃藍雙色 I2C IIC通信 12864 OLED液晶屏模塊 130元 (別家有120元的)
http://goods.ruten.com.tw/item/show?21715781107651